This nifty JSFX allows you to play any scale you want with standard MIDI, with any tuning you choose, and it works on any synth as long as it supports pitchbending (or the VST2 per-note detune, but very few do). Microtonal scales? Scales with more than 12 notes per octave? No problem. You can define any kind of relationship between the notes that you want, AND tune a specific base note to whatever frequency you want!
The way it works is pretty simple even though slightly more complex under the hood. It maps each input note based on a scale formula to a specific output note with Pitchbend. So basically,
input note -> output note + pitchbend (on a specific channel). Furthermore, for each scale, you can change the root dynamically to a note on the scale relative to the base (or key), so it still falls on the scale relative to the base, but the relationship between the notes is now around the new root. This allows you to use ONE scale even for different chord roots (but on the same scale) by just supplying a
MIDI note on Channel 16 corresponding to the new root. So, you can have one Just Intonation scale for example, but be able to play chords with any root and proper relationships. What's more, it can actually store up to
128 Scales which you can change with a Program Change as desired, the scales can be completely different this time (and arbitrary tunings for each), no need to have several instances of this script for the same instrument.
Please note that, right now, loading scales works only in
ReaJS! Meaning, Reaper's native JSFX won't be able to load the scales, because they are converted to fxb by my external tool (explained below in brief). I made this for me and a friend's personal use first, so that's why it is this way. But please note you are more than welcome to change or make another external tool based on mine, to deal with this if you can find a solution! (in that case I would even link it from here/my site if you allow it).
The reason is because Key Tuner
cannot edit scales, but it can only load/import them. The scales themselves can be written in any text editor and it's simple to write, as they are almost like Scala's .scl files. This text file is then converted via my tool to a fxb that you can load in ReaJS, which will have the scale in Key Tuner!
The external tool itself is a simple .ahk script (AutoHotkey), because I'm comfortable with it... you can rewrite it in any language if you want, it's not a big deal. (btw I also use Linux and it works just fine with Wine so it's not "Windows only")
Sorry, I have no plans to change these quirks, I released it hoping it could help some people (and took almost a day to write the guide
), but you are more than welcome to make your own converter if the .ahk bothers you, or you want to use it in Reaper's native JSFX instead of ReaJS.
Please note that I have written extensive information about it on my site, so for more info see:
https://sites.google.com/site/octaro...ools/key-tuner
Download from Reaper Stash:
https://stash.reaper.fm/v/27478/Key%20Tuner.zip
Hope you find it useful! The guide on the site even includes a tutorial if you get stuck understanding how to use it. Let's write some non-equal-temperament music.