Old 05-02-2016, 07:00 AM   #1
octarone
Human being with feelings
 
octarone's Avatar
 
Join Date: Apr 2016
Posts: 30
Default [JSFX] Key Tuner

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.
octarone is offline   Reply With Quote
Old 05-02-2016, 10:12 AM   #2
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,902
Default

That what I called an deep documentation !

Only things missing are screenshots and why not, audio/video demo

anyway, thanks for sharing, I don't know if I will need it soon but I'm sure others will find it very useful !
X-Raym is offline   Reply With Quote
Old 05-03-2016, 03:11 AM   #3
octarone
Human being with feelings
 
octarone's Avatar
 
Join Date: Apr 2016
Posts: 30
Default

Thank you X-Raym it took quite some time to write that

I'm planning to make some more MIDI Tools over the next few weeks (mostly related to Pitchbend), since I realized how much it would help to have some for sound design as well, at least for me (for example, a pitchbend effect similar to Random Smooth Signal I posted, but for pitchbend), but my schedule is a bit busy so they'll come in due time.

Later I have more complex thing in mind to do with a FFT mask-based effect (like alpha blending in Gimp / Photoshop) but one step at a time.
octarone is offline   Reply With Quote
Old 05-03-2016, 04:28 AM   #4
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,984
Default

This is cool.
I`m trying to somehow organize MIDI flow to VST synths through Reaktor for a long time, but it is so messsy, mainly because of splitting events to different channels + their pitchbend values, so when I need special tuning I use only synths which were made in Reaktor (or my own DIY stuff). Hope this tool will be GoTo solution for VSTi.
mpl is offline   Reply With Quote
Old 05-04-2016, 03:01 AM   #5
octarone
Human being with feelings
 
octarone's Avatar
 
Join Date: Apr 2016
Posts: 30
Default

Yeah I know that feeling. At first I was hardcoding pitchbends manually which was a real pain in the ass, absolute nightmare! In fact I even tried (quite awhile ago) TobyBear's Microtuner but I couldn't get it to work, nevermind the fact it doesn't really suit my needs because it can't work with JI properly. I like Just Intonation, personally, as well as trying out other scales. But JI is based around harmonies and is the whole point of it.

Unfortunately, even synths that support loading .scl files (or .tun files) will not be able to play JI properly, because they don't support the Root Change. In my opinion it's a very important feature, one of the reasons I even started making this. When you play a major chord it should always have the same ratios regardless of root, but that requires Root Change to the chord's root (same for chord inversions etc). Normal JI without root changes will simply sound slightly out of tune on any chord other than the one on the Key.

(the "per-note-detuning" feature was added due to my hardcoding days, I wanted a way to still be able to hardcode special notes if I wanted it seems Reaper doesn't support editing note after-touch, unfortunately... so you might want to use for example notes on Channel 15 and remap them to note after-touch or something like that, or hopefully the Cockos crew will add support for it soon)
octarone is offline   Reply With Quote
Old 01-09-2017, 12:02 PM   #6
tapcity
Human being with feelings
 
tapcity's Avatar
 
Join Date: May 2007
Posts: 65
Default

I've been hoping for something like this but Reaper won't see it not even with ReaJS. Help?
tapcity is offline   Reply With Quote
Old 01-20-2017, 11:10 AM   #7
Lokasenna
Human being with feelings
 
Lokasenna's Avatar
 
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,551
Default

He was last online at the beginning of December, so he probably hasn't seen your posts.
__________________
I'm no longer using Reaper or working on scripts for it. Sorry. :(
Default 5.0 Nitpicky Edition / GUI library for Lua scripts / Theory Helper / Radial Menu / Donate
Lokasenna is offline   Reply With Quote
Old 01-22-2017, 12:34 PM   #8
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,653
Default

Quote:
Originally Posted by TonE View Post
Would this work?
I'm not sure... If we assume that both REAPER and the receiving synth will respect the order in which MIDI is received, even when the offset is the same, then your change should not be necessary.

If this doesn't work, then I guess you could indeed try to delay the Note On by 1 sample. However, I think this will complicate things, because AFAIK you can't send MIDI with an offset >= samplesblock. So if lastoffset happens to be samplesblock-1, then you need to postpone the Note On to offset 0 in the next @block. So you would probably need to implement some sort of buffer (FIFO queue) for this.

Do note that this really depends on how the receiving synth works. There might even be synths that receive Note On/Off messages with sample accuracy, but that won't process Pitch Bend until the start of the next block (e.g. because you have used non-sample accurate automation to map a knob on your MIDI controller to pitch bend).
Tale is offline   Reply With Quote
Old 05-16-2017, 02:48 AM   #9
octarone
Human being with feelings
 
octarone's Avatar
 
Join Date: Apr 2016
Posts: 30
Default

Quote:
Originally Posted by Lokasenna View Post
He was last online at the beginning of December, so he probably hasn't seen your posts.
Yeah sorry guys, I've been away for awhile, kind of busy lately with other (totally unrelated) things (I should enable email notifications I guess )

Quote:
Originally Posted by tapcity View Post
I've been hoping for something like this but Reaper won't see it not even with ReaJS. Help?
Where did you install it? I'm not that good at troubleshooting but I think I'll need more info for this.
__________________
My JSFX & other things at my simple site, if you are interested: http://sites.google.com/site/octarone
octarone is offline   Reply With Quote
Old 12-11-2018, 12:15 PM   #10
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,984
Default

Quote:
Originally Posted by krahosk View Post
What's the difference between Key Tuner and Alt-Tuner?
http://www.tallkite.com/alt-tuner.html
Price, for example. But techically they do the same thing.
mpl is offline   Reply With Quote
Old 05-11-2020, 06:24 PM   #11
JulMusic
Human being with feelings
 
Join Date: Aug 2019
Posts: 3
Default Documentation Lost

Hello, I'm trying to use Key Tuner on a mac. I can't run the creator's AutoHotKey script (windows only) in order to convert the .scl files into .fxb files. I would appreciate if anyone could post their Key Tuner .fxb file(s) for me to drop into reaper (and maybe edit to make my own scales).

On a side-note, if anyone knows a better way for me to program my own non-12t-ET scales in Reaper, I would super duper appreciate that.

Cheers

Last edited by JulMusic; 05-11-2020 at 10:20 PM. Reason: Initial problem solved
JulMusic is offline   Reply With Quote
Old 02-15-2021, 09:44 AM   #12
David Carlyon
Human being with feelings
 
Join Date: Feb 2019
Posts: 182
Default

Quote:
Originally Posted by JulMusic View Post
Hello, I'm trying to use Key Tuner on a mac. I can't run the creator's AutoHotKey script (windows only) in order to convert the .scl files into .fxb files. I would appreciate if anyone could post their Key Tuner .fxb file(s) for me to drop into reaper (and maybe edit to make my own scales).

On a side-note, if anyone knows a better way for me to program my own non-12t-ET scales in Reaper, I would super duper appreciate that.

Cheers
Hey buddy, did you ever get to the bottom of this in the end?
Want to use basic microtonal scales in reaper (just intonation is actually all I need) and looking for the best way of doing it.
David Carlyon is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 05:23 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.