The Stockero Soundscape Generator is a Max patch that when combined with an Arduino (or other external form of input) allows for the creation of an interactive soundscape for display in a public setting. Using iPad interface as well as serial input, this patch works by remembering the millisecond in the larger loop (or soundscape) at which an event was triggered so that it can be continually triggered as the content loops. As participants interact with the exhibit, the soundscape being played continues to change as new event sounds are being added with each interaction. To avoid an overabundance or crowding of the soundscape, it is possible to parameterize how many loop locations are being held by each event trigger.
The clock subpatch works by reading in the information about whatever file was dragged into the first loop buffer. After reading in the length of the file, it adjusts the speed at which the phasor counts from 0 to 1. The phasor output is what acts as the universal clock for letting the rest of the patcher know where in the loop the playhead is.
The serial input subpatch allows the main patch to read in serial data from an external device. In the prototype build that device was an Arduino outputting acceleration data. Note that in Max when reading serial data you must get rid of the 13 and 10 numbers that appear before each data read.
The live record subpatch operates on a set threshold to know when to start and stop recording into a buffer. When recording begins the subpatch also marks the clock value so that the buffer can be played during the next cycle of the loop. This patch also remembers when it stops recording so that it can add a fade to the end of the recording.
The random player subpatch plays a sound from a group of files based upon a randomly generated number. Much like live record it also remembers when these sounds were triggered so that they are essentially added to the loop. Lastly a reverb plugin is in place that can have it’s setting adjusted through externally triggered “snapshots” of various reverb presets.
The fade subpatch is the simplest of the subpatches as it simply changes the output level of the loops based upon which input receives a bang.
Want to investigate further? Feel free to download this zip containing the Max patch and Arduino code used on the project.