nosfoe
New Member
Hi everyone,
I have an instrument that uses a complex polyphonic arpeggiator (using a while-loop and wait, triggering all kinds of midi-notes and changes to notes) and I would like to implement a traditional sustain pedal function that acts on the arpeggiator: Keep the loops running even when you release the fingers from the keyboard if the sustain pedal is pressed. And if you release 3 fingers, but leave 2 fingers on the keys, then the loops of those 2 notes should continue playing even after releasing the sustain pedal - sounds pretty basic, but it's more tricky than I thought...
My 1st thought was: It's simple, register the note numbers of all midi-notes that are tiggered between the moment of activating and deactivating the sustain pedal, compare these to the notes that are still pressed when deactivating the pedal and then simply tell the arpeggiator-loops of all notes that were playing but are not pressed anymore to stop, via a stop_loop-variable.
But here's the catch: I don't think I can "reach" the relevant polyphonic loops any more since you can only address polyphonic events from either the note or release CB!
Before I give up on this: Does anyone know of a way to address polyphonic events individually, for example by using the event ID? Maybe am just not thinking straight and missing something really obvious?
Thanks!
I have an instrument that uses a complex polyphonic arpeggiator (using a while-loop and wait, triggering all kinds of midi-notes and changes to notes) and I would like to implement a traditional sustain pedal function that acts on the arpeggiator: Keep the loops running even when you release the fingers from the keyboard if the sustain pedal is pressed. And if you release 3 fingers, but leave 2 fingers on the keys, then the loops of those 2 notes should continue playing even after releasing the sustain pedal - sounds pretty basic, but it's more tricky than I thought...
My 1st thought was: It's simple, register the note numbers of all midi-notes that are tiggered between the moment of activating and deactivating the sustain pedal, compare these to the notes that are still pressed when deactivating the pedal and then simply tell the arpeggiator-loops of all notes that were playing but are not pressed anymore to stop, via a stop_loop-variable.
But here's the catch: I don't think I can "reach" the relevant polyphonic loops any more since you can only address polyphonic events from either the note or release CB!
Before I give up on this: Does anyone know of a way to address polyphonic events individually, for example by using the event ID? Maybe am just not thinking straight and missing something really obvious?
Thanks!