Table of Contents
This page describes an advanced feature which few Unify users will need, and which is still somewhat experimental at the time of writing.
To use the techniques described here, you should be comfortable with creating and editing plain-text files. However, the first example includes a link to a .guru file you can download and try, even before you understand all the details.
Important Note: when loading a patch from a library, Unify always expects to find the variations-list file in that library's own Media folder. This means, if you re-save a patch into a different library, you will need to copy the original variations-list file into that library's Media folder (and you may need to create the folder, if there isn't one already). This is a limitation in Unify v1.6.x. It may be fixed in a future update, but this is not guaranteed.
Patch variations were introduced in Unify v1.6.0. Any patch can optionally include a reference to a plain-text “variations” file (kept in the library's Media folder), which is simply a list of “variation names”, one per line. The newly-added top-level parameter variation can be linked to a macro knob, and simply selects which of the variation names is displayed in white to the right of the patch name.
You select the variations file for a patch (if any) when saving the patch. As of Unify v1.6.0, the patch-save dialog includes a “Variations” section (which was expanded in v1.8) as shown below:
To select (or change) the referenced variations file, click the Variations button to select the variations file you created from a pop-up menu:
- The first item allows you to Clear the variations file selection (if you decide you don't want to use one)
- After this, you will see a list of all .txt files in your library's Media folder, from which you can select.
- If you hold down Option/ALT when clicking the button, there will also be an Open… item near the top. This will pop pop up a standard file-open dialog, so you can navigate to any location to find the .txt file you want. Note this will make your patch non-portable to other machines.
Example 1: Song sections
One very good use of patch variations is for patches containing one embedded-Unify INST layer for each part of a performance (e.g. Intro, Verse, Chorus), which are selectively enabled via midiEnable parameters linked to a macro knob. As the knob is turned, the layers are enabled one at a time, and the variation-text at the top of the GUI changes to match.
For this example, the variations-list file (Intro_Verse_Chorus.txt, found in the Media sub-folder of the User Library folder) is very simple, consisting of just three lines:
Intro Verse Chorus
In the example 3 Parts Song Switcher patch, macro knob #8 has been set up with some carefully-crafted links so that as the knob is turned, the layers are enabled one at a time, and the variation-text at the top of the GUI changes accordingly. Here is what the links look like:
The stairstep response-curves were not made by hand, but were generated mathematically. The download link below in the next section includes these, in the form of macro-link curve presets.
Clicking the following link downloads a zipped .guru file which installs a single new patch called 3 Parts Song Switcher into your User Library, all set up in this way, including variations.
This .guru file also installs the special “stairstep” curve presets into the correct folder, so they're ready to use in your own patches.
These special curves were generated using a Python program, which you can also download here:
Both of these downloads are .zip files; you will have to unzip them after downloading.
Example 2: Sample maps
Patch variations can also be used in combination with one or more sample-maps in Guru Sampler, where the parameter osc1SampleSelect is linked to the same macro-knob as variation, and the names in the variations file correspond one-to-one with the available choices on the sample-select menu in Guru Sampler. Provided the lines in the variations file correspond one-to-one with the Guru Sampler sample-select menu choices, and the exact same response curves are used in both parameter links, the variation-name displayed in large white text at the top of the Unify GUI will always indicate which sample is selected in Guru Sampler, so it's not necessary to have the sampler GUI open to see it. This technique was first used in the Unify library PlugInGuru Chill GTR Phrases.
Here is an early draft of a variations file from the PlugInGuru Chill GTR Phrases library. This file is called Moody Chill GTR Phrases LIST.txt, and is placed in the library's Media folder.
ALL Samples 01 Dm 02 Gmaj7 Gm/Bb 03 Bbm Ebm 04 Bbm 05 Em Fm Bm 06 Am D Em 07 Eb 08 Dm Am G 09 Dm Em Fm Am 10 Gm Eb Bb Cm 11 Am 12 A 13 Gm C5 Ab5/7 14 Dm 15 Bb C Dm 16 Gm F Eb 17 Fm Eb 18 E9sus4 G A 19 F Gm Cm Bb 20 Cm Bb Ab 21 Fm 22 C5 D5 23 Em Cmaj7 24 Dm 25 Dm Bb 26 Em Cmaj7 27 Csus2 Eb Csus2 Eb 28 Gm_Eb Gm_C Gm F 29 Am Em Am Em 30 Gm Eb Cm 31 Dm Am G 32 Am F C B 33 Dm C G 34 Em C G D/F 35 Em C 36 D A6 Fm B5 37 Gm Dm F 38 Bbm Dbsus2 39 Gm Bb add9 40 F G Am C Dm 41 Cm Ab Cm Eb 42 Bb F_A 43 Gm Eb Gm Eb 44 Cm Bb Gm Ab 45 Cm Bb Gm Ab 46 Gm 47 F C Am 48 G D C 49 Gm D5 50 Cm Eb_Bb 51 Cm Ebmaj7 52 G5 Bb C5 53 G/B C Dsus4 G 54 Gm 55 Cmaj7 D 56 D5 C5 Bb 57 Cm Bb 58 Cm Bb 59 Am C G F 60 Am F 61 C5 Eb Fadd9
The initial “All Samples” line is not actually used in this library, but it must be present in this file AND the corresponding sample-names list file (see below), because Guru Sampler always provides a default “all samples” option as the first choice on the sample-select menu.
Sample-names list files
Guru Sampler supports optional Sample-names list files sibling to .gsd or .sfz sample-map files (with the same file name, but extension .txt). These sample-names lists must correspond one-to-one with the available samples in the sample-map, plus an extra initial “all samples” entry.
Here is an example from the PlugInGuru Chill GTR Phrases library, a file called 120 Moody Chill GTR Phrases.txt (there are several, and their contents are identical) in the library's Samples folder.
Guitar Phrase #01 - Dm Guitar Phrase #02 - Gmaj7 - Gm_Bb Guitar Phrase #03 - Bbm- Ebm Guitar Phrase #04 - Bbm Guitar Phrase #05 - Em - F#m - Bm Guitar Phrase #06 - An - D - Em Guitar Phrase #07 - Eb Guitar Phrase #08 - Dm - Am - G Guitar Phrase #09 - Dm - Em - Fm - Am Guitar Phrase #10 - Gm - Eb - Bb - Cm Guitar Phrase #11 - Am - Am - Am - G_C Guitar Phrase #12 - A Guitar Phrase #13 - Gm - C5 - Ab no3 Maj7 Guitar Phrase #14 - Dm Guitar Phrase #15 - Bb - C - Dm Guitar Phrase #16 - Gm - F - Eb Guitar Phrase #17 - Fm - Eb Guitar Phrase #18 - E9 sus4 - G - A Guitar Phrase #19 - F - Gm - Cm Bb Guitar Phrase #20 - Cm - Bb - Ab Guitar Phrase #21 - Fm Guitar Phrase #22 - C5 - D5 Guitar Phrase #23 - Em - Cmaj7 Guitar Phrase #24 - Dm Guitar Phrase #25 - Dm - Bb Guitar Phrase #26 - Em - Cmaj7 Guitar Phrase #27 - Csus2 - Eb - Csus2 - Eb Guitar Phrase #28 - Gm_Eb - Gm_C - Gm - F Guitar Phrase #29 - Am - Em - Am - Em Guitar Phrase #30 - Gm - Eb - Cm Guitar Phrase #31 - Dm - Am - G Guitar Phrase #32 - Am-F-C -B Guitar Phrase #33 - Dm - C - G Guitar Phrase #34 - Em - C Guitar Phrase #35 - Em - C Guitar Phrase #36 - F#min Guitar Phrase #37 - Gm -Dm - F Guitar Phrase #38 - Bbm - Db sus2 Guitar Phrase #39 - Gm - Bb add9 Guitar Phrase #40 - F - G - Am - C - Dm Guitar Phrase #41 - Cm - Ab - Cm - Eb Guitar Phrase #42 - Bb - F_A Guitar Phrase #43 - Gm - Eb - Gm - Eb Guitar Phrase #44 - Cmin - Bb - Gm - Ab Guitar Phrase #45 - Cmin - Bb - Gm - Ab Guitar Phrase #46 - Gm Guitar Phrase #47 - F - C - Am Guitar Phrase #48 - G - D - C Guitar Phrase #49 - Gm - D5 Guitar Phrase #50 - Cm - Eb_Bb Guitar Phrase #51 - Cm - Eb maj7 Guitar Phrase #52 - G5 - Bb - C5 Guitar Phrase #53 - G_B - C - D sus4 - G Guitar Phrase #54 - Gmin Guitar Phrase #55 - Cmaj7 - D Guitar Phrase #56 - D5 - C5 - Bb Guitar Phrase #57 - Cm - Bb Guitar Phrase #58 - Cm - Bb Guitar Phrase #59 -Am - C - G - F Guitar Phrase #60 - Am - F Guitar Phrase #61 - C5 - Eb - F add9
Observe how these sample-names correspond one-to-one, to the names in the variations file, except there is no default “all samples” line at the start. This is because this is a list of sample names, not mapping options.
The exact text in the two files need not be the same; library author John Lehmkuhl has chosen the text to work well in the large variation-name display in the former case, vs. the small sample-select menu in the latter.
Here is an example of how one of the Unify macro knobs is linked to both the osc1SampleSelect parameter of a Guru Sampler instance, and the top-level (global) variation parameter, in the PlugInGuru Chill GTR Phrases library:
What's not immediately obvious in this screenshot is that the leftmost end of the response curve does not go all the way down to zero, because that would select the default “all samples” map, which is not used in this case. Instead, the leftmost point has been carefully positioned to select the second choice, which in this case is the single sample “Guitar Phrase #01 - Dm”. Then the curve is copy/pasted to the second link to variation.
- Always include an initial entry in the variations file, corresponding to the default “all samples” choice.
- The sample-name list files used with Guru Sampler do not include the “all samples” item.
- Parameter response curves should normally be linear; there is little practical value in using curved shapes.
- If you don't want to ever select the “all samples” choice, make sure the lowest value of your response curve does not go all the way down to zero.