By Joe Sullivan at Beatport Engineering
By Joe Sullivan at Beatport Engineering
Interactive navigable audio visualization using Web Audio and Canvas.
Web Audio API
There are many links to Web Audio project right here on this blog: http://reactivemusic.net/?tag=web-audio
Comprehensive guide from Mozilla Developer Network https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API
Assign an instance of the Web Audio class to the object: context
context = new AudioContext();
Make an oscillator node
osc = context.createOscillator();
Connect the oscillator to the audio output (speaker)
Turn on the oscillator at the current time and plays a tone.
Turn of the oscillator
For more basics, see: “Using the Web Audio API”, at the Mozilla Developer Network: https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Using_Web_Audio_API
Demonstrated in class. Download from here: https://github.com/tkzic/web-audio-projects
HTML versions of examples from Boris Smus’s book: http://reactivemusic.net/?p=6094
infinite jukebox by Paul Lamere http://labs.echonest.com/Uploader/index.html
Ring Visualizer http://airtightinteractive.com/demos/js/reactive/
Wave-pd1 (iOS) http://alxgbsn.co.uk/wavepad/
Gibber by Charie Roberts: http://gibber.mat.ucsb.edu/ (for demos, select all code, press <ctrl>-Enter to start, press <ctrl>-. to stop) (updated but check github)
Write a composition to induce magical effects.
Here is an example from Aseem Suri http://www.aseemsuri.com/journal/piece-of-mind-second-run-at-the-csound-conference
The project was derived from computer technology, but the overall effect was that people would go into a mysterious room, for a minute, and when they emerged, they would be smiling and happy.
Due on December 15th (last class)
Visual programming for the Web audio API.
by Daniel Pettersson
An earlier post: http://reactivemusic.net/?p=6157
We usually think of filters in terms of frequency. Any process that removes information is a filter. Curation or abstraction, for example.
Sonification of Mass Ave buses, from Harvard to Dudley.
This patch sends requests to the MBTA developer portal to get the current location of buses – using the Max js object. Latitude and Longitude data is mapped to oscillator pitch. Data is polled every 10 seconds, but it seems like the results might be more interesting to poll at a slower rate, because the updates don’t seem that frequent. And buses tend to stop a lot.
MBTA developer portal: http://reactivemusic.net/?p=17511
Here is the get request URL used in the patch:
You will not need authentication to run run this patch. It uses the default developer API-key for testing. Please read the terms of service at the MBTA developer portal. Data should not be polled more often than 10 seconds. You can also request your own developer API key from MBTA.
Note: there will be more buses running during rush hours in Boston. Try experimenting with the polling rate and ramp length in the poly-oscillator patch. Also, you can experiment with the pitch range.
Music from data
We looked at Vine API Examples from Eli and Steve H.
Using an Osc server to handle Internet API’s
Searchtweet (rate limited): http://reactivemusic.net/?p=17425
Max oggz streaming example: http://reactivemusic.net/?p=17504
We talked about cartoons: http://reactivemusic.net/?p=10091
We didn’t talk about alarm fatigue…
(parameter mapping sonification)
Is it possible to generate music from data?
oggrx~ and oggtx~
by Robin Gareus
At Cycling 74 forum: https://cycling74.com/forums/topic/streaming-internet-radio-in-maxmsp/
I was able to receive mp3 files from a server in Max 6.18. using oggrx~. There doesn’t appear to be transport control – so this would need to be built in for synchronization.
Unexpected find: The external uses “secret rabbit code” for resampling. So it works in Max. And we have the source code but not the i386 libs that were used to compile it.
There is no binary for v.7 of oggrx~.mxo, but there is one for v.6
i managed to get Robin Gareus’ externals. They are available here, though they are unmaintained.
The binaries are still online at:
It’s been more than 3 years (OSX 10.5) since I last looked at it, it
should still work, but I don’t know. Please let me know if you encounter
any problems, so that I can warn others.
I don’t maintain this external anymore. I neither have a MAX/MSP
license, nor do I own any Apple devices. On the upside, complete
source-code is available from
By DSP Guru
For resampling and filterbanks.
By Kyle Kastner at DSP Related