Tracking note-off msgs...

Brian H.'s icon

Hi,

I'm trying to make a (presumably) simple M4L patch that receives a MIDI note and subs a random note number for the one received, maintaining the velocity. I'm finding this is not so simple because there's no way to track note-offs, since the input note number is different from the output note number.

Any strategies here? Not looking to make this more complicated than it needs to be.

Thanks,

Brian

Max Patch
Copy patch and select New From Clipboard in Max.

Source Audio's icon

place original note, replacement note and velocity into coll.

remove note from coll when original not gets turned off

and send replaced note off.

that is easy part, next one would be to avoid

repeated random notes setting some conditions etc ...

Francois Weber's icon

hi,

Something like that?

Max Patch
Copy patch and select New From Clipboard in Max.

Source Audio's icon

If more then one note gets in, link between notes get lost if one does it so simple.

One has to store held and randomised notes to do it properly.

here is example using coll, but it has no double or repeated random notes filter.

Max Patch
Copy patch and select New From Clipboard in Max.

Brian H.'s icon

Thanks for the help! Looks like it will be more involved than I had hoped, but still seems doable.

Pedro Santos's icon

I've used a similar approach to a different problem: realtime transposition. When changing a transpose button while a note is playing, the note off will not match. You can use a similar approach with some tweaks.

Max Patch
Copy patch and select New From Clipboard in Max.

Source Audio's icon

If you want to avoid creating allready existing random note (which you should)

and also prevent repeating same note. then on every note On input

one must check what is allready in the pool of held notes, and what was last created one.

if match, retrigger random object.

how you do that depends what you decide to use to store current held notes