Alongside note data, controller information is a fundamental part of the MIDI protocol and an essential means of physically controlling and manipulating virtual instruments (VIs). Whether you’re tweaking the cutoff on a virtual synthesizer or adding dynamics to a sampled string patch, the use of a MIDI controller — and there’s a multitude of different ones out there to choose from — enables you to implant expression directly into your sequence data. Not surprisingly, Logic Pro is equipped with a number of different strategies and approaches to working with controller data, so it’s well worth appraising these contrasting solutions and seeing how they can best fit your workflow.
Strings and things
In actuality, though, the techniques we’re going to describe here work particularly well with any of the large number of string-based sample libraries that use the mod wheel (or any other assignable MIDI controller for that matter) to manipulate the playing dynamic rather than taking the traditional approach of using note velocity. With tools such as Spitfire’s Albion and Project SAM’s Symphobia, therefore, the ability to record and edit controller data in an efficient and musical fashion becomes a fundamental part of the sequencing process.
One of the most basic ways of working with controller data is to record it directly into your sequence data. Unless you’re confident to do this is one pass, it’s worth keeping two distinct track lanes — both assigned to the same instrument, but keeping note data separate from controller data. To do this, use the menu command Track>New with Same Channel Strip/Instrument to create an additional track lane for your selected instrument and avoid controller regions masking existing note-based regions. Of course, you can merge the region once you’re finished or edit the controller data and note data simultaneously by selecting both regions before you enter the Piano Roll Editor.
For precise, easily edited controller moves it’s often better to draw in the curves yourself using the Piano Roll Editor, especially if you’re performing long dynamic sweeps that last several bars. You might also find that existing ‘recorded’ controller moves are tricky to edit, with a series of nodes strewn along your region.
You can open the controller track lane at the bottom of the Piano Roll Editor by clicking on the small icon just above the Mixer tab. Try accessing Modulation track lane via this menu to see the moves that we’ve already recorded displayed ready for us to edit.
Working with the Hyper Draw display is somewhat similar to working with automation in the Arrange area, with the data displayed as a series of node points. Use the Pointer tool, for example, to add or reposition nodes, which is arguably the best way to create controller moves from scratch. Both the Erase tool and Pencil tool work as expected — either erasing moves or drawing in ‘gestural’ moves where you want the controller movements to be more dramatic.
The most interesting tools in Hyper Draw, though, are the Automation Select and Automation Curve tools. Use the Automation Select tool to as a means of rescaling a series of controller movements — drag-enclosing several nodes, then repositioning them en masse by moving just a single node. This is a great way of raising or lowering a collection of moves without having to redraw or re-record the entirety of the controller information. The Curve tool works as you’d expect, and is great way of rounding off an otherwise linear controller movement so that it has a greater degree of musicality.
Working with Hyper Draw in the Piano Roll Editor makes a great deal of sense when you’re dealing with a single instrument or a set of controller movements that are intrinsically linked to musical notes. It doesn’t work quite so well, though, when the controller movements need to be applied on an arrangement level. A good example of this are the aforementioned string samples, where you’re trying to shape the dynamics of a number of concurrent instrument parts — violin, viola, cello and double bass, for example.
Fortunately, however, Logic has an answer to this as Hyper Draw is accessible from the Arrange area, making it possible to see controller movements across multiple instruments and, even more importantly, edit controller data without having to go into one of the MIDI Editors.
Rather than enabling Hyper Draw globally, the function is applied on a region-by-region basis, arguably making it easy to select different controller numbers for different regions. To enable the Hyper Draw view on our ES2 region, therefore, select the region and choose View>Hyper Draw>Modulation from the Arrange area’s local menu. Editing is carried out in the same way as it is in the Piano Roll Editor, so you can edit, draw in or re-scale controller data to suit the track you’re working on.
It gets really interesting, though, when we start to scale up Hyper Draw across multiple regions. Moving over to the second ES2 instance, we can enable the same Hyper Draw view for modulation, enabling us to view and edit two simultaneous sets of controller movements. If you’re feeling really adventurous you could use the same parallel track lane principle that we used earlier on, creating an additional region and then assigning it to a different controller (in this case, use the Expression controller, which is assigned to resonance). Now we’re seeing not only multiple instruments, but also multiple different controllers.
The techniques that we’ve explored so far in this tutorial have been principally driven by the need to control slow dynamic movements on virtual instruments, but, of course, this is only the beginning to what you can achieve by marrying MIDI controllers with Logic. In the next exercise, therefore, we’re going to look at how you can use some of Logic’s other MIDI editors — specifically, the Hyper Editor and Transform Editor — to create a form of sample-and-hold movement using controller data.
To begin the exercise, create an empty region on either of the two ES2 instances and ensure that any existing modulation movements have been deleted. Open the newly created region in the Hyper Editor. The Hyper Editor is interesting for two principal reasons. Firstly, it’s a good way of seeing more than one controller simultaneously, although in this case we’ve already explored a solution to this scenario in the Arrange area. What’s more interesting in this case is that we can use the Pencil tool to create stepped control changes, with a new node on each 16th note division. To create these stepped control changes, select the Pencil tool and simply draw across the modulation track lane accordingly.
The next step is to open the Transform Editor using the menu option Window>Transform. The Transform window is a text-based editor, which is useful as a means of creating random controller movements (otherwise, you’ll simply have to adjust the nodes one by one). From the dropdown Presets menu, pick the Create Initialized User Set, which resets all the fields to a default starting point. Don’t worry about the selection criteria (we’ll leave this set to All in order to pick up all the information in your region), but do change the Operations for Data Byte 2 to Random, setting a range of 0-127.
To apply the transformation, press the Select And Operate button in the bottom right-hand corner of the Transform window. Listen back to the modulation; if you don’t like the pattern, consider replying the transformation. If you’ve got elements such as Hyper Draw still active, you should also be able to see the transformations you’ve created. It’s also worth experimenting with the Automation Curve tool to further edit and refine the Hyper Draw data, dragging the curve to create new forms of modulation movement, much like different shapes of LFO.
Having neglected controller data for some years now, it’s interesting to see how some of the more expressive possibilities built-in to today’s software instruments has revitalised my personal interest in the use of MIDI controller messages in Logic. As Logic was built from the ground up as a MIDI sequencer, it’s reassuring to note the variety of ways in which you can deal with controller information, some of which we’ve addressed here. This also applies to other important areas of the application, such as the Event List and, of course, the Hyper Editor.
As well as exploring Logic’s controller implementation further, it’s also worth looking at the specific attributes of your VIs and how they use controller data — whether it’s the macro controllers system found in many of Logic’s own software synths or the wealth of controller features often found in other virtual instruments.