musical omnibus #2: hackademics

Sep 18, 2005 14:27

music festivals and conferences:

the echo nest, chuck, movies, computer music, omnibus, synth, academic

Leave a comment

music languages since the computer cola_fan September 21 2005, 04:53:15 UTC
Here's how I see this in terms of the domain. Since early computer music, there has been a consistent abstraction with regards to these languages, the signal network of unit generators.

(Unit generators are symbolic units that take in 0..n signals, do some math and output 0..n signals. There is also a distinction between control rate data, which is slower and controls synthesis parameters such as pitch and amplitude, and audio rate data, the sounds themselves.)

a simplified breakdown

MusicN, CSound - The signal networks are fixed over a score or performance, and represented in code divided into the orchestra (the network) and score (the control data). Synthesis occurs in non-realtime, meaning you input the score and orchestra, run the compiler and wait a while.

pd, Max, MSP, Audiomulch - Synthesis is realtime, the network is your current document and control data can come from live user input or programs that pull data as synthesis progresses. The signal networks are now represented visually (in the interface rather than code), and dynamic in that you can drag them around during a performance.

Supercollider - The networks go back to code, but can be manipulated in realtime with code too, so can be more dynamic than above. Server dynamically loads code, so can run several processes at once.

ChucK - synthesis processes synchronize by explicitly referring to wall-clock time.

The abstraction works particularly well for multimedia networks, where in other domains it might not be so transparent. For example, if you are writing and debugging a multithreaded web server, you experience very concretely the non-concurrentcy that's being faked. One thread will reach the point before the other, they will print at different times, the network traffic will peak on each threads rise and fall. But in this domain, procedural things can happen at different times as long as the output buffers line up perfectly.

Only time will tell if the abstraction catches on.

Reply


Leave a comment

Up