swarms
Interactive Swarm Space

Why Using OSC Messages?

One of the most convenient ways of controlling ISO by external devices or software components is by the use of the OSC protocol. The OSC interface enables communication between the ISO software and any OSC compatible software such as MaxMSP, Pure Data, SuperCollider, CSound, Python, etc.

OSC stands for Open Sound Control and is a content format developed at CNMAT.

Apart from that, OSC messaging can be used as means of intercommunication between ISO software components. ISO Flock and ISO Synth are independent applications and we have chosen a network communication approach for this, regardless of whether your ISO engines are running on one computer or are spread across multiple machines (see comment box below on distribution of ISO components).

Hint

In which situations should you use multiple computers: Even with today's processing power, it's not a difficult task to create swarms that put a strain on your processor(s) - likewise if you attempt to use FFT-based sound synthesis, complex filtering, or simply a whole bunch of ISOSynth units of any kind really, you will eventually run out of processing power, which can be heard as drop-outs in your output audio. Flocks on the other hand don't show the same same skipping reaction when they hit the CPU limit, but rather get slower, because flock simulations are calculated step by step. Thus for complex projects we highly recommend using separate computers for ISOFlock and ISOSynth. What do we mean by complex - that's of course not so easy to define, but for simplicity's sake we'd say a swarm is complex above an agent count of 500 to 1000, depending on the chosen neighborhood algorithm. If for some reason you need a lot more agents, one possibility would be to distribute the swarm itself on different machines - this will however create a slightly different simulation outcome due to the network lag introduced by the swarms not residing on the same computer.