A js wrapper for the web audio API.
By Joe Turner
http://oampo.github.com/Audiolet/
By Dan Armendariz and David J. Malden at Harvard extension
Stanford mobile music toolkit
By Ge Wang
http://momu.stanford.edu/toolkit/
synthesis tool kit: http://momu.stanford.edu/stk/
A few references:
Classic PGmidi (Pete Goodliffe)
http://goodliffe.blogspot.com/2010/10/using-coremidi-in-ios-example.html
The synthetic bits coreMidi braindump is now password protected… sigh
A helpful diagram showing terminology
http://xmidi.com/blog/how-to-access-midi-devices-with-coremidi/
Useful core Audio and core Midi links for iOS
http://www.deluge.co/?q=core-midi-core-audio-useful-links
an older ios midi project
https://github.com/JohnGoodstadt/MidiNotes
at Apple iOS developer Library
iOS code that demonstrates AVCaptureSession, AUGraph. Also, how to write audio data to a file. Basically the app records from the built-in mic and process with an AU delay effect
Sample code for a collection of utility classes to handle error check, codecs, structure compatibility, etc.,
At Apple Developer Library
At Stackoverflow
http://stackoverflow.com/questions/11596229/any-documentation-on-core-audios-public-utility-classes
This is obscure, but happened with Loup and was fixed by using the answer from the following SO post
http://stackoverflow.com/questions/13133883/having-difficulty-pulling-repository-from-assembla
<code>Error validating server certificate for 'https://subversion.assembla.com:443': - The certificate is not issued by a trusted authority. Use the fingerprint to validate the certificate manually! Certificate information: - Hostname: *.assembla.com - Valid: from Thu, 24 Mar 2011 19:30:40 GMT until Sun, 24 Mar 2013 19:30:40 GMT - Issuer: 07969287, http://certificates.godaddy.com/repository, GoDaddy.com, Inc., Scottsdale, Arizona, US - Fingerprint: ae:b0:b6:94:14:5f:4b:28:d2:82:68:ae:e9:18:85:b3:ea:36:ee:f2 (R)eject, accept (t)emporarily or accept (p)ermanently?</code>
Shell object artifacts.
Today I set up a subpatcher in Max to launch a ruby server, using [aka.shell]. I didn’t realize it was running, so I ran it again – then Max froze, so I force-quit out of it. This left a zombie process in control of the UDP port.
Later I found this command, which identifies all processes on the machine:
# ps -xo pid,ppid,stat,command
Anyway, its probably not a good idea to run servers from shell commands without a way to kill them.
Here’s a screenshot of the sub-patcher which figures out how to run a shell command in the same folder as the patch:
in tkzic/max teaching examples/
ruby-shell-server-trick.maxpat
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 a slowly rising pitch. You check the monitors – Google Paraguay is experiencing network failure. You light a cigarette and wait for things to calm down.
Not using ruby to ping – due to API shutting down. The new version uses the Max [shell] external to ping from the command line.
https://github.com/tkzic/internet-sensors
folder: ping
note: Occasionally the server program will time-out when its launched. Try launching again, or edit it and increase the timeout value in [p shellping].
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
http://en.wikipedia.org/wiki/List_of_Google_domains
https://github.com/tkzic/internet-sensors
folder: ping
install the following ruby gems using: sudo xcrun gem install <gem-name>
# ./domain-ping.rb
note: Occasionally the server program will time-out when its launched. Try launching again, or edit it and increase the timeout value.