Techno 2014
For 2014 projects we used the following systems:
2×15 loudpeakers midi controller
Two 15 meter rows of 15 small loudspeakers via relays controlled by MIDI – devised and built by Boštjan Leskovšek (helped by Borut Savski – electronics, Boštjan Čadež – programming)
– 15 pins on arduino UNO used with transistor switches to open one of 15 relays. Relays’ output switches connected to power amplifier to switch on the selected loudspeaker (we decided to switch on only one loudspeaker at any moment – to not to overload the amplifier).
Project with arduino code is here https://www.cirkulacija2.org/?page_id=2044
SwivelSpeakers
Two swivelSpeakers – a medium sized loudpeaker on an XY stepper motor positioning system controlled by MIDI – devised by Stefan Doepner (Stefan – modeling and mechanical works; Borut Savski and Boštjan Čadež – electronics and programming)
– two-axis coordinate system to position the loudspeaker in any direction
These are midi-controlled XY loudspeaker positioning systems driven by dc, servo or stepper motors (vertical and horizontal axis’ turning). The swivel system provides movements of one to a couple of turns in each direction – therefore relatively precise positioning of loudspeaker.
First devised by Stefan Doepner – he perfected the mechanical solutions over time (slip rings…), and Borut Savski perfected electronics and programming – in the direction of a wireless data exchange system.
Below: progression from 2013 onwards: the prototype, followed by 2014 model, etc.
MIDI controls:
– midi channel defines the selection of a particular loudspeaker
– note 0 is used for X motor position
– note 1 is used for Y motor position
– velocity on notes 0 and 12 are 64 for4 zero positions, 0 is the most left, 127 is the most right position (clearly, this defines the position resolution – becoming less precise as the range is going over one full turn)
– note 2 is used for X motor speed
– note 3 is used for Y motor speed
– notes 4, 5, etc. were used to define some behaviors (a bit more complex sequences of movements) – but have been dropped later
There were some other projects made for occasi0n of SpaceOfTime festival (walking bass, plexi bass) and some of the Stefan’s moving platforms used (noiseBot).
Midi-server
The combined system of sound sources and midi-control data was able to run with Pure Data implementation of a MIDI client-server system devised by Borut Savski.
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.
Structure:
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