@Christoph-Hart
Related to this issue of not being able to grab notes by their midi channel in the NoteOn Cb, I tried a different approach using no arp or midi players at all. Instead I've built 4 arpeggiators manually and now to my question:
I use the TransportHandler and made the "NoteOn callback inside the GridChange function set to 18, 1/96 (1/64T)
const TH = Engine.createTransportHandler(); TH.setEnableGrid(true, 18); TH.setSyncMode(TH.PreferExternal); if (MPsActivate[0].getValue()) { local nv = NVLookUpNum[MPsSpeed[0].getValue()-1]; if (gridcount % (nv*96) == 0) { slider1 == NumSliders.getValue()-1 ? slider1 = 0 : slider1++; //for (sp in S) local nn = MPSPs[0][0].getSliderValueAt(slider1); local v = MPSPs[0][1].getSliderValueAt(slider1); local l = MPSPs[0][2].getSliderValueAt(slider1); local len = Engine.getSamplesForQuarterBeats(nv*l*4); for (n in PKs) { local ev = Synth.addNoteOn(1, Math.range(nn + n, 0, 126), v, 0); Synth.noteOffDelayedByEventId(ev, len); } } }I have not tested this carefully yet.
Is there a drawback using this approach?
It feels like it will not be as accurate as using the built in NoteOn cb