Diagram of the system monitoring setup, with assistants Øystein Molnes (app programming, top left) and Bernt Isak Wærstad (system monitoring and app programming, lower left)


Implementation details


The programming for the sound installation is done in Csound and Python. Csound handles all sound synthesis and timing, while Python coordinates the dataflow and most of the the compositional modules.


This time, I tried starting with the simplest model for algorithmic composition that I show to my students in the digital composition class at NTNU. I wanted to test this simplest setup in a real production setting to see if it would scale to the job. Now, obviously, it works and it is stable. Still, I think that a more elaborate system design might have been appropriate, knowing from the start that this would not be a small scale project. For those interested, the code is available here:




Let me add: This is just for the technically inclined, that want to investigate the parameter mappings, compositonal and implementation details. Casual readers will probably not have too much pleasure from this code.

To run it, type

Csound Main.csd

in a terminal


Beware, the running time is 604800 seconds (one week, after which the program restarts itself, does some housekeeping and continues playing for another week).


You can change the running time on line 36 of Vlbi.py to something more sensible if you want to produce audio file output.


Also, beware that the number of output channels is set to 18 (line 13 in Main.csd), change this to 2 channels if you want to listen on a normal stereo system. The master output module is written so that it transparently changes the channel mixing accordingly, so you will hear all 12 physical outputs distributed to 2 channels when you use stereo output.


Stability and maintenance

The sound installation will be running 24/7 for 7 years, and it should be as failsafe and maintenance free as possible. For this purpose, I've deviced a system monitoring system, together with my assistant Bernt. All essential processes in the system are monitored and an alert is raised (email sent) whenever a problem is detected.