Open Keys is a probabilistic MIDI mapper and editor. It takes an input (MIDI Note 0-127) and maps it to a new output note based on a set of rules. These can be edited and customized for a variety of musical purposes.
This plugin does not generate sound on its own; it controls existing virtual instruments or hardware synthesizers.
The following sections are described below:
This is the main section of the plugin, used for introducing controlled randomness into the system. These parameters work together to define a set of notes, shown in the visualizer at the top of the screen. By default, the notes are defined as 0-127 (C-2 to G8), and Middle C = C3.
Key: Sets the root note (tonic) for the selected Scale.
Scale: Defines the set of intervals relative to the Key that, when applicable, determine the specific notes available for generation.
Octave Tracking (On/Off): When enabled, each successive repetition cycle (set by Length) is shifted one octave higher.
Octave Transpose (Up/Down): Shifts the pitch in octave increments.
Length (1-127): Sets the number of notes in a repetition cycle that repeat across the keyboard.
If Length is 12, the cycle repeats every 12 steps.
Drift (1-126): Sets the randomization search radius in ± semitones. It does not trigger randomization itself; it defines the pool of available notes if randomization happens. A value of 1 allows notes within ±1 semitone of the original note.
Chaos (%): The probability that a given note will change to a new note. If Chaos is 0%, the engine never enters the Drift stage and the note is locked to its original value. If Chaos is 100%, the engine always attempts to select a note from the Drift pool, subject to the rules of the active Chaos Mode.
Scale Chaos (%): The probability that the system will enforce Key/Scale (diatonic) constraints, subject to the logic of the active Chaos Mode. When Scale Chaos is 0%, the Chaos generation is chromatic and Chaos Mode constraints are ignored. When Scale Chaos is 100%, the system strictly enforces the logic determined by the active Chaos Mode.
Unison (%): The probability that a note will abandon its independent calculation and instead derive its pitch from another step in the repetition cycle. If Unison is 0%, every note behaves independently. At 100%, the engine attempts to link every note to a neighbor determined by the Unison Mode.
Scale Unison (%): The probability that a note generated by Unison is forced to fit the selected Key/Scale. When Scale Unison is 0%, Unison may result in a note outside the Key/Scale. At 100%, Unison forces the resulting copied note to fit into the selected Key/Scale.
Length Mode: There are 2 different modes that change the behavior when setting Length. To change the Length Mode, shift-click the Length text or change it in the top OPEN KEYS menu under Length Mode.
Chaos Mode: Determines how the system handles Key/Scale constraints when Scale Chaos is triggered.
Unison Mode: Determines how the note copies its neighbor when Unison is triggered:
Randomize Parameters: Randomizes the value of all enabled parameters.
Randomization Enable: The buttons next to each of the main parameters (the square yellow buttons shown here) enable or disable randomization when Randomize Parameters is clicked.
Note: Chaos Mode and Unison Mode do not have Randomization Enable Buttons visible, but randomization can be enabled or disabled for them in the top OPEN KEYS menu or by shift-clicking the Scale (C) and Scale (U) text.
Randomization Range Sliders: The bottom slider for each of the 6 main parameters (Length, Drift, Chaos, Scale Chaos, Unison, and Scale Unison) sets the range (minimum and maximum values) of a given parameter when Randomize Parameters is clicked.
This can be especially useful for containing Drift randomization values, as large differences in pitch can be difficult to work with.
Randomization Pattern: Randomizes the notes using the existing settings of each parameter.
Note: Shift-clicking the Randomize Pattern button changes this button to Shift Pattern. If you prefer the Shift Pattern behavior over Randomize Pattern, you can change the default in the Swap Randomize Pattern in the Open Keys menu.
Randomization Interval: Randomizes the interval that sets the Scale.
Randomization Preset: Randomizes the preset when 2 or more presets are saved.
Select: Allows the user to select a group of notes to further edit.
New Pattern From Selection: To make a new pattern from the selected area, right-click on the selection in the visualizer and click New Pattern From Selection.
Freeze: Freezes the area selected in Select mode, allowing for the editing of unfrozen notes only. The 2 Freeze sub-buttons allow the user to switch back and forth between freezing the selected and unselected notes. When the area between the vertical selection bars is frozen (left sub-button is on) the frozen selection can be moved with the 2 selection sub-buttons above the Freeze sub-buttons.
Reset Unfrozen Notes: When the area between the vertical selection bars is frozen (left sub-button is on) and you want to reset the unfrozen selection to default parameters, right-click on the selection in the visualizer and click Reset Unfrozen Notes.
Draw: Allows the user to edit notes with the mouse or sub-buttons.
Invert: Inverts the pattern.
The Open Keys button allows the user to do the following:
There are a number of hidden clicking options that may make the plugin easier to use.
Double-clicking the main parameters (Length, Drift, Chaos, Scale Chaos, Unison, and Scale Unison) sliders resets the value to default.
Clicking "Scale" text moves to the next scale, while shift-clicking it goes to the previous scale.
Here is a list of other shift-click actions:
| Shift-Click | Action |
|---|---|
| "Open" text | Reset |
| "Keys" text | Change Standard/Compact View mode |
| Visualizer | Change Light/Dark View mode |
| Randomization Parameters button | 1. Hide main control values 2. Hide main controls |
| Randomization Interval button | Hide Randomization Enable buttons |
| Randomization Preset button | Hide Preset Bank |
| Octave Transpose buttons | Semitone Transpose |
| Randomization Pattern button | In default mode, Shift Pattern. If the Swap Randomize Pattern file item is selected, Randomization Pattern. |
| Randomization Enable buttons | 1. Solo Randomization Enable for a specific parameter 2. Enable Randomization Enable for all parameters |
| "Chaos" text | Select the Chaos Mode |
| "Scale (C)" text | Randomization Enable Chaos Mode on/off |
| "Unison" text | Select the Unison Mode |
| "Scale (U)" text | Randomization Enable Unison Mode on/off |
| Draw Mode 2 sub-buttons | Change the selected note |
| Scale buttons | Solo button |
In most DAWs, using Open Keys is a straightforward process. Depending on your DAW, you can either load Open Keys directly into a dedicated MIDI FX slot (Logic Pro) or place it on its own track and route its MIDI output directly to the MIDI input of your target virtual or hardware instrument.
Ableton Live and FL Studio handle third-party MIDI effects differently and require the following specific setups:
Ableton Live
Ableton Live has MIDI Effects of its own, but it doesn’t allow third-party plugins to be dedicated MIDI plugins. This means that MIDI plugins like Open Keys need their own track. It is relatively simple to do, but requires a few important steps to work correctly.
FL Studio
FL Studio handles internal MIDI routing using "Ports" inside the plugin wrapper settings, as follows:
MIDI Mapping
The following parameters are enabled for automation/MIDI Mapping:
In Ableton Live, this is done by clicking the Unfold Device Parameters triangle as shown here.