Remaps incoming midi notes into different note range (squishes, stretches, inverts) with optional scale quantization.
This script squishes, stretches
* Notes outside the input range are suppressed
* If input knob changes, its other knob will update position to prevent range overlap
* The output range can be inverted
* Tap SHIFT to toggle between ranges setup and bend/scale quantization setup
Bend & Scale Quantize Setup
* LOG toggles log output, double-Tap to toggle
* BEND allows to change the mapping curve from linear (OFF) to a curve that
bends towards lower or higher notes. Double-Tap to reset to OFF.
* QUANT selects the scale the output notes are quantized to
* ROOT selects the quantization root
Bending happens around the ‘center note’ of the input range. For the default
range of 0 – 127 the center is 64, which may bend down to 16 (bend 80 L) or
up to 111 (bend 80 H).
Bending works best if the input and output note ranges are limited – its
range-center may then bend down to 1/8 or up to 7/8 of its range span
depending on the bend factor.
Use cases:
– For regular transpose of up-one-octave, set input min=0/max=115 and
output min=12/max=127
– For ‘inversion’ of a melody, set the input note range to just cover the lowest
to highest note and for the output range set the minium to that highest notes
and maximum to the lowest note
Extras:
– Detection of double input note-on/off
– Detection if computed output note is already playing
– Ranges can be adjusted while input is playing, there should be no hanging notes
– Optional logging of activities
.
The script was developed upon request/idea of annahahn on the Audiobus forum ( https://forum.audiob.us/discussion/39532/midi-pitch-remapper-auv3-or-mozaic-mathematical-not-musical-scales-ie-1-127-remapped-to-36-92 )
Updated to v1.1
– Added LOG knob to toggle logging
– Added BEND factor for non linear transformations, default is linear.