Sustaining MIDI Notes (MIDI Harmony Rotator/Harmonizer)

fixusc's icon

Hello everyone

I am new to the forum and soon after purchasing M4L I have encountered my first problem. By the way: I am from Switzerland so I'd like to excuse for my funny English...

My goal is to build a MIDI harmony rotator in M4L that creates harmony from a single note in the way the Oberheim Expander did in rotating mode. Basically it makes 2 or more different 6-part chords out of the input note and changes between those chords. Of these chords 3 voices stay the same and 2 will "rotate". A famous example for the harmony rotator is Michael Breckers tune "Original Rays": http://www.youtube.com/watch?v=tPUBp9uTLIw (harmony rotator starts at 0:57)

So basically I tried to prgram this concept as a M4L MIDI effect. The problem I can't solve is missing note-off messages for the harmonic notes. You can rebuild my problem very easily: just build a simple pitch shift plugin and change the shift interval while playing. Everytime the interval changes (and for my rotator this is after every played note) the "old" harmonic note keeps sustaining.
So what I tried to do is to output always all different chords together and gate the velocity so that only one chord is heard. But I still have the same problem.
I also tried to gate the flush object so that all MIDI notes are flushed when the key is released, but the I cannot play legato anymore which is a problem on the keyboard and an even bigger one on the EWI.

I'm looking forward to your suggestions and like to thank you for your help.

lg Felix

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

a simple ptch shifter:

just use the plugin on an instrument track with a MIDI keyboard and change the number while playing.

broc's icon
Max Patch
Copy patch and select New From Clipboard in Max.

I'm using [table] to store the shifted pitch of note-on and recall it for the corresponding note-off.

fixusc's icon

Thank you for this quick response. Storing the corresponding pitch value to the note-off signal was my first intention too, although I had no clue how to do this.
Sadly I don't really understand, what your patcher does. If you could explain me a little bit what you have done, this would be very useful for me.
I am sorry for not understanding those basic things, but I'm clompletely new to Max for Live.

broc's icon

Working through the Max Tutorials will help for understanding the basics.

fixusc's icon

I think I could figure it out now, I have no more sustaining notes.
Thanks alot BROC!

broc's icon

Cool!

Peter McCulloch's icon

Late to the game on this one, but you might also check out the offer object.