MIDI mixer module: Input priorities or race condition ?
When two notes arrive at different inputs but at the same time, how is the MIDI mixer module selecting what appears at the output? Is there some form of priority or is it a race condition?
When two notes arrive at different inputs but at the same time, how is the MIDI mixer module selecting what appears at the output? Is there some form of priority or is it a race condition?
Comments
It can only be a race condition as there is no such thing as "at the same time" on iOS.
@rs2000 Could you please explain further? Say you have a chord, all at the same “time”, what you’re saying is there’s no way to guarantee in whatever order they’ll be arriving?
edit: wait I didn’t mean such an open question, I meant within Drambo
I understand. Because everything is processed in a serial matter and MIDI in itself is serial, there is no "at the same time". That means for me that the problem with overlapping notes (aka "polyphonic") has to be solved after the mixer: Poly / Mono logic, arpeggiator or whatever might be fit for purpose. Thanks for reminding me about that!
Yes. In case of an arpeggiator, theoretically one could define a time window after receiving the first note of a chord and only after waiting, say, 50ms, re-order the notes by pitch and arpeggiate them in a certain order.
But in that case the arpeggiator would have 50ms latency to make sure it has received all notes played.
Drambo's Arp module has an "As played" mode that comes closest without adding latency.
There is a MIDI Delay module that will let you add tiny delays though, and that would be my choice for "prioritizing" certain MIDI flows or notes in a chord that has multiple notes at starting the same position in the sequencer:
Adding only 0.1ms delay to one MIDI flow would be enough to reverse the note order here.
Thanks for the suggestion.