Unify Manual

Your complete reference to PlugInGuru's creative playground!

User Tools

Site Tools


This is an old revision of the document!

Patch Variations

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.

Basic Concept

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.

Variations file

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:


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.

Example downloads

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.

Variations file

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.

Parameter links

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.

Important reminders

  • 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.
patch-variations.1644351179.txt.gz · Last modified: 2023/05/08 18:59 (external edit)