- Work with a lot of orchestral or otherwise articulation/keyswitch heavy sample libraries
- Use REAPER as your DAW
...then I highly recommend downloading and installing Reaticulate.
What is Reaticulate?
Reaticulate is a script for REAPER that essentially hijacks the MIDI Program Change function and alters it to facilitate the handling of complex keyswitch arrangements. Every sample library these days seems to have its own labrynthine, esoteric way of controlling articulations that can get really messy, really fast. Reaticulate streamlines this process by allowing you to create simple, color-coded, and organized lists of articulations that work with any sample library and - with the click of a button - assign the articulation you want, where you want, when you want.
At the time of writing this, Reaticulate is in alpha which means there is currently no graphical or particularly user-friendly way to create your own articulation lists. This can be somewhat daunting for those with little to no coding/scripting/modding experience. If that's you, then I hope this tutorial can get you up and running with as little confusion as possible!
So how do I create my own articulation lists?
First, a few preliminary concepts:
- When I use the term "Bank", it basically means "List of Articulations".
- All banks are designed in a text file called Reaticulate.reabank (located wherever your REAPER/Data/ folder is). An easy way to find/open this is to click on any of the following:
Side Note: You can create Reaticulate banks using a simple text editor like Notepad, but I recommend using a more robust text editor like Notepad++ or Sublime Text since these programs makes things much easier on the eyes.
1) Creating a Bank
Once you've opened Reaticulate.reabank, you're ready to create a bank. To do so, type in something like the following:
//! g="VSL - STRINGS/Solo" n="Violin I (Mute)"
Bank 4 2 Violin I (Mute)
These two lines of text are simply creating an empty bank.
- The //! is something that the text files requires before certain commands. For simplicity's sake, just follow the examples I give.
- Whatever you write in the quotation marks for g="" determines the folder structure the bank is located in. See the screenshot below to see how the above example translates into Reaticulate's interface.
- Whatever you write in the quotation marks for n="" determines what the bank is called in the folder structure. Again, see the screenshot below.
- The two numbers you write after the word Bank are essentially a way for Reaticulate to assign an ID number to the bank. For simplicity's sake, just adhere to the following:
- Make sure no two banks have the same combination of numbers.
- Make sure the first number is no higher than 63
- Make sure the second number is no higher than 127
- The name you write after the two numbers determines that the title of the bank (or list of articulations) shows up as.
2) Creating Articulations
Once you've written the two lines of text needed to create a bank, you'll need to fill it up with a list of articulations. Reaticulate calls these articulations "program changes".
In order to avoid confusion from the terms, let me by absolutely clear about how Reaticulate works:
- Each "articulation" is trigger that enacts set of up to 16 MIDI commands (such as note presses, CC values, etc.) that you are about to define in this text file.
- When you insert this "articulation" into the Piano Roll (by right clicking on the articulation in the Reaticulate window), it executes those MIDI commands at precisely the point where the "articulation" was inserted. These show up as "Program Changes" in the Piano Roll (remember when I said Reaticulate "hijacked" the Program Change function?
- Thus, the goal is to have each articulation/program change enact exactly the commands your sample library needs to select the correct sample (i.e. pizzicato, tremolo, etc.)
To define these articulations/program changes, you will type in something like the following:
//! c=legato i=legato o=note:1/note:12/note:113
4 Perf. Legato (Vib)
Here's the breakdown of the first line of text:
- Again, the //! is simply needed by the script.
- The text written after c= indicates what color the icon for the articulation/program change is. In this case, the word legato triggers a default green color. The full list of default color names can be found on this part of the Reaticulate website.
- The text written after i= indicates what icon is displayed for the articulation/program change. The full list of icons and their corresponding names can be found on this part of the Reaticulate website.
- The text after o= defines what the articulation/program change actually does. In this case, it is triggering three notes at once. These notes happen to correspond with the necessary key-switches needed to select the required patch in my sample library. So, rather than having to painstakingly input each of those three keyswitches into the piano roll every time I want to switch to legato w/ vibrato, I just hit the Perf. Legato (Vib) articulation in the Reaticulate window and those three keyswitches are automatically pressed!
- Reaticulate can do much more than just press notes, but sometimes just pressing a bunch of key-switches at once is all you'll really need. That said, if you want to understand how to program more intricate commands into each articulation/program change, dive into the Custom Banks section of the Reaticulate website.
Here's a breakdown of the second line of text:
- The number preceding "Perf. Legato (Vib)" is the ID number of the program change. It doesn't matter what this is, as long as it's:
- A number between 0 and 127
- No two articulation/program changes share the same number.
- The text after the number determines the name of the articulation/program change that is displayed on the list.
Here's a screenshot of how not only the above example looks on the Reaticulate window, but how an entire list might look:
And that's basically it! As always, remember to back-up your files. If you have any questions, please don't hesitate to comment or contact me; I'll do my best to help however I can!