Network Structure

We chose not to build one big application, that would do all the things we want. Instead, we chose to build agents that communicate via OSC ( The protocol we use can be found here: OscProtocol. This method is much more flexible than the one-big-app-approach, which already proved to be very useful. This also means, that you can use our protocol and write your own agents, both slaves and masters.


The FourierScratching system consists at the moment of two distinct subsystems:

  • The SuperCollider part and
  • Loops.

The SuperCollider part

This part is programmed in SuperCollider ( Its main purpose once was the sonification of loops. Additionally the SuperCollider part can control and modify the loops (and its visualisations) to some extent. The SuperCollider part is programmed by Martin Carlé.


Loops is the part written in Haskell. Its main purpose is the visualisation of loops. It uses the Horde3D engine ( for this.

Another thing, Loops was meant to do once, was to handle user input and control and modify the loops and its sonifications. This however is deprecated, see below.

The Plan

At the moment, we are working on consolidating the protocol and the roles of the two components.

The SuperCollider part will become the master (which means it will control every aspect of the loops, e.g. create them, add scalars, modify scalars and also control visualisation related stuff like the camera angle of loops.) Of course, it will still be responsible for the sonification.

Loops (the Haskell part) will be a pure slave. Loops (and Scalars) will have to be created via OSC.



Check out the code:

darcs get

"Loops/README" will provide you with build instructions. Compiling is not for the faint at heart, though. Compiling has been done on Linux and on Mac OS X. You will probably need other stuff from as well.

Last modified 7 years ago Last modified on 08/02/2010 12:40:46 PM