Unify Manual

Your complete reference to PlugInGuru's creative playground!

User Tools

Site Tools


patch-variations

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
patch-variations [2021/09/03 00:10] – [Parameter links] shanepatch-variations [2022/02/04 15:10] – external edit 127.0.0.1
Line 1: Line 1:
 ====== Patch Variations ====== ====== Patch Variations ======
-This page describes an **advanced feature** which few Unify users will need. To use the techniques +This page describes an **advanced feature** which few Unify users will need, and which is still somewhat experimental at the time of writing. 
-described here, you should be comfortable with creating and editing [[midi-controller-files#about_plain-text_files|plain-text files]].+ 
 +To use the techniques 
 +described here, you should be comfortable with creating and editing [[midi-controller-files#about_plain-text_files|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.
 ----- -----
  
-===== Concept of patch variations =====+===== 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 [[param-paths#top-level_paths|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. //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 [[param-paths#top-level_paths|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.
  
-===== Typical usage scenario =====+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 as shown below: 
 + 
 +{{::variations-0.png|}} 
 + 
 +To select (or change) the referenced variations file, click the larger of the two buttons. A standard file-open dialog will appear, allowing you to select the file you want to use. When you click //Open// to complete the operation, the button text will change to the name of the selected file. You can click the button again to change the reference to a different file. If you decide not to use any variations file at all, click the //Clear Variations// button. 
 + 
 +===== 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-2.png?600|}} 
 + 
 +==== 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: 
 + 
 +<code> 
 +Intro 
 +Verse 
 +Chorus 
 +</code> 
 + 
 +==== Parameter links ==== 
 +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: 
 + 
 +{{::variations-3.png?300|}} {{::variations-4.png?300|}} {{::variations-5.png?300|}} {{::variations-6.png?300|}} 
 + 
 +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-files|.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. 
 + 
 +{{ :unify_step_curves.zip |}} 
 + 
 +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 [[https://www.python.org/|Python program]], which you can also download here: 
 + 
 +{{ ::generate-step-curves.zip |}}
  
-Patch variations are most commonly used in combination with one or more sample-maps in [[guru-sampler|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//.+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|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//. 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//.
  
Line 88: Line 131:
 //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. //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:+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.
  
 <code> <code>
Line 154: Line 197:
 </code> </code>
  
-Observe how these sample-names correspond one-to-one, to the names in the variations file. The exact text is different, chosen by the library author (in this case, John Lehmkuhlto work well in the large variation-name display in the former case, vs. the small sample-select menu in the latter.+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 ==== ==== Parameter links ====
Line 162: Line 207:
 {{::variations-1.png|}} {{::variations-1.png|}}
  
-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 "+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 =====
  
-**Important:** 
   * Always include an initial entry in the variations file, corresponding to the default "all samples" choice.   * 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.   * 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.   * 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.txt · Last modified: 2023/05/08 18:59 by 127.0.0.1