CS Control
Control AAX •and• Audio Suite(!) plug-ins with any standard continuous / relative MIDI controller. 14 day free trial It works by converting MIDI CC increment/decrement messages to mouse scroll wheel events. Knob response can be changed in real time by holding keyboard modifiers and plugin mappings can be dynamically displayed as an overlay on the plugin interface in a separate window.
Purchasing:
CS Control is free for 14 days after which it can purchased for 79.00 (US)
(Check the SoundFlow Users group on FaceBook to see if there are any current promotions or sales!)
There are video links below - If a MIDI controller is being used then watch "CS Control - SF Settings - IMPORTANT!!!"
It explains a crucial setting that has to be set in order for the app to function properly (not needed if a StreamDeck+ is the only controller being used with CS Control.
StreamDeck+ Integration:
Using only the SD+
If the StreamDeck+ is going to be the primary controller for CS Control then select "Use StreamDeck+" when the "Pick Controller" dialog window appears on the first run of CS Control. The SD+ will automatically be configured. Use the "CS Control SD+ Deck" and start mapping!
A MIDI controller can be added later using the Configure panel.
Using the SD+ with a MIDI controller
If the SD + is going to be used in conjunction with a MIDI controller the decision must be made as to which controller (SD+ or MIDI) will be used for Buttons 1, 2, and 3 in the configure panel. These buttons are used for the global controls for bank switching, bypassing, previewing and rendering. It's suggested that the MIDI controller is used for the the first set of knobs and buttons and the SD+ buttons and knobs be used as a secondary controller.
For example: If the MIDI controller has 16 knobs and buttons, use them for Knob 1-16 and Button 1-16 in the configure panel while using the SD+ knobs for Knob 17-20 and the buttons for Button 17-20.
The SD+ send MIDI messages exclusively to CS Control. The knobs are preconfigured for CC# 124-127 and the buttons for CC# 120-123.
If these assignments conflict with the CC numbers on the MIDI controller you can make new SD+ CC#s by creating new presets with the "SD+ Knobs" command in the CS Control package. A new, editable copy of the CS Control SD+ Deck must be made and the newly created presets should be dragged onto the copy of the deck.
MIDI Controller Requirements:
CS Control requires endless rotary controls in order to work. Endless controllers can change the value of a parameter relative to its current position without the need of passing through, matching its current value, or causing a parameter to jump to the current position of the physical knob being turned. Standard MIDI knobs (0-127) limit the flexibility of what can be done with a plugin controller - the range of control is limited to 128 steps and doesn't allow for programming knob response. Endless/incremental knobs overcome this limitation because they're agnostic to a parameter's value - it just tells a parameter to increase or decrease it value or position by its smallest increment.
MIDI knobs should send increment / decrement or relative data (usually a continuous value above 63 when turned right or below 64 when turned left).
On a MIDI Fighter Twister this setting is "Encoder MIDI Type - ENC 3FH/41H" on other controllers this setting may be referred to as "relative".
At the moment, standard controllers that send values between 1 and 128 is not supported but may be in future updates.
All MIDI / CC buttons should send values of 0 and 128 and be of the same switch type.
There are two switch types:
Toggle: On the first press and release a value of 0 is sent. On the second press and release a value of 127 is sent
On / Off: when pressed and release two values are sent: 127 on the press and 0 on the release
The switch type is automatically detected by CS Control and will be displayed when configuring the controller.
If any button is not working as expected, confirm that all your controller CC buttons are the same type. If they are all the same type then try configuring one of the buttons again. (CS Control uses the last button type that was configured for all button types).
Initial Setup (For MIDI Controllers Only):
Set the **** CS CONTROL MIDI INPUT **** script to MIDI Trigger using the same channel as your controller (all knobs and buttons must be on the same MIDI Channel). Multiple MIDI controllers set to the same MIDI channel can be used as long as all knobs and buttons are set to unique CC#s. There is a limit of 64 knobs and 64 buttons.
**!!!!! *****IMPORTANT *****!!!!! - **Set "When these apps are focused" to "Pro Tools" and "SoundFlow" (required). The app will not work without this crucial setting.
This step is not required if a StreamDeck+ is the only controller being used.
Additionally, you need to give SoundFlow permission to record you computer's screen. This is needed for the map display.
To give SF permission to record your screen, open System Preferences > Security and Privacy > Screen Recording and enable / check SoundFlow as shown below:
When the Map Display is active CS Control takes a screenshot of the active plugin window and stores it locally on your drive.
Only one screenshot is ever stored at a time - when a new plugin is opened CS Control overwrites the previous screenshot.
Controller assignments:
On the first run you will be instructed to set up your controller using the configuration tab. Double - click the table entries to assign controllers. Use the top two text fields to enter the number of physical knobs and buttons on your controller. Assignments can be auto detected by turning/pressing your MIDI controller or by entering the CC number manually. Enabling the"Cascade CC#s" button will automatically assign successive Knob or Button assignment with incremental values (much like holding shift-opt-cmd when assigning track outputs in Pro Tools).
Each knob and button must have a unique CC number assigned to it - you will not be able to save your configuration otherwise.
You can import and export configurations using the bottom two buttons.
All changes in the configuration window will not take effect until they are saved using the Save button (this includes importing configurations). Should you navigate away from the configure panel before saving, a dialog will appear to ask what you would like to do with the changes you have made.Closing the surface will quit the app without saving.
Clicking "Save" will save your controller configuration after it has been validated. If there are any issues with the configuration then you will be asked to make any changes that are needed.
"Revert" will revert to the last saved configuration.
MIDI Controller Configuration:
In the configuration tab, the two tables (Knobs / Buttons) represent the physical buttons and knobs on your controller.
CS Control does not map CC controller numbers to plugin parameters but instead references your physical knob or button to a parameter. The reason for this is simple - if you change the CC assignment of a knob or button you won't have to re-map all of your plugins. You merely change the CC# in the configure tab and all of your plugin maps will follow.
Controlling Plugins:
When MIDI knobs and buttons are active CS Control will automatically select the last selected / focused plugin or Audio Suite window.
It's important to remember that PT must be focused application for CS Control to do its thing. When either the main or map display surfaces are moved Pro Tools will need to be re-focused by clicking on on of its windows. This is usually the cause when CS Control seems unresponsive.
The CS Control window should positioned so that it doesn't block or overlap plugin windows. When not mapping plugins ,it's best to minimize the CS Control surface and place it at the top of the Pro Tools edit window. A good spot is somewhere above the counter:
QWERTY Keyboard Modifiers
CS Control makes use of keyboard modifier keys when in use:
Modifiers + Knobs:
The response of a knob can be changed on the fly by holding a QWERTY keyboard modifier
**Shift + Coarse: **The knob will behave as if it was set with a coarse response
Ctrl + Fine: The knob will behave as if it were set with a fine response
**Ctrl + shift: **a slightly coarser version of fine
opt + turning knob: The parameter being controlled will be set to it's default value (as if it were option-clicked). For UAD plugins this will behave as if you cmd-clicked on a knob which reverts the knob to it's last saved value.
Modifiers + Buttons:
**Shift + Button 1 : **Select previous bank
**Shift + Button 2: **Select next bank
Global Controls:
(The following will work even if the focused AAX / Audio Suite plugin has not been mapped)
**CMD + Button 1 : **This will bypass either AAX / Audio Suite plug-ins
**CMD + Button 2: **(Audio Suite only) this will trigger the audition button
**CMD + Button 3: **(Audio Suite only)This will trigger the Render button
** **Plug-in Cycling:
**CTRL + Button 1: **Select previous plug-in on track (skips inactive plugins)
**CTRL + Button 2: **Select next plug-in on track (skips inactive plugins)
**CTRL + OPT + Button 1: **Select previous Audio Suite plug-in
**CTRL + OPT + Button 2: **Select next Audio Suite plug-in
The CS Plugin Control surface:
The buttons are pretty self explanatory. The "Plugin Control:ON/OFF" button will bypass CS Plugin Control.
The plugin control surface can be minimized by either triggering it again or clicking the minimize button. Once minimized it can be easily placed at the top of the screen without blocking the PT edit window toolbars. When minimized the best way to move the surface is by dragging the lower left hand corner.
The top of the minimized surface will display "CS Control" at the top. Clicking the text will bypass the app and highlight the text in red.
Mapping Plugins:
To map a plugin, click the mapping button so that mapping is on (red), hover the mouse cursor over the plugin parameter you wish to control, then turning the MDI control you wish to be assigned to it. A SoundFlow search menu will appear and will either show the parameter name that is about to be assigned or a list of all of the automate-able plugin parameter names available. If presented with a list, you can filter /search the list by just typing a few characters of the parameter name. If the parameter name is not available you can name the parameter manually by selecting "[USER PARAMETER NAME]" at the bottom of the list, This can also be selected by typing "user" which will filter the list.
The top of the parameter search menu will display what knob or button is about to be assigned:
When mapping a plugin for the first time, the bank modifying buttons ("Rename Bank", "Delete Bank", etc) will not appear until after the first control / parameter is mapped.
It's recommended to map a single knob or slider, turn off mapping mode, and check how the knob responds. Some plugins are more sensitive to CS Control than others . If the response needs to be changed, remap the knob and choose another response type. Once a satisfactory response is found that response will become the default selection in the response menu. Subsequent control mappings will then be just a matter of turning a knob while the cursor is hovering above the desired plugin element and hitting enter twice.
"Mapping always on when surface is opened & enabled" will turn mapping on when the surface is opened and not minimized. This option should be useful for mapping a bunch of plugins in one sitting. It's also useful after mapping the first parameter - to check the controller response re-trigger the surface (which will minimize it and turn mapping off) then re-trigger the surface again to continue mapping.
Controller Responses:
There are seven controller responses that are used to set a plugin parameter's response to be controlled by CS Control.
The first 5 (Fine, Medium, Slower Normal, Coarse (WAVES) are ordered from least responsive to most responsive. "•••NORMAL•••" works with most plugins.
"Stepped (Slower Response)" is recommended for parameters that have stepped controls. These would include API or Neve EQ plug-ins that have stepped parameters for gain and frequency select
Knob as Button Trigger (RX DropDown menu Select) works well with parameters that have multiple buttons for the same parameter. This would include the ratio for 1176 style plugins or the filter type for the AVID EQ3 1-Band EQ:
Additionally this response can be used to control dropdown menus inside of most RX plugins (and others) to select from menus with in a plugin (this does not include the PT preset dropdown menu):
Experiment with all response settings to see what works best with the parameter you are trying to control.
App Focus:
By default, CS Control switches to the SoundFlow application while controlling plugins.
Pro Tools and EuControl have an Assignable Knob feature which allows control of PT parameters with a knob on a EuCon surface. This feature tracks the position of the mouse cursor which interferes with CS Control. When the application focus is set to SoundFlow, Pro Tools does not track the cursor position.
Some plugins cannot be controlled with scroll wheel actions unless Pro Tools is the focused application. To set PT as the focused application for a plugin, set the AppFocus setting to "PT". This only applies to the current plugin and is stored with the plugin map.
Map Display:
The map display will overlay button and knob assignments over a screenshot of the plugin UI.
(If the map display only shows a portion of your desktop image be sure to check that SF has permission to record your screen as described above)
Changing banks will automatically update the map display to reflect the assignments of the newly selected bank.
If the focused window in Pro Tools is not an AAX or AS plug in then the map will auto-minimize.
Like the main controller surface, the minimized map display can easily placed at the top of the PT edit window without obscuring the toolbars.
Clicking a button or knob on the map display will momentarily hide it. This is useful if two or more controllers are controlling the same parameter or if one controller display is obscuring another.
General Notes:
The app can be started by turning a knob on your controller - no need to start it manually or via a trigger.
- When a MIDI Control is moved/pressed CS Control will control the most recently focused plugin. If the app seems unresponsive be sure that a plugin window is focused. If still unresponsive, close all plugin windows, focus the edit window, turn a knob, then open the plugin again. If still unresponsive , restart SoundFlow. If this is a persistent issue please send a trouble report via the "Help / Issue" button in the SF menu bar icon.
Arrange the map display and control surfaces in such a way that they won't obscure the plugin being controlled. While controlling a plugin SoundFlow and any of its open surfaces will become the focused application. If any surface visibly blocks the plugin parameter being controlled then that control cannot be adjusted.
If a plugin is offscreen it will be moved onscreen when being controlled or when the Map Display is updated.
When controlling a plugin the mouse cursor will move to the parameter being controlled. The cursor will return to its original position 300ms after the last received MIDI input.
AVID Control / EuControl / Eucon Surface users
In order for Plugin Control to respond properly, this app switches to the SoundFlow application while controlling plug-ins. If you have SoundFlow listed in the applications tab in EuControl all Eucon control surfaces will switch focus to SoundFlow while plugins are being controlled. This causes the AVID Control App, and Eucon surfaces to change their display and switch back to Pro Tools when MIDI controls are no longer being used. To stop this somewhat distracting behavior, simply remove SoundFlow from EuControls' applications list (located in the EuControl app > Applications tab). This will not affect the ability to trigger SoundFlow commands via EuControl soft keys.
LIMITATIONS:
CS Control cannot control plugins that have dynamic elements. A good example of this would be FabFilter Pro Q. Its knobs are dynamically displayed and are not static. As such, assigning a X/Y coordinate is not possible (You can map the static elements however). An upcoming CS Control update will include a generic knob that can be hovered over a plugin element so that it can be adjusted with your MIDI controller.
Plug-ins such as the Scheps Omni Channel can be mapped: it's modules can be rearranged. For the time being new banks should be used to map out different module arrangements. A future update will accommodate different layouts for a plugin.
Additionally, plugins that have interfaces whose window aspect ratios can change are not supported at this time. You can map these plugins as long as you don't change their aspect ratios after they have been mapped. (Again, a future version will support plugins of this type)
Videos:
CS Control - SF Settings - IMPORTANT!!!
Compatible MIDI Controllers:
Configure the CS Control App:
Configure Your Controller:
Mapping Plugins:
Controlling Plugins and Global Commands:
Main Surface:
Package Commands:
How do I get CS Control?
CS Control is a package built on the SoundFlow platform. To get it, please follow these steps:
Sign up as a new SoundFlow user if you don't already have an account.
Install the SoundFlow app on your Mac.
Open up the SoundFlow app, click the "Store" tab
Locate the 'CS Control' package by searching in the search field.
Click the Install button.