Prev Previous Post   Next Post Next
Old 08-20-2022, 07:49 PM   #1
Human being with feelings
pcp's Avatar
Join Date: Oct 2021
Location: Singapore
Posts: 182
Default Let It Key (global scale tool)

Play in key across all your tracks. This bundle lets you monitor and control the key of your project from the master track, without cluttering up track fx and with shortcuts to enable or disable scale-locking globally. It allows playing scale degrees on white keys only, or a chromatic option for pads.

Or just use it as an easy way to keep track of a project key and any key changes, with parameter controls/envelope on the master track.

This forks scripts from IX (Snap to Key and Global Sliders) and the Easy Scale mod by baldo, and relies on their great work.

What this adds is the ability to control any track's input key from a global control in the master track, which controls individual instances of Let It Key elsewhere in your project.


The easiest way to use it is with the accompanying scripts.

- pcp_Add Let It Key to all tracks with instruments.lua
- pcp_Add Let It Key to all tracks.lua
- pcp_Add Let It Key to selected tracks.lua
- pcp_Remove Let It Key from all non-instrument tracks.lua
- pcp_Remove Let It Key from all tracks.lua
- pcp_Remove Let It Key from selected tracks.lua

The scripts will only add Let It Key to tracks that don't already have it, so no need to worry about adding duplicates. And the Add scripts will check to see if there's a Let It Key on the Master and will create one there if not.

Set the key in Master Track Controls ("Show FX parameters in panel" will make these visible) or from the master Let It Key insert to see all options.
You can automate the root and scale if there are key changes, to play in key throughout a project.

To access more parameters in the Master track, right-click on the effect and "Show FX Parameters in Panel". The default chain shows Root, Scale and On/Off. Optionally you can show Octave Transpose, Input Channel, Bank, Remap Mode (White Keys/Pads) and Start Note. Or just open the FX to change these.


The Easy Way
1. Import my repo in Reapack:
2. Synchronize packages, Browse packages, Install Let It Key (global scale tool)

The Hard Way
1. Copy the three JSFX/JSFX-inc files to REAPER/Effects/
2. Copy the two FX Chains and six lua scripts to <REAPER HOME DIR>\Scripts\pcp\Let It Key (global scale tool)
3. Note they have to go to this exact location as the paths are hardcoded. The FX Chains do not go in the FX Chains folder.
4. In the FX browser, load the six scripts.
5. Run one of the Add Let It Key... scripts and Let It Key will be added to your master track and to the input FX of your selected tracks.

The "Add Let It Key to all tracks" (and 'Remove from all tracks' counterpart) should be the default, as the resource usage is so minimal. If you throw this on the Input fx of an audio track it won't process anything until you're arming that track, and even then the CPU usage is vanishingly small.

The bank control gives you four separate syncs, so e.g. if you want different controllers to play in different octaves, or if you have a MIDI pad controller that you want to remain in chromatic scale mode and a keyboard that you want to use white keys, you can set the keyboard's input FX 'Let It Key Syncer' instance to Bank 0 and the pad track one to Bank 1, and on the Let It Key Master FX set Bank 0 to White Keys and Bank 1 to Chromatic. Each track will sync only with other instances in their bank.

You can change the IX_Scales file at REAPER\Data\ix_scales - other files are available in the REAPER Stash.
Or use Lokasenna_Convert current scale to ix_scale (in Reapack) to add the current key-snap scale in the midi editor to the scale bank used here.

I changed the behaviour of the Easy Scale mod which hopefully sidesteps its bug with 5 and 6 note scales, and is more logical to me. I like baldo's 'white keys' mode as I find thinking in scale degrees more useful and musically relevant. This uses that code, but changed to allow playing scales like pentatonic and hexatonic with the root scale degree always on the C key, this means that e.g. for a five-note scale, the A and B white keys will be blocked along with the black keys.

Don't add the Input FX JSFX directly yourself, the script will add it as part of an FX chain which includes prerolled parameter modulation with the syncer JSFX, otherwise it'll not update in real time.

One interesting thing I discovered working around this is that you can actually have parameter modulation in the Input FX slots (at least for MIDI, and between Input FX... haven't tried audio). The trick is to create an FX Chain in the regular Track FX slots and save that, then it will load into I-FX preserving whatever modulation was assigned.

Unfortunately there's no way to save Input FX as the default for new tracks or change the "double click in empty TCP context to add new track" behaviour to launch a different track template, so the best way to add this automatically to a new track is to create track templates, and assign them shortcuts (SWS Resources makes it easy to add particular track templates with a shortcut)

Include the original Snap to Key modes (Remap/Block) as additional options.
Add a chorder.

Last edited by pcp; 08-31-2022 at 12:55 AM. Reason: Updated ReaPack
pcp is offline   Reply With Quote

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 03:31 PM.

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