Sending notes in different velocity ranges to different MIDI channels

I would like to filter and direct an incoming (channel 1) MIDI stream in the following way:
I want all incoming MIDI “note on” events in the velocity range 0-100 to be unaffected (i.e., they stay on channel 1 and retain their original note number), and then, for all incoming MIDI “note on” events in the velocity range 101-127 to be sent only to channel 2 retaining the original note number (but with a reassigned velocity of 85).
I also want incoming “note off” messages to always be sent to both channels 1 and 2, so there will never be any stuck notes.
Any ideas about how I could go about programming my Midihub to do this?

Transform pipes can do everything you’re after:

image

Velocity transforms.mhp (332 Bytes)

The first Transform takes care of duplicating the Note Offs on Ch. 1 to Ch.2.

The 2nd Transform takes care of Ch.1 Note Ons with velocity within 0-100.

The 3rd Transform takes care of velocities 101-127 and sets the Ch. to 2 and 85 fixed velocity.

2 Likes

Thank you so much, Giedrius! It works perfectly.
It’s wonderful to know that there are people out there like you with such vast knowledge who are also so willing to help others. Have an awesome day!

1 Like

2 posts were split to a new topic: Assign controllable velocity to notes in different velocity ranges