This is Pure Data implementation of a MIDI client-server system devised by Borut Savski and used with SpaceTime festival of Cirkulacija 2 in october 2014. It is far from complete yet functional. We await the next events to bring it further.
The scope was to have a distribution system for controlling the multiple motorized sound-emitting objects that could be used by any participant on thew local network. He/she should be able to control one, some or all available motorized objects. We decided for simple midi control based on midi channel to define the object and midi note/ velocity to define specifics of each object. Additional notes/velocity pairs can be used to trigger pre-programmed functions of the objects. We use arduino and f18 microcontrollers and custom made electronics/drivers fro motorized objects.
For movement one would use any midi software. A timeline-based (Cubase, Ableton Live, Cakewalk, etc.) or algoritmic (Pure Data, Max MSP, Ableton Live) approaches are valid. Loops would produce repetitive movements – objects in sync or not.
Audio output faders should also be accessible, so that sound levels to loudspeaker objects can be defined. For multichannel audio inputs also the assignement levels should be adjusted (this is not implemented yet in version .4).
A server-client system is a set of Pure data patches based on Martin Peach’s set of objects (udpreceive, udpsend) and the use of OSC for network traffic. Visual interface was made quite nicely to reflect the various blocks that we deal with.
peripheral computer as audio source and midi-control client (sending OSC midi data) ->
-> midi-server (receiving the OSC midi data and serving midi to all objects; sending OSC data to control audio levels) ->
-> audio-server (controlling the levels of audio outs in Ableton Live; not yet input assigning to outputs)
Audio cables were fed to Alesis digital mixer inputs -> then into computer running Ableton Live -> sent to eight channel sound card -> and to the amplifiers -> and the loudspeaker objects.
MidiYoke was used on windows pc machines to route midi data between the programs. MidiOX was used on midi-server to send data to midi devices.
Sets of PD patches:
– MidiClient (receive midi-stream from another local midi program and transfer it as OSC data stream to server patch; has some graphic inteface representations of all objects for quick use)
– MidiServer (receive OSC stream and format it as midi and send out to midi hardware; also has some graphic inteface representations of all objects for quick use; send further on the control data for audio-server as OSC)
– AudioServer (just receives OSC data and transfer it as midi-stream to control the Ableton Live faders)
Patches were used with PD-extended 0.43.4-extended