ACT (Active Controller Technology) is Sonar's way of mapping its controls and parameters — mixer faders, pan pots, effect settings, virtual instrument controls and so on — to a particular hardware controller. Whatever has the focus is what is controlled at that moment: for example, if the Console View has the focus, the controller affects the mixer controls.
ACT doesn't really offer any startling new technology. Sonar has always been able to access any plug-in parameter, and you can think of the ability to show effects controllers in the Console View as a mini-precursor to ACT, which is basically a layer on top of the existing framework. The biggest improvement is ACT's context sensitivity, which instantly maps physical knobs to software parameters that belong to the application having the focus.
So what makes a plug-in show up under ACT? The deciding factor is simply whether or not the plug-in exposes automatable parameters. Every VST plug-in I have that offers automation shows up under ACT; Direct X plug-ins have to expose true Direct X 8 automation parameters (as opposed to MIDI control parameters).
When you give focus to a plug-in, Sonar looks at the ACT data to see if there's a specific mapping of your particular surface to that particular plug-in. If there is no learned mapping, Sonar looks at a second set of data that has 'generic' mapping (including preferred parameters and preferred control type — rotary, slider or switch) for various plug-ins. If the plug-in has an entry in this file, Sonar does its best to match the parameters to your control surface.
If you've already used ACT's Learn function to set up your own mappings, not only does Sonar know that, but it modifies the generic data file to take the learned preferences into account. This is really considerate, because if you add a new control surface at some point, the generic mapping will try to map the parameters to the control types you've chosen.
If there is no generic data or learned data available, Sonar tries to match particular parameters to appropriate control types. For example, even a plug-in that has no ACT data will have its Enable parameter assigned to a switch. I was pleasantly surprised that the parameters of just about anything I called up showed in the ACT MIDI Controller plug-in, including PSP's Vintage Warmer, Line 6's Gearbox Gold plug-ins, Amplitube 2 and Waves GTR.
To use ACT really effectively, I feel you need to customise it for your own needs. I don't think the main reason ACT exists is to assign every single parameter to a control, even though it pretty much can; it seems to me that the best use of the ACT facility would be to set up a consistent set of controls for the options you use the most. For example, with almost all synths I'll want to tweak filter cutoff and envelope attack, decay, and release times, so I've used ACT's Learn function to assign these to the same knobs for all the soft synths I use.
Sharing ACT Mappings
If you come up with some really great mapping for a plug-in, for example, that you want to share with someone else, there's no way to simply export that mapping and import it elsewhere. However, there are a couple of options that come close. At the lower right of the Controllers/Surfaces dialogue box, there's an 'Import ACT Data' button. Clicking on this and navigating to an XML ACT data file will merge it into your main ACT database, so if Cakewalk develop mappings in the future, you'll be able to import them easily.
You can also share your entire genericpluginparams.xml file with another user. (It's found under Documents and Settings / [User] / Application Data / Cakewalk / ACT Data.) If you know how to edit XML, you could also edit this file down to create a smaller set of plug-ins to export.
In the following examples of how to use ACT, we'll assume a fairly common, inexpensive controller: the Behringer BCF2000 with motorised faders. However, the same basic principles apply to using any control surface with ACT.
I first installed the various BCF2000 drivers, which showed up under Options / MIDI Devices as 'USB Audio Device' for MIDI In and MIDI Out. Once your controller shows up as a MIDI device, you need to designate it as an ACT MIDI controller surface. This involves going to Options / Controllers / Surfaces, then clicking on the Add New Controller/Surface button (it looks like a little gold star). A dialogue box that lets you choose the desired control surface appears. Select 'ACT MIDI Controller', not the name of your particular hardware controller. You can also choose the device's MIDI In and Out port in this dialogue box: in this case, they're 'USB Audio Device' (see screenshot below).
Now your control surface is connected. ACT has templates for several commercially available control surfaces (if not, you can use a generic template), but it's important to use the controller preset around which ACT based its template. Fortunately, Sonar makes the process pretty painless.
1. Call up the ACT MIDI Controller window by going Tools / ACT MIDI Controller.
2. A dialogue box appears. From the Presets drop-down menu, pick the controller you want to use. There are often notes next to the controller name, such as the preset ACT wants to see.
3. The BCF2000 preset has a 'custom' option, which is what I chose. 'Custom' means that, instead of using the standard BCF2000 preset, Sonar can send MIDI SysEx data to the BCF2000 and create a preset that's ideal for ACT.
4. To utilise a custom preset, click on the Options tab. The comments field shows notes about the BCF2000. Then click on the 'Send' button under 'MIDI Initialisation Messages' and Sonar sends SysEx to the BCF2000. I sent it to preset nine, as recommended by the comments, then saved it on the BCF2000.
5. Other controllers may have other instructions in the comments field. For example, with the Korg Kontrol 49, sending a MIDI initialisation command switches the Kontrol 49 to preset 12, which ACT uses in this particular template.
When you choose a controller, Sonar makes certain assumptions about it. For the BCF2000, it assumes (correctly, I might add!) eight rotary controls, eight sliders, eight buttons and a Shift key, so you can get eight more options by using Shift in conjunction with a button. This is a pretty typical configuration. As you'll probably want more parameters available there are multiple banks for the various controls: for example, four banks for the sliders (see screenshot overleaf).
You'll also note a choice of Match or Jump under the Options tab. With Match, the hardware controller needs to match the existing programmed value before it will change. In other words, suppose your fader in Sonar is set to 0.0, and the fader on your controller is at 20. If you move the fader there will be no change in Sonar's fader until the hardware controller hits 0.0, at which point the two values 'match', so now when you move the fader Sonar will follow along. With Jump selected, as soon as you move the fader Sonar jumps immediately to that value (in this example, from 0.0 to 20). If you move controls and the ACT parameters don't change, ACT may be in Match mode and the controls haven't matched their associated values yet.
Also note that you can enable this option separately for the bank of eight rotary controls and the bank of eight sliders. This is particularly appropriate for the BCF2000, as the rotary controls are 'endless encoders' and are suitable for controlling synth parameters. Thus, if these are set to Match and you want to do something like tweak filter cutoff frequency, you won't experience any jumps from the existing value to the new value; there will just be a smooth transition.
The Options tab offers some other important options. 'ACT follows context' means that even if a plug-in is in front, clicking on a track will allow ACT to control track parameters. I'd recommend keeping this ticked. Also note the 'Exclude the bank from ACT' tick-boxes. Ticking one of these means that a particular bank will not follow the focus. For example, if you want to use the rotaries to control plug-in parameters but reserve the sliders for Console View mixing, you'd exclude the sliders bank that controls volume from ACT.
We'll talk about controlling Track View parameters first, before we get into plug-ins.
There's a certain amount of intelligence built into the way Sonar handles this, although it can be a little confusing at first when decisions are made automatically for you. For example, the first time I fired up the ACT MIDI Controller plug-in and checked out the Controllers tab, the pan and volume parameters were available only for four tracks, even though there were eight slots. Eventually it dawned on me that it was because the project had only four tracks. As soon as I inserted more tracks, the parameters showed up until all eight slots were filled.
If there are more than eight tracks, Sonar's WAI (Where Am I?) feature comes into play. This places a coloured band alongside the tracks that are being controlled (to the left of tracks in the Track View and at the bottom of channel strips in the Console View), which, in most cases, is a contiguous group of eight tracks; see the screenshot opposite. (Note that in the Controllers/Surfaces dialogue box, under Options, you can choose whether the WAI display shows up in the Track View, Console View, neither, or both, by ticking the appropriate boxes.)
If you want to control another group of tracks, just drag the WAI strip. You could drag it down so that the controller affects tracks 7-14, 9-16 or any other contiguous combination of eight tracks. However, you're not limited to eight tracks: if you connect two eight-channel controllers, one could control channels 1-8 and the second 9-16.
Another useful feature is that you can shift the controller among fader groups: Track (which we've already looked at), Bus (where the faders and pans affect busses), and Main (as expected, controllers affect the main outs). In the ACT MIDI Controller plug-in, on the Options page, there's a section called Control Group, where you can select from these. In the BCF2000 they're mapped to button B6, so you can step through the different groups just by clicking on this button.
To test out ACT with effects, I called up the Project 5 Tempo Delay plug-in, because I use it a lot. Once it had the focus, I could move knobs on the BCF2000 and the panel knobs moved too.
But what if you want different control assignments? This happened with Compressor/Gate in Project 5, where the assignments are a combination of rotaries and sliders that I didn't find particularly intuitive. I wanted to map all the parameters across the first eight rotaries, and map the rightmost slider to master level (I'm used to master levels being on the right). This kind of task involves using ACT's Learn function to alter the standard generic data.
1. Click on the ACT button toward the upper right of the effect or the ACT plug-in. It doesn't matter which, as they're duplicates.
2. Move the on-screen controls for the parameters you want to control, in the order you want to assign them to hardware controllers. For example, with the Compressor/Gate I moved attack, decay, the three compressor controls, the three gate controls, and level.
3. Move the hardware controllers you want to affect these parameters, again in order (ie. rotary knobs 1-8 and the master slider, in that order).
4. After you've chosen your parameters to assign, and your controllers, you disable ACT Learn by clicking on the ACT button again.
5. A dialogue box comes up. In the case of this example, it said 'Nine parameters and eight controls were touched. Do you want to keep these assignments?'
6. If what came up is correct, click on 'Yes'. Otherwise, start again.
As the sliders weren't doing anything, I mapped them too, so that I could reach for a fader or slider and get the same results. (See the screenshot at the start of this article.)
I was surprised at how quickly I adapted to particular button presses and slider assignments. For example, with the BFC2000, button three activates Play and button two activates Stop (although, for some reason, button one refuses to work). At first those mappings didn't seem intuitive, but within an hour I found myself reaching for those buttons more and more, compared to the QWERTY keyboard or mouse. Ditto with signal-processor assignments and so on.
One warning: I did find that on occasion, ACT seemed to forget some of the assignments I'd made for individual controls. It's easy to remind it: either use the ACT Learn function described above or, for a quick touch-up, click on the name of the parameter that's not responding (on the ACT MIDI Controller plug-in Controllers page), and it will say 'MIDI Learn'. Adjust the control and you're back in business!