Midi Assign

Chris Cherrett edited this page Feb 22, 2012 · 9 revisions

The midi assign feature in OOM is unique, in that it is truly generic. Users can build midi assign presets for any control surface, and project templates. As well as midi learn applied to any midi control type, including Record, Mute, and Solo toggle functions, users can transmit data sets from their control surface to OOM via the nrpn checkbox in each control strip, and Midi Assign will also accept sysex data transmitted from their control surface. (We've tested this with a couple of different midi keyboards with multiple knobs and buttons, as well as the popular Behringer BCF2000 control surface.)

This page contains the following sections

  • Midi Assign
  • Presets

Midi Assign

Create your midi port and map it in the midi port manager before trying to assign the controller to the track

The midi assign user interface is a tab in the connections manager. (F2)

Broken down into sections, the Midi Assign tab dialog functions are as follows:

This is the menu bar at the top of the midi assign tab, and the elements are:

Track Type This Dropdown menu enables the user to select the track type they wish to display.

Port This is a dropdown menu of all midi ports.

Override (checkbox) The override function when checked will allow the user to set a different port over an existing port assignment.

Set as Default This button will set the input port device shown in the Port dropdown menu as the default for all tracks.

The tracks panel shows all tracks unless the user specifies a track type. The columns shown are, from left to right:

En Enable track. When checked, this track is active for any midi assignments.

Track This is the track name.

Midi Port This column is for the OOM midi input port for the track, and is a dropdown menu listing all ports created in the midi ports manager.

Chan This is the user assigned input midi channel the track will respond to, for midi assignments.

Preset It's in this column that the user will see the preset they created in the midisync/preset tab, in the connections manager. Please look further down this page for a more complete explanation of how to create and use presets, in the section appropriately named Presets .

The right hand panel of the Midi Assign tab contains all midi assignments for a track that is enabled in the track panel, and selected (click on the track to highlight it). At the top of the panel is a dropdown menu, a green "add" button, and a delete button. The user can open the menu, select the CC controller they want, and press the add button to add it to the CC assignments for the track. (If you select an assignment that already exists, nothing will happen.)

Each CC assignment has a set of controls that can be viewed by clicking on the assignment.

At the top of the strip is displayed the assignment name (type). To the right of the name are 2 checkboxes, Toggle and Record .

Toggle , when checked, enables a pseudo toggle function for the CC assignment selected, where the control surface doesn't have a toggle button.

Record , when checked, only allows Midi Assign for a track when the track is record armed.

This is particularly useful for users with control surfaces that may be modest in size, and have a limited number of physical sliders, knobs, and buttons to work with. It means that for CC assignments, for example Volume, the user can set the same midi assignment for each track. So, for example, if you're using a slider for volume record, you can use the same control surface slider for all tracks, for Volume, as the tracks only accept the data when record is checked.

Because the record checkbox is designed to work per CC assignment, the user can, if they wish, set some assignments to work "globally", and other assignments specific to a track set. The choice is yours, and the uniquely generic nature of the OOM midi assign feature gives users the chance to mix and match midi assignment behaviour, not only inside sets, but across tracks.

From the left of the assignment strip, the rest of the controls are as follows:

L . This is the midi learn button for the strip, which gives users a quick and easy way to assign a control surface object to the strip. Press the L button, then move the required slider, knob, or button on your control surface, and it will be assigned to that CC assignment.

This is one way of "learning" midi assignments. The user can also set assignments manually, using the Midi Channel and CC dropdown menu options in the strip, as described below.

NRPN checkbox. When checked, the strip automatically "learns" from a controller that sends NRPN7 data. The strip display will change to show 3 spinboxes, channel, bank MSB, and bank LSB, all 3 in which the user can set values as he or she wants.

Midi Channel and CC controller dropdown menu . The user can also set midi assignments manually, using the Midi Channel value box, and the the CC dropdown menu alongside it. Simply set the values and any data received from the control surface that is set to the same values will affect the strip assignment.


OOM Presets for midi assign are set in the MidiSync/Presets tab in the Connections Manager. (F2)

The synchronization of a defined set of controllers in a DAW, and the presets in a control surface is, in many apps, non-existent, or basic at best. That means the user has to remember, or record in some way, which track or port in the DAW, coincides with a specific preset in the control surface. This becomes ever more difficult to keep track of in larger projects, where a track count might be in the tens or hundreds, and the full preset range is configured in the control surface. This manual method also means every time a user changes tracks, he or she then has to source which control surface preset they want to use for that track.

In OOM, our preset feature takes the guesswork, and tiresome administration, out of the process, and enables full sync, automatically, between OOM and the control surface.

OOM presets are defined as follows:

Presets allow OOM and a control surface to remain synced when you are navigating tracks in The Composer. You can define any number of presets to a midi port inside of OOM. The preset references the preset on a midi control surface, and then changes the state of the control surface to a new set of controllers, specified in the preset. By defining our presets inside of OOM we can then associate them with a track, and "tell" the control surface which one of its presets we want for that track, automatically.

To create a preset, you first click on a midi port in the left hand panel, then move to the right hand panel. Above the panel is a value spinbox which is where you set the preset number. Next to that is a text box where you enter your sysex data, and to the right of that is a green "add" button to create the preset.

Under those controls, in the main panel, a new entry will appear, showing a checkbox that the user can set to active (checked), or nonactive (unchecked). The next column, Id, shows the preset number, and the next column, Sysex text, shows the sysex data for the defined preset.

Once you've created a preset, or multiple presets for your midi port or ports, you can return to the midi assign tab. In the presets column of the left handpanel, which shows none by default, you'll now have additional preset entries for the port you've selected for your track, and can assign a preset to the track.

Work in progress...