Unify Manual

Your complete reference to PlugInGuru's creative playground!

User Tools

Site Tools


triggerbox

TriggerBox

TriggerBox is a creative MIDI-effect which interprets note-on, note-off, and continuous-controller (CC) events in unique ways. It was designed primarily to allow combining multiple Guru Sampler instances to create realistic acoustic-piano performances (see Example below), but it's generic enough to support other, more creative uses as well.

NOTE: TriggerBox has been designed for highly specific uses. If all you need is a basic MIDI delay, use JitterBox.

TriggerBox has been designed primarily for tracking the state of the MIDI sustain-pedal (CC#64), to enable use of multiple Guru Sampler layers to create realistic piano sounds. You can also use it experimentally with other MIDI CC's, but you are basically “on your own” in doing so.

Functional overview

TriggerBox is a MIDI-effect. It monitors the stream of incoming MIDI event data, and can modify it in certain ways. TriggerBox can do two very specific things, which are unique to this plug-in:

  1. It can track whether a selected CC is, or is not, within a certain range. It does this by monitoring incoming MIDI for CC messages tagged with the selected CC-number. It also provides a mechanism for you to define whether it should consider the selected CC “in range” or not by default, i.e., before it has yet seen such a CC message.
  2. It can generate “triggered notes”, which are MIDI note-on/note-off pairs, with specified note-number, velocity, and duration.

As mentioned above, TriggerBox has been designed primarily for tracking the state of the MIDI sustain-pedal (CC#64). The main things TriggerBox can do are:

  1. Allow input MIDI note-events to pass through, or block them, based on the whether the selected CC is in range. This can be used, for example, to have one INST layer to sound when the sustain-pedal is up, and a different one to sound when the pedal is down.
  2. Generate a triggered note when the selected CC enters and/or exits the selected range. This is most commonly used to trigger sampled “pedal noises” when the sustain-pedal is pressed and released.
  3. Generate triggered notes in response to input MIDI note-on/off events. This is most commonly used to trigger “release samples” in response to note-off, but can also be used to trigger fixed-length samples (e.g. noises) in response to note-on.
  4. Generate triggered notes less than 100% of the time, randomly, according to a probability percentage.
  5. Modify the velocity of output MIDI notes (including triggered notes), according to a custom velocity curve.

GUI overview

When you first open TriggerBox, you will see a simplified GUI like this:

The CC in range indicator at the very top-right of the TriggerBox GUI lights up when TriggerBox considers the selected CC to be “in range”. Of course, a newly-created TriggerBox instance cannot know the “current value” of the MIDI CC until it actually receives a CC message with the appropriate CC number. Therefore, the CC in range indicator also acts as a button—you can click it to toggle whether TriggerBox should consider the current value in- or out-of-range.

TriggerBox supports named presets. The name of the currently-loaded preset (or “None”, if no preset has yet been loaded) is shown in large white text at the top.

Clicking the Load Preset button pops up a menu of available presets; click on any preset to load it. Note that TriggerBox's presets are simply .xml files in a folder called TriggerBox Presets, which you will find in the Presets sub-folder of the main Unify data folder.

If you wish to add your own new preset to the list, click the Save Preset… button. Unify will present a standard file-save dialog, which should already be prepared to save a new .xml file into the TriggerBox Presets folder. Simply enter a name for your new preset (you don't have to add “.xml” at the end) and click Save.

You should always save new TriggerBox presets somewhere under the TriggerBox Presets folder. You may create sub-folders if you wish; these will become sub-menus in the pop-up presets menu which appears when you click Load Preset.

Clicking the Show Details button “opens” the full GUI, which looks like this:

The full GUI includes everything in the simplified GUI, with numerous additional controls below. These additional controls are divided into five sections labeled Note Triggering, Velocity Curve, Input Notes, When CC Enters Range, and When CC Exits Range, which are discussed separately below.

Note Triggering

The controls in the Note Triggering and Input Notes sections affect how MIDI note-on events received by the plug-in (e.g., notes you play on the keyboard) trigger corresponding output notes. The Note Triggering controls specifically affect which MIDI CC is used to govern triggering, and also the probability that a given input note-on event will trigger a corresponding output note.

MIDI CC controls

Clicking the MIDI CC button pops up a menu of all 128 MIDI CC numbers, with their standard functional names where appropriate. Choose from this menu to select which CC number TriggerBox should monitor to affect note triggering.

Below this button are two number-boxes which allow you to specify an exact range of values of the selected CC to watch for. As will be explained, TriggerBox can be set up to respond differently, based on whether the most-recently seen value of the selected CC is within or outside the specified range.

Just to the right of the two number-boxes is a small green in-range indicator, which lights up when a MIDI CC message is received which matches the selected CC number AND whose value is in the specified range.

  • You can also click this indicator with the mouse to toggle it on/off, and the on/off state will be saved when the state of the plug-in is saved (e.g. as part of a Unify patch).
  • This is extremely important, because until TriggerBox actually receives a CC message, it has no way to know the position of the corresponding physical control. For example: the default CC number is 64, corresponding to the MIDI sustain-pedal. When TriggerBox is first instantiated (e.g. by loading a Unify patch), it has no way of knowing if the pedal is up or down, so you have to tell it which to assume. (The default is off, meaning “pedal up”.)

The Pass CC to output checkbox allows you to specify if the monitored CC messages are passed through to the plug-in to downstream plug-ins or suppressed. The default behavior is to suppress them.

Probability knob

The Probability knob at the right of the Note Triggering section controls how often input note-events trigger corresponding output notes. The knob is calibrated from 0% to 100%. For every MIDI note-on event, TriggerBox will randomly choose whether or not to trigger a corresponding output note, and will do so for the specified percentage of input-events. The default is 100%, so there is no randomness at all; every input note-on event will trigger a corresponding output event (provided this is what the Input Notes controls specify; see below). Reduce this to 25%, and only one input note in every four will trigger an output note.

Velocity Curve

The velocity graph works just like the velocity graph controls on Unify's INST and MIDI layers. Click on the graph to pop-up a velocity-curve editor to adjust the curve shape. The default shape is an “identity function” which does not change velocity values at all.

Input Notes

The Input Notes controls specify exactly how TriggerBox responds to input notes.

Pop-up menus

The first two pop-up menus on the left effectively “spell out” whether or not, and if so how, output notes are triggered. Options on the upper menu are:

  • IGNORE input notes entirely:
    • Input notes don't trigger output notes at all
    • The other two menus will be greyed-out, indicating they are inactive
  • Pass input notes to output:
    • Each input note will (if trigger conditions are met; see below) result in a corresponding output note.
    • MIDI note-ON events are passed through only the specified percentage of times
    • Note-OFF events are always passed
    • The result is that output notes are exactly as long as input notes
  • Note-ON triggers output note
    • Each input note-ON event will (if trigger conditions are met; see below) trigger generation of an output note-ON/note-OFF pair, according to the settings of the Start Delay and Gate Time knobs (below).
    • The result is that all generated output-notes will have exactly the same length, and may begin slightly after the MIDI key is depressed (in a manner similar to JitterBox).
  • Note-OFF triggers output note
    • This works just like the “Note-ON” setting, except that output notes are triggered by input Note-OFF events.
    • The result is that output notes are triggered when you release (lift up) each MIDI key, rather than when you press the key.

Options on the middle menu are:

  • Always
    • The setting of the MIDI CC Button is ignored. All input notes can trigger output notes.
  • When CC is IN range
    • Input notes can only trigger output notes when the last-known value of the selected MIDI CC is within the range specified by the two number-boxes.
  • When CC is OUT OF range
    • Input notes can only trigger output notes when the last-known value of the selected MIDI CC is outside the range specified by the two number-boxes.

The third menu will only be enabled when the first menu is set to Note-OFF triggers output note. Otherwise, it will be greyed-out and set to “Use Input Note-ON velocity”.

When input note-OFF events are used to trigger output notes, there are two possible options for setting the output note velocity. The third menu allows you to choose:

  • Use Input Note-ON velocity means the output notes will be like “echoes” of the corresponding input notes.
    • A loud input note (key pressed with high velocity) will result in a correspondingly-loud output note.
    • Note this is the only sensible choice for older MIDI keyboards which do not detect key-up velocity.
  • Use Input Note-OFF velocity uses the key-up velocity reported by newer MIDI keyboards.
    • The loudness of output notes will be determined by how quickly the MIDI key is released, entirely independently of how quickly it was pressed.
    • This mode may require some adjustments to playing technique, as you may be unfamiliar with virtual instruments which respond to key-up velocity.

Start Delay and Gate Time controls

The two knobs at the right of the Input Notes section allow you to adjust the start delay and duration (aka “gate time”) of generated output notes. Each has a bpm checkbox to allow specifying tempo-based durations (triplet 64th up to whole-note) instead of times in milliseconds (0 to 1000).

  • Default Start Delay is 0
  • Default Gate Time is 100 ms

These controls work quite similarly to the delay-time controls in Omega Delay.

When CC Enters/Leaves Range

TriggerBox can also trigger output notes when the selected MIDI CC enters and/or exits the specified value-range. This functionality is entirely separate from input note-triggering as described above.

The two sections at the bottom of the GUI are substantially identical, and so are described together here. The only difference is that the section on the left applies when the specified CC enters the range, and the one on the right applies when it goes out of range.

The large button at the top of each section pops up a menu with four choices, as follows:

  • Do Nothing
    • The event is simply ignored; no output is triggered.
  • Send Note-ON
    • A MIDI note-ON is generated.
    • The note-number is specified by the Note box to the right of the button
    • The velocity is specified by the Velocity knob below.
    • This is typically paired with a “Send Note-OFF” or “Trigger Note” selection in the other section.
  • Send Note-OFF
    • A MIDI note-OFF event is generated.
    • This is typically used with a “Send Note-ON” selection in the other section.
  • Trigger Note
    • A MIDI note-ON is generated immediately, followed by a note-OFF after the specified Gate Time.
    • The note-number is specified by the Note box to the right of the button
    • The velocity is specified by the Velocity knob below.

The two Note boxes work very similarly to the note-boxes in Unify's INST and MIDI layers. Note you can right-click (or hold down CTRL and left-click) a note box to put it into “MIDI learn” mode:

  • The note-name changes to a question mark, indicating it's listening for input MIDI.
  • Press any key on your keyboard to set the box to the note-number for that key.
  • The note you play will be passed through to the output, so you can verify that it triggers the sound you want.

Note another useful trick for finding the right note-number is to simply bypass the TriggerBox plug-in temporarily, so you can simply play different notes until you find the one you want, then un-bypass it and set the note box as described above.

The “Send note-ON” and “Send note-OFF” options are treated a bit specially, to avoid “stuck” notes. Whenever you set either the “enter” or “exit” sections to “Send Note-ON”, the opposite event will automatically generate a corresponding MIDI note-OFF message, before performing the selected function. This may not be sufficient to eliminate stuck notes entirely; use the MIDI Panic button (exclamation-mark icon) at the bottom of the Unify GUI if necessary.

Example: Realistic sampled piano

This section is a bit of a placeholder. I will update it to reflect whatever demo patches you create.

The default settings in TriggerBox have been chosen to be very close to what is needed to set up a two-layer patch like the one illustrated below, where

  • INST1 plays when the MIDI sustain pedal is UP
  • INST2 plays when the pedal is DOWN
  • When the pedal goes DOWN, a C-2 (MIDI note-number 0) is sent to INST2, and held until the pedal is released.
    • The INST2 sample-map has a “pedal down” noise sample which responds at note-number 0
  • When the pedal goes UP, a 100-millisecond C-2 note is sent to INST1
    • The INST1 sample-map has a “pedal up” noise sample at note-number 0

To download this patch, click on this link: triggerbox_demo_patch.zip

The TriggerBox instance on the INST1 (pedal UP) layer is set as shown below.

The TriggerBox instance on the INST2 (pedal DOWN) layer is set as shown below.

triggerbox.txt · Last modified: 2022/02/04 15:10 (external edit)