Hello!
I am new to this but I just watched a few reviews and read some documentation and I think I want to buy an organelle M for myself.
I’m used to making my own stuff and recently I started to build a multi tempo sequencer with Arduino. It was not easy though since I had to play with the limitations of the hardware in terms of how many tics per seconds you can play with and the performance limits of synchronizing them with multiple events.
How does it work with the Organelle M? what are the limits related to timing and latency/synchronization of MIDI events?
All of the MIDI processing / programming on the Organelle is done in Pure Pata (Pd). The timing granularity is limited by the Pd scheduler which runs each DSP block, 64 samples or about 1.5ms. This is usually sufficient for anything in the MIDI domain. Latency depends more on the stuff ‘outside’ Pd, the MIDI interface (or the 1/8" jacks on the M), if it is connected to USB hub, etc.
The experience in terms of programming and timing / latency will be very similar to just running Pd on your computer (and a USB MIDI interface), if you’d like to try it out.
Maybe I’m not approaching the concept of coding for the Organelle appropriately, but when I am coding for Arduino, about timing of events I can go as deep as the internal clock, which is 16Mhz. So when I want to make a grid of events I can setup a hierarchy that starts, lets say around 200k interupts per second if I consider that my instructions will occupy 80 clock cycles (not super reallistic but you have the idea, ~1k/s is more usable).
I know the Organelle’s clock goes 100 times faster but there is an OS and all. Can I go somehow that deep with the Organelle or am I limited to 64 “interrupt”/trigger/event per second like you suggested?
You can think of Pd firing an interrupt every 64 audio samples. The audio rate is 44100 samples / sec, so the interrupt is firing 44100 / 64 = 689 times per second, which is a period of 1.45 milli seconds.
But there are many high level objects in Pd for dealing with timing: delays, metronomes, timers, sequencers… With many of these objects, timing is specified in units of milli seconds. So usually you don’t have to think in terms of low level things like interrupts when designing patches. That is what is nice about Pd, it provides high level framework for dealing with timing and events.
I want to build a multi-tempo arp. So the higher my base frequency is, the more complex/rich the resulting interaction can be. At least that was how I needed to proceed on Arduino (+ I was sending on 3 different MIDI OUT) but maybe here it is different