This script enables you to map the Note output value from Fruity Keyboard Controller (set to the full keyboard range) to any other software's frequency or cutoff knob. All you need to specify is the target control's maximum and median frequencies (freq_max
and freq_mid
). The script prints a Fruity Formula Controller expression that takes Fruity Keyboard Controller's Note value as the "a" knob and outputs the equivalent frequency for your desired software. Note that the target frequency/cutoff knob must be logarithmic.
- Add a Fruity Keyboard Controller in the Channel rack.
- Select the full keyboard range and auto-map it to white & black notes.
- Add a Fruity Formula Controller in the Mixer window. Paste the output from this script into the Formula input.
- Set the "b" and "c" knobs to their median values of 0.5. From there, you can tweak them to adjust the semitone or octave.
- Right-click Fruity Formula Controller's "a" knob, select "Link to controller...", and assign it to Fruity Keyboard Controller's Note value.
- Assign your software's frequency knob to Fruity Formula Controller's output value.
Values for freq_max
and freq_mid
corresponding to Kilohearts software (e.g. Phase Plant) and Xfer's Serum VST's OSC and FX filter cutoffs are provided. To find these values for other software, set freq_max
to the value when the frequency knob is turned all the way up and set freq_mid
to the frequency when the control is set to its exact midpoint (0.5).
Why does the script require the midpoint frequency and not the minimum frequency? The minimum for some software (e.g. 8 Hz for Serum's frequency knobs) isn't precise enough to accurately map frequencies to notes.
Output for the supplied frequency values:
Kilohearts:
a*1.0913592975-0.0289078771+((Round(c*8)-4)*12+Round(b*24)-12)*0.0083309870
Serum FX Filter cutoff:
a*1.0237450196+0.0934751508+((Round(c*8)-4)*12+Round(b*24)-12)*0.0078148475
Serum OSC Filter cutoff:
a*0.9580776795+0.0875182183+((Round(c*8)-4)*12+Round(b*24)-12)*0.0073135701