Velocity Remap (like Note Remap)

A “Velocity Remap” that works like the “Note Remap” would be very useful.

Properties would be:
“In Low” (1…127)
“In High” (1…127)
“Out Low” (1…127)
“Out High” (1…127)

A few use cases: compressing/expanding/clipping/inverting velocities, velocity curves based on breakpoints (using parallel branches), replacing all velocities by a constant velocity, velocity dependant separation or layering, …

Thank you for your attention.

Hey, @Stephan_Schmitt, this functionality is already available with the Rescale Pipe.

There is a distinction between Remaps and Rescale

shown here:

So if Rescale has In Low = 17, then all velocities < 17 will become 17, etc.


If instead you want to discard all notes with velocities outside the In Low|High, you would precede the Rescale pipe by a Transform pipe set to Drop Mode:

This discards all notes with velocities outside the velocity range [17;98]

…(using Outside Range allows us to map the Transform range using the same mappings as to Rescale In Low|High range!)

Thank you for the quick reply, resonotter!
The combination of Transform (Drop) and Rescale seems to fullfil my requirements.

1 Like

Good!

Btw, if you want to experiment with...

velocity curves based on breakpoints (using parallel branches)

and your incoming notes are on one channel (say Channel 1)

try this:

  • use a series of Replace Transforms instead to cover your velocity range
    (say [0;56], [57;72], [73;96], [97;127])

  • set these Transforms to change only the channel of the notes
    (say [0;56] → 6, [57;72] → 7, [73;96] → 8, [97;127] → 9)

  • then have your parallel pipelines each start with a Channel Remap
    [6;6] → [1;1], [7;7] → 1, etc
    (recall that Channel Remap also acts like a channel filter! :smile:)

  • each of these pipelines will then have its own Rescale, Equalizer, etc..

  • …before merging your modified Note On messages (to rejoin the Note Off from another pipeline)

This approach works nicely. Just remember to Filter out Clock!

Ah - interesting!
I will try that. Thank you!

I realised after posting, Stephan, that there’s a neater way:

It leverages this rather unusual Transform setting…

…where the channel is set to the Velocity

  • this gives 16 “velocity bands”
  • which can then be grouped together by different Channel Remaps

Give it a try; it’s rather pleasing.