Process multiple MIDI Notes !!at a time!! ?
I am hoping to find some guidance in this helpful community!
—> Looking to use buttons on a MIDI Controller in all 8 available colors (M4L/Ableton).
What I need to know is whether there is a way to process more than one MIDI note at a time, meaning parallel processing. I am currently working on a Max patch with my MIDI Controller (Livid's OhmRGB) that is meant to enable me to actually make use of the RGB-function in Ableton Live — while the Ableton-program only ever sends On/Off messages at velocities 127 and zero respectively.
>> What needs to be done thus is to transform the output velocity to values other than 127/0 (that's green/off), for instance 32/64 (blue/yellow). This has worked out well when pressing only one button, but automated buttons (say four buttons are assigned to 'device On' of four insert effects which are being switched on when a scene is launched) I cannot seem to process simultaneously, or at least I haven't found an appropriate algorithm to perform this task — there are always lag issues and/or value overlapping so colors change in an undesired fashion.
Perhaps imagine a poly chord (Note/Velocity):
C 100
D# 80
F# 80
A 100
and the F#'s velocity is to be reduced to 10, while the C is raised to 120 and the others remain unchanged (as a patch). This I cannot figure out HOW.
The problem may be the parsing and formatting of MIDI-notes and their velocities which doesn't actually allow the direct linking of one note with its velocity but only looks at which bits of info are being passed through at a time, so when four notes come in simultaneously, how can their individual velocities be decoupled, transformed and then automatically relinked to their respective notes without interfering with the other notes played… ?
I really hope this makes sense and even more so do I hope there is a solution to this — otherwise I may clearly forget about using RGB lit buttons in Ableton forever and stick to 81 green/off buttons…
Help highly appreciated! Thank you!
okay, having gone back to the original source of notes (in my case NOT midiin because I use M4L accessing external MIDI Ports with mxj nk.midi.sys), parsing, transforming and reformatting every note individually works fine so far — with nine buttons for now, on two different MIDI channels (despite identical pitches), all assigned to different devices which turn on and off simultaneously and I get the seamless, latency free, direct RGB-feedback on the buttons in colors I chose for them.
Seemingly the issue up until now was that I only filtered notes AFTER I had parsed the incoming notes so Max had no clue which velocity belonged where. Processing them all separately links pitch & velocity quite nicely. Let's hope this still works when 37 notes come in a t a time… but theoretically, it should.
Thanks to anyone involved.
I'll paste the patch ina minute…