Using internet ping data to control a synthesizer in Max
This project uses ‘ping’ times to about 40 Google domains, like google.ca, google.de, etc., to control pitch and amplitude of a 20 voice droning synthesizer.
Imagine working in a Google control center. A soothing low pitched drone fills the room. Then Suddenly you hear an slowly rising pitch. You check the monitors – Google Paraguay is experiencing network failure. You light a cigarette and wait for things to calm down.
The server is a ruby script which handles the http: requests using the Mashape ping-uin API and sends messages to Max using OSC
The synth has a weird clustering drone like effect like some kind of alien life force.
The patch design is kind of embarrassing. Its obvious I forgot how to use [poly~]. Maybe by the time you read this, we’ll have addressed this. Hey billions of patch cords look cool.
Here’s an example of the Mashape API in curl
curl --include --request GET 'https://igor-zachetly-ping-uin.p.mashape.com/pinguin.php?address=google.ca' \ --header 'X-Mashape-Authorization: YOUR-MASHAPE-API-KEY'
Here’s a list of Google domains
main Max patch
abstractions and other files
- google.txt (list of domains for [coll] object
- Register with mashape http://mashape.com to get an API-key for ping-uin
- Then edit domain-ping.rb to enter your mashape API-key.
- Open the Max patch: sound-of-a-new-machine2.maxpat
- Turn on audio. Turn up the gain.
- From a terminal window type the following command
- In the Max patch, click the toggle box to start polling. It may take a minute to hear any sounds, while the oscillators are loading. Increase polling speed to 400 or so if you can’t wait.
- Another reason you might not hear anything interesting is if the clip threshold is too low. Watch the incoming ping times and set the clip threshold above the average level.
- Adjust the pitch multiplier to your desired pitch range.
- When you’ve had enough, type <ctrl-c> in the terminal window to stop the server.
note: Occasionally the server program will time-out when its launched. Try launching again, or edit it and increase the timeout value.