I plan on doing this, but am postponing it – probably until a spare computer is available.
By Jason McCreary
http://jason.pureconcepts.net/2012/10/install-apache-php-mysql-mac-os-x/
I plan on doing this, but am postponing it – probably until a spare computer is available.
By Jason McCreary
http://jason.pureconcepts.net/2012/10/install-apache-php-mysql-mac-os-x/
A series of projects that use Internet API’s for interactive media projects.
updated 2/14/2021.
Projects have been tested on Max8 and Mac OS Catalina – except where noted. Other dependencies are are listed on individual project pages.
My goal is to show a variety of methods to get data to and from Max. API’s come and go, as do the libraries that support them.
internet-sensors is on Github at: https://github.com/tkzic/internet-sensors
Each project is in a separate folder.
Some projects require passwords and API-keys from providers.
For example, for the ‘Twitter streaming API in Max’ project you’ll need to set up a Twitter application from your account to get authorization credentials.
For projects that need authorization usually you’ll just need to modify the patches/source code with your user information – as directed in the instructions. The API keys embedded in the code will not work unless specifically mentioned, like with the Google speech API.
API’s used in the projects change fairly often. So there’s no guarantee they’ll work. If you find problems or have ideas – please post to them to the github repository. Or email me at [email protected].
1. Twitter streaming API in Max (FM, php, curl, geocoding, [aka.speech], Soundflower (optional), Morse code, OSC, data recorder, Twitter v1.1 API, Twitter Apps, Oauth)
https://reactivemusic.net/?p=5786
2. Sending tweets from Max using curl ([sprintf], [aka.shell], xively.com API, zapier.com API, JSON, javascript Twitter v1.1 API, Oauth)
deprecated 2/11/2021 – old project link here: https://reactivemusic.net/?p=5447
New! – use the project above to send tweets from using a Fisher Price “Little Tikes” piano: https://reactivemusic.net/?p=6993
4. Speech to text in Max (Google speech API, JSON, javascript, sox, Twitter v1.1 API, Oauth)
Note: Send Tweets using speech as well.
https://reactivemusic.net/?p=4690
5. A conversation with a robot in Max (Google speech API, sox, JSON, pandorabots API, python, [aka.speech]
https://reactivemusic.net/?p=9834
7. Playing bird calls in Max (xeno-canto API, [jit.uldl], [jit.qt.movie])
https://reactivemusic.net/?p=4225
8. Soundcloud API in Max (node.js)
https://reactivemusic.net/?p=20120
9. Real time train map using Max and node.js (XML, JSON, OSC, data recorder, web sockets, Irish Rail API)
https://reactivemusic.net/?p=5477
10. stock market music in Max (OSC, netcat, php, mysql, html, javascript, Yahoo API, linux)
…updates in progress…
https://reactivemusic.net/?p=12029
11. Using weather forecast data to drive weather sounds in Pure Data (ruby, OSC, JSON, openweathermap API, “Designing Sound” by Andy Farnell)
https://reactivemusic.net/?p=5846
… updates in progress…
12. Using ping times to control oscilators in Max (Mashape ping-uin API, ruby, OSC, JSON)
https://reactivemusic.net/?p=5945
13. Spotify Segment analysis player – sonification of audio analysis data from Spotify (echo nest) API, node, Max/MSP)
https://reactivemusic.net/?p=20096
14. Quadcopter AR_drone – Fly a quadcopter using Max – with streaming Web video. ( node.js, AR_drone, Google Chrome, Osc, Max/MSP)
deprecated 2/14/2021 – old project link: https://reactivemusic.net/?p=6635
15. Adding markers to Google Maps in Max – ( node.js, ruby, Google Chrome, Osc, Max/MSP, websockets, Google Maps API, Jquery, javascript)
deprecated 2/14/2021 – old project link: https://reactivemusic.net/?p=11412
16. Max data recorder – Record and play back streams of data simultaneously at various rates
https://reactivemusic.net/?p=8053
17. MBTA bus data in Max – Sonification of Mass Ave buses, from Harvard to Dudley
… updates in progress…
https://reactivemusic.net/?p=17524
PuRest JSON – general purpose HTTP request library
http://puredata.info/downloads/purest-json
HTTP Get client from MrPeach
http://puredata.info/docs/tutorials/SimpleWebclient
(haven’t tried these yet)
This project receives wind data from the U.S. Coastal Observing Research and Development Center (CORDC) at Scripps Institute of Oceanography the openweathermap.org API
http://cordc.ucsd.edu/projects/models/coamps/api/
It uses the data to set the ‘wind speed’ of Andy Farnell’s wind sound patches from “Designing Sound”
http://aspress.co.uk/sd/index.php
Getting a parsing error on the ruby script. Will be debugging shortly!
<span style="color: rgb(0, 0, 0);">/Users/tkzic/.rvm/gems/ruby-2.0.0-p353@global/gems/json-1.8.1/lib/json/common.rb:155:in `initialize': A JSON text must at least contain two octets! (JSON::ParserError)</span>
<span style="color: rgb(0, 0, 0);">from /Users/tkzic/.rvm/gems/ruby-2.0.0-p353@global/gems/json-1.8.1/lib/json/common.rb:155:in `new'</span>
<span style="color: rgb(0, 0, 0);">from /Users/tkzic/.rvm/gems/ruby-2.0.0-p353@global/gems/json-1.8.1/lib/json/common.rb:155:in `parse'</span>
<span style="color: rgb(0, 0, 0);">from ./wind-open-forecast.rb:92:in `<main>'</span>
———————————————–
The http: requests are managed by a ruby server script and sent via OSC to Pure Data.
Two of Andy Farnell’s patches are also running (with very slight mods): wind4a.pd, and thunder4a.pd
From pd, you can select which city to get data from, and control the rate at which the data is replayed from the ruby server. The forecast cycle is about 3 days long.
From the pd patch you can select the rate of data playback, and select which city to use for data (Santa Cruz or San Diego).
Note: the wind speed expected by Andy Farnell’s wind patch is between 0 and about 0.7
https://github.com/tkzic/internet-sensors
folder: pd-weather
designingSound/ folder:
Add this folder to the path list in Pd before the system files because the distance.pd abstraction has the same name as a system file used for map distances.
4. You can tweak various parameters to scale the effect of the wind data on the sounds
5/19/2014
currently getting this error in the ruby server – need to rewrite:
I have been distracted today by an idea to make a globe (any size) out of RGB led’s which would be addressable by lat/lon coordinates. I found a story about these guys who built a single 40 led ring which rotates – at a certain frame rate – with 200 addressable positions – ie., 40×200.
by Solderlab
http://www.solderlab.de/index.php/led-projects/rgb-globe
Here’s an example of spherical projection mapping
by Hrvoje Benko at Microsoft Research
A patent application for a spherical electronic LCD display.
By Robin Dziama
http://support.google.com/maps/bin/answer.py?hl=en&answer=2533464
http://support.google.com/maps/bin/answer.py?hl=en&answer=18539
At the Coastal Observing Research and Development Center (CORDC) at UC San Diego
http://cordc.ucsd.edu/projects/models/coamps/api/
REST API
http://cordc.ucsd.edu/js/COAMPS/query.php?help
Examples:
COAMPS URL Services Recognized parameters: bbox, ll, ts, fmt, callback, force `ll` and `bbox` are mutually exclusive, with bbox taking precedence. bbox: Query directive - return records in bounds '<north>,<east>,<south>,<west>' ll: Query directive - return records nearest '<lat>,<lon>' ts: Query directive - return records at specific epoch time (seconds) fmt: Output format. One of ( json, csv, tsv ), default: json. callback: For JSON output, a function wrapper's name, ignored otherwise. force: Caching directive - override cache when true. Parameter Usage Examples: bbox: 36.25,-116.445,33.919,-119.445 ll: 35.1124,-120.221 ts: 1362499746 fmt: json callback: doWindsCallback All together now! http://cordc.ucsd.edu/js/COAMPS/query.php?bbox=36.25,-116.445,33.919,-119.445&ll=35.1124,-120.221&ts=1362499746&fmt=json&callback=doWindsCallback Gotcha! I said bbox and ll were mutually exclusive. Try again? http://cordc.ucsd.edu/js/COAMPS/query.php?bbox=36.25,-116.445,33.919,-119.445&ts=1362499746&fmt=json&callback=doWindsCallback
Binary arithmetic including fixed point and 2’s complement.
By Brian Hook
http://trac.bookofhook.com/bookofhook/trac.cgi/wiki/IntroductionToFixedPointMath