The Logical Editor window is a powerful way to process MIDI data in Cubase, although it can often appear daunting to new users. What's more, it provides excuses for writers to dust off their Mr Spock quotes...
The Logical Editor window has been part of Cubase since the days when musicians wrote on four-line staves with the blood of wild boars, and while it remains the most powerful off-line MIDI processing tool in SX/SL, the appearance and operation of the Logical Editor window itself has undergone major surgery during its journey from Cubase VST. The original (or should that be 'classic'?) Logical Editor window was covered in the December 2000 and January 2001 Cubase Notes columns, so this month we're boldly going into the unexplored world of SX/SL's Logical Editor. Before we get started, though, I just want to stress that the idea of this column is to provide a basic overview of the Logical Editor window, as it would be impossible to cover every single facet in a two-page article. However, we'll return to some more advanced uses of the Logical Editor window in future Cubase Notes.
Although the Logical Editor can often look rather unfriendly, its operation really is quite, well... logical, once you get the hang of it. The basic operation of the Logical Editor window is to specify conditions in what's known as the Filter Condition List (in the upper part of the window) that will select certain MIDI Events to be processed according to instructions specified in the Action List (in the lower part of the window). A simple example of this would be to take a melody that pivoted around middle 'C' where you wanted to transpose every instance of this note up an octave, leaving the other notes intact. In the Logical Editor window you would use the Filter Condition List to select only the middle 'C' notes and the Action List to transpose the selected notes up an octave.
While it sounds obvious, in order to be able to open the Logical Editor window, you need to have some MIDI Events available to be processed, whether they've been recorded, entered manually, or imported from a MIDI file. As with the standard MIDI processing Functions, the Logical Editor window can be opened to process all of the Events in the selected MIDI Part (or Parts) on the Project window, all the Events in the Editor window you're currently using, or only the selected Events in the current Editor window. So, assuming you have some MIDI Events to process, to open the Logical Editor window simply select MIDI / Logical Editor.
To get a basic overview of using the Logical Editor window, let's start by implementing the simple 'transpose only the middle 'C' notes up an octave' example. The default function of the Logical Editor window, where the Events selected by the Filter Condition List are transformed by the Action List, is known rather appropriately as Transform. The fact the Logical Editor window is set to the Transform function is indicated by the pop-up menu at the top left of the window — you can select other Logical Editor functions from this pop-up menu, which we'll look at later on.
The first step is to set the Filter Condition List to select all the middle 'C' notes, and, as the name implies, the Filter Condition List is made up of a sequence of lines that set the conditions for the Events we want to process. By default, the Filter Condition List will probably contain one line when you open the Logical Editor window — if it doesn't (or to add extra lines later on), simply click the upper Add Line button to the right of the Filter Condition List. As you might expect, if you need to delete a line if there are too many or you want to start again, simply click the upper Delete Line button, which will delete the selected line in the Filter Condition List.
Each line in the list is broken down into a number of columns to define the instruction, and the Filter Condition List is summarised as a statement in the black box just underneath the list in the Logical Editor window. Once you get a feel for the way Filter Condition Statements are written, you can also click this box to edit the statement manually.
In order to set the Filter Condition List to find notes that are middle 'C', we actually need two lines: the first line to say 'find notes', and the second to specify that the only notes we're interested in are those where the pitch is middle 'C'. For the first line, Filter Target should be set to Type Is — to set the various elements for each line, simply click in the line under the appropriate column heading and choose the required parameter from the pop-up menu. Staying on the first line, Condition should be set to Equal, and Parameter 1 should be set to Note. After you've done this, notice how the Filter Condition Statement reads 'Type = Note'.
You'll probably need to click Add Line to add another line to the Filter Condition List, and in this second line Filter Target should be Value 1 since pitch is always the first parameter in a note event — and notice how the Logical Editor window displays Pitch as the Filter Target, rather than Value 1, to confirm this. As an aside, the second parameter in a note event is velocity, so if you wanted to find notes of specific velocities you could set Filter Target to Value 2. However, getting back to the second line of this example, Condition should again be set to Equal, and Parameter 1 should be set to the pitch of the notes we want to find, middle 'C'.
Unfortunately, the Logical Editor window isn't clever enough yet to let us set the pitch in terms of a useful value such as C3 (middle 'C') — instead, we have to know what the required pitch is as a MIDI note number. Fortunately, MIDI note numbers are easy to work out if you remember that middle 'C' is 60 and each value is worth a semitone; so the 'C' an octave below middle 'C' would be 48, while the 'D' above middle 'C' would be 62, and so on. So in this case, Parameter 2 on the second line should be set to 60.
The Filter Condition is now complete and you should see the finished statement as 'Type = Note And Value1 = 60' in the Filter Condition Statement. Now the Logical Editor window knows what we're looking for, we can proceed to tell it what to do with the MIDI Events once it finds them.
The Action List is similar in operation to the Filter Condition List, and so is also based on a series of lines (which are again summarised by an Action Statement in a black box just below the list that can also be edited) that specify what is to happen to the Events found by the Filter Condition List. In our example, we want to transpose the found Events up an octave, so if there isn't already a line in the Action List, click the Add Line button — the lower one that's next to the Action List this time, though. Again, you can also remove the selected line by clicking the associated Delete Line button.
The first column in an Action line is the Action Target, which is the parameter of the Event we want to process. Since we want to change the pitch of the selected notes, the Action Target should be Value 1 — remember Value 1 is always holds the pitch information for note events. The Operation column specifies what we actually want to do with the Action Target — in this case, since we want to transpose the notes upwards, the Operation should be Add. Finally, in this example, Parameter 1 specifies how much we want to add to the pitch of the selected notes (in semitones) — as we're transposing up an octave, Parameter 1 should be set to 12. And that's all there is to it.
Once the Filter Conditions and Actions have been programmed, carrying out the process on the selected MIDI Part on MIDI Events is a simple matter of clicking the Do It button. And, rather brilliantly, because the Logical Editor window is displayed in a 'floating' window, you don't have to close it to carry on working or select other MIDI Parts and Events for processing. In fact, you can undo the Logical Editor processing, make a different selection of Events and carry out the processing again all without having to close the Logical Editor window.
If you program a process in the Logical Editor that you'd like to use again without having to enter it from scratch again, you can save it (along with a brief text description in the Comment field) as a preset by clicking the Store button in the Presets group at the bottom right of the Logical Editor window. Cubase will prompt you for a name, and when you press Return, your preset will be added to the list of Logical Editor presets available from the pop-up menu in the Presets group in the Logical Editor window. Logical Editor presets can also be executed without using the Logical Editor window by selecting the MIDI Events you want to process and choosing the required Logical Editor preset from the MIDI / Logical Presets pop-up menu. It's worth noting that Logical Editor presets are not tied to any one particular Project, so any preset you create is always available in Cubase no matter what Project you're working on.
If you want to overwrite an existing preset, simply select the preset, make the required changes, click the Store button again, type in the exact same name as the preset you want to overwrite and press Return — Cubase will ask you if you really want to overwrite the preset, so click Overwrite. You can remove Logical Editor presets by recalling them from the Preset pop-up menu in the Logical Editor window and clicking the Remove button. Rather worryingly, Cubase doesn't check if you really do want to remove the preset and the operation can't be undone either, so make sure you're certain that you no longer need it.
In the first release of SX/SL for Mac OS X (1.04), Cubase seemed a little confused about where to look for and save user presets for Project Templates, plug-ins, and, of course, the Logical Editor window. However, fortunately this has been solved in the latest version (1.0.52), and Cubasenow always looks for and saves Logical Editor presets in the 'Home/Library/Application Support/Steinberg/Cubase S?/Presets/Logical Edit' folder, where Home is the name of your user account. Windows users never had to worry about where Cubase was looking for and saving Logical Edit presets, as this was always the 'Program Files/Steinberg/Cubase S?/x' folder. Now you know where these presets are stored, of course, you can also create subfolders to organise your presets, which are translated into sub-menus in Cubase.
- Pressing Shift+P, Shift+L or Shift+R opens a text field on the Transport Panel so you can edit the location of either the Project Cursor or the Left or Right Locators numerically — just like pressing P, L or R in Cubase VST. Unlike Cubase VST, however, once highlighted, only one of the four parts of the numerical location can be edited at a time — you need to press the left and right cursor keys to switch to other parts. If the Transport Panel is closed when you press one of these shortcuts, it will be automatically opened for you, although, unfortunately, it also remains open after you press Return.
- Staying with the theme of handy keyboard shortcuts, you can toggle the display of certain parts of the Project window via Key Commands. Press Control/Apple+I for the Event Infoline, Alt/Option+I for the Inspector, and Alt/Option+O for the Overview.