Setting up... NyrvSystems AGENT MIDI LEARN and MIDI MAP System an example with the Behringer Control Rotary (BCR2000) and Cubase 7.5 Written by: Roland Löhlbach ( www.studio-compyfox.de ) for AGENT Version 1.0 // revision 21-04-2015 (initial 13-04-2015) INTRODUCTION This document will focus on setting up AGENT on the CONFIG page with MIDI LEARN and giving a short insight on the MIDI MAP sub menu in the preferences. This document is no substitute for the regular NyrvSystems AGENT manual, but will act like a supplementary document. As of this moment AGENT v1.0 can control up to 48 parameters per PAGE, in a grid of 6x8 for either the CHANNEL page or the RACK page. The parameters are set up on the CONFIG interface. You can use any control device that offers either rotary encoders (might be limited to multi-switches within AGENT, see Manual on controller behavior ) and/or switches. In this particular example, we will be focusing on using the Behringer Control Rotary (BCR2000 in short) MIDI controller connected to, and communicating with Cubase 7.5. You can of course use any controller and host to your liking. The principles are the same, but you need a different type of setup of course. Please consult your host manual in this case.
THE MIDI CONTROLLER The BCR2000 offers 32 presets to store your settings, and comes with 32 endless rotary controllers, 16+4 buttons and two foot switch ports. The top rotary row can be switched through with an Encoder Group system, offering up to 4 different banks. Furthermore, the top row's rotary knobs offer a push-action that can double as buttons. So in theory this device offers 7x8 rotary knobs, 6x8+4 buttons and two Foot Switches which may be setup to control anything to your liking. In order to control AGENT in its current form (v1.0), we only need 6 rows of rotaries, and 2 rows of buttons to pretty much create any possible custom GUI on the CONFIG panel. This will offer a lot of flexibility in terms of custom setups. In order to properly use the BCR2000, we need two presets on the device that are adjacent to each other. Both presets will use the same rotary encoders and buttons, but with different MIDI CC# (Continuous Control numbers) sending on MIDI Channel 1 the only channel that AGENT is receiving data on (as of this moment). Though an update is in the making, offering listening to more MIDI channels, which makes preset creation even simpler and more versatile. This in turn will also make it possible to control AGENT in an even deeper manner. The general idea behind this setup, is to have one preset per page (Channel/Rack). But before we can use AGENT; we need to set up the BCR2000 properly first. You can either do that manually directly at the BCR2000 (please consult the Behringer Control manual in this case), or you can use the provided MIDI SYSEX files to prepare your MIDI controller for AGENT v1.0. Keep in mind though, you need two free preset slots for this. The best way to modify your BCR2000 is with the donation ware BC Manager by Mountain Utilities. Just be sure to donate a couple of bucks to the developer to keep the development going. You can find the software through this page: www.mountainutilities.eu In terms of how to use the BC Manager, please consult the manual for this software. But for those that want to get started quickly, a simple step-by-step tutorial. Be warned, you can overwrite your current settings with this. So be aware of what you're doing, and read the manual to the BC Manager before you will apply anything. Neither NyrvSystems nor I will offer any warranty to your device. Just to be sure, create a backup (again, please consult the BC Manager manual in terms of how to do that). Communicating with the BCR2000: 1) turn on your BCR2000 2) start the BC Manager software, it will test if there is a Behringer Control device connected 3) Go to View B-Controls (opens a new pop-up window) 4) Now go to File receive all data (if there is an error message, just do the step again) 5) once you clicked through all loading screens, you should be back to the main window 6) Go to View Presets 7) You should now have a listing of all your presets on this device. Look for a spot where you can have two adjacent presets and follow the next steps carefully
Illustration 01: BC Manager We're now loading the SYSEX data into the BCR2000. The next steps are as following: 1) Go to the B-Controls Window 2) Go to File Import 3) Load the first SYSEX file, called BCR NyrvSystems AGENT Split CH1a.syx 4) The file should now be placed on Preset 0 on the BCR2000 Presets window 5) Right Mouse Click on that Preset, and then move it to a free preset slot (on my device, I used Slot 16, the screenshot shows slot 10) 6) Repeat steps 1 to 4 with the next file, called BCR NyrvSystems AGENT Split CH1b.syx 7) Move this preset to the next higher adjacent slot (on the screenshot, that would be slot 11) 8) You should now have two presets loaded into the temporary presets manager
9) Go back to the B-Controls Window 10) Go to MIDI Send modified Data 11) Confirm the warning with Yes Your BCR2000 is now set up and ready to control AGENT v1.0 In order to fully control AGENT, you now only need to switch between these two presets, while mirroring the positions of the knobs and buttons on the hardware, as shown on the software GUI. Simply close the BC Manager software. You don't need to restart your BCR, but maybe jump though the presets to reinitialize your settings. The SYSEX presets won't vanish if you turn off your device. If you're hesitant on using third-party software, here are the settings for manual configuration: Illustration 03a: Preset 1 Illustration 03b: Preset 2
SETTING UP CUBASE (from Cubase 5 and up) Setting up Steinberg Cubase is really simple. The BCR2000 is a normal MIDI device. But chances are, that the remote controller settings steal/block parameters. We need to check that first. 1) Go to Devices Control Devices 2) Check the Remote Control devices 3) Both Track-Quick Controls and VST Quick Controls should not listen to the BCR2000 if you want to use it as full Generic MIDI controller (read: with all available parameters) 4) If these two Remote Control devices do that, turn off the MIDI input. 5) Click on OK at the bottom right of the setup window. If asked to confirm the changes, please do so Illustration 04: Cubase 7.x Devices Manager (Remote Controls) Now, Cubase is ready to be set up to control AGENT. Cubase is a bit inflexible in terms of MIDI control however. In order to properly control one instance of AGENT, you need to create one MIDI track with proper routing that connects both the MIDI Input (in our case, the BCR2000) with the plugin instance of AGENT we want to control (which will be the MIDI Output of this track). Please take note of this screenshot: Illustration 05: Cubase Arranger and Inspector
The first Track is a MIDI track, the second one is an Audio Track Please set up Cubase so that the MIDI Track is listening to the BCR2000 on MIDI In, and connected to the AGENT instance you want to control on MIDI Out. If you're lost on setting up the input/output routing per channel, please consult the Cubase Manual. If you don't want the MIDI track selected at all times during controlling, simply press the small speaker button. It will turn orange and switch on Monitoring. Illustration 06: Monitor Mode Now you can control your connected AGENT device to your heart's content. In order to control a different AGENT device, you need to change the MIDI routing again. My tip is to keep the AGENT MIDI control track at the top of your project for easy access.
AGENT'S MIDI MAP AND MIDI LEARN To get a full grasp of what AGENT is capable of, please consult the official manual. We're now mainly working on the CONFIG panel and occasionally also on the PREFERENCES MIDI MAP panel to see the connections of the used parameters. Which also offers the ability to make a backup copy of your GLOBAL PRESET, in case something goes wrong. But let's focus on the CONFIG Panel. Let us assume we created a custom GUI for the CHANNEL view, consisting of: 1x8 rotaries, 2x8 buttons, 3x8 rotaries. In this example, I created a quick GUI for Tokyo Dawn Labs' SlickEQ GE Illustration 07: AGENT Config Panel, Channel view Let us also assume that we created a custom GUI for the RACK view, consisting of only the AGENT parameters for the Input Gain, Output Gain, Panning, and both the Channel/Rack Mix and Output Gain values. This view consists of: 1x8 rotaries and 4x8 rotaries, no buttons. Illustration 08: AGENT Config Panel, Effects Rack view
How to control the parameters with a MIDI controller? Configuration is easy if you want to link one parameter with your MIDI Control Device, just right mouse-click on it, then select MIDI Learn, turn the desired knob or press the button you want to assign on your hardware controller done. You realized that you messed up the MIDI assignment, simply right mouse-click again and select remove MIDI assignment. That is all there is to it. Illustration 09a: MIDI Learn Illustration 09b: Remove MIDI assignment Now, how can we access 6 rows of rotary encoders if the BCR2000 only has 4 physical rows of rotary knobs? Simple, by switching through the Encoder Groups on the device. (top right buttons on the controller, please consult the manual of the BCR2000) The layout is like this:
Now simply mirror the controls from what is on your screen (AGENT GUI) with your hardware device (BCR2000). It can't get any simpler. But how can I control the CHANNEL and the RACK page individually? This is where the two presets come in. In the example above, I placed the presets into the BCR2000 on Preset Slot 16 and 17 (this is where they are on my device, they might be somewhere else on yours). To get access to the CHANNEL or the RACK page, I only need to switch between them. Preset 16 controls the CHANNEL page, Preset 17 controls the RACK page. You can even switch the order of the CHANNEL and RACK routing on the ROUTE window, but the pages remain the same. No routing will be messed up.
How to save this setup? There are two ways of saving your presets and settings. As of AGENT v1.0, I highly recommend to always save a Global Preset, as this will save both the CHANNEL and RACK page, while not discarding any settings on preset reload. This is also as safety mechanism if your host doesn't want to properly recall your AGENT setup. (it can happen) I still recommend to do a safety backup through the MIDI MAP system in the preferences however. In order to do that, press the monkey wrench on the main GUI and the preferences window is popping up. Now go to the second icon, looking like a moon with dots (which actually represents an old DIN5 MIDI plug). You're now on the MIDI MAP view. Illustration 11: AGENT Preferences Buttons In this view you can see what parameter is actually connected to which MIDI CC#. If you remove any control on either of the CONFIG pages, the grid field will remain connected. But instead of showing the controller name, it shows the grid field name. In order to save the MIDI Map (if problems occur, or if you want to reuse the MIDI Map at a later state), just click on the disk symbol and then select Save Current MIDI Map as New Preset. Illustration 12: MIDI Map In theory, should you decide that you will use one unified layout for both the CHANNEL and RACK page, you can even select Set selected Preset as Default. This only makes sense however, if you created a global test preset, where you designed a rotary and button mockup, set your MIDI learning, and then removed all buttons and knobs again so that only the grid remains. This way you don't need to re-learn your parameters.
But the negative side effect is, that you can't be flexible in terms of the GUI for either the CHANNEL or the RACK. If you love limitations, use this feature. Another thing you can do is flush your MIDI Map. If you realized that you set too many wrong parameters, but don't want to check every grid field. Just click on the disk icon again, and then select Clear current MIDI Map. Keep in mind, all your learned MIDI settings will be gone! Lastly, there is the Preset Manager, where you can check your presets and add some more information if needed. Though please consult the official AGENT Manual to fully understand this feature. And that's it. We now set up AGENT to be controlled with a MIDI controller. Thanks for reading SUPPLEMENTARY: A note on the so-called full duplex control : AGENT v1.0 is not laid out to also send MIDI CC messages at present in order to have a full duplex (up and down the data pipe) communication between any hardware controller and the AGENT software. Once that is implemented, Cubase actually needs TWO MIDI tracks in order to execute a full duplex communication, as General MIDI remote controllers are not covered in the hosts' device manager (Remote Controls). Only Generic Remote - which is aimed to be a Generic Remote Controller Device for VST/VSTi Plugins that don't respond to MIDI CC messages. It's also a pain to program (it is possible however a pure MIDI controller is easier and faster to implement). After the implementation into AGENT; the full duplex communication goes like this: MIDI Track 01: Input BCR2000, Output desired AGENT device MIDI Track 02: Input currently connected AGENT device, Output BCR2000 Without a return communication, it is still possible to control AGENT. It's just that the behavior might be a bit jumpy. If you're using the BCR2000 as (Cubase) Generic Remote in parallel, you need to create a preset where you can turn off the Remote. Meaning, no value is forwarded to anything. Then you can use the BCR as mere MIDI controller.