AUTOMATION & RECORDING

Linking & Using External Hardware Controllers

Most controls on the FL Studio interface (knobs/sliders, etc.) can be linked to internal or external controllers. After linking, controller movements can be recorded in real-time (make sure the recording filter is set to accept 'Automation'). Recorded movements are then replayed with the project. There are two classes of links:

  • Project-level Links - These are per-session and saved per-project. They have the highest priority and override Global Links. The advantage of Per-Project links is they continue to work when other parts FL Studio or plugins are focussed. Focusing is the act of clicking on the window/plugin with your mouse.
  • Global Links - These apply across all Projects, unless overridden by a 'Per-Project link'. The advantage of Global Links allow you to control many targets with one controller knob, slider or switch. When you focus the plugin or window, programmed links are automatically re-established.

Related MIDI controller information

Per-Project Links (saved with project)

Per-Project links are active only for the current session/project. They are saved with the project and will re-establish when you open the project again. They override Global links, until the project is closed and another project (without Per-Project Links) is opened. In this way you can save Per-Project Links to project templates so you can have multiple custom controller assignments for specific project applications. Importantly they continue to work when other parts FL Studio or plugins are focussed. Focusing is the act of clicking on the window/plugin with your mouse.

Create FL Studio & Native plugin links:

  1. Right-Click the knob/slider you want to control and select 'Link to Controller'.
  2. Make the link/s - Move the knobs/sliders on your controller you want to link to the target.

Alternatively, to make multiple links at a time:

  1. Initiate the link - Click the Multilink controllers icon (Ctrl+J), it will turn orange.
  2. Tweak the software interface target/s - Move the target control/s on the plugin or FL Studio interface with your mouse. You should see the controls name momentarily appear above the Multilink controllers switch.
  3. Make the link/s - Move the knobs/sliders on your controller you want to link. The links will be made in the same order the software targets were tweaked. The process will auto-close once the number of hardware controls tweaked equals the number of software targets.

Create VST/AU plugin links:

There are two methods; Prefer 'Last tweaked control' unless that does not work then use the 'Browser' method. Not all plugins support 'Last tweaked control'. Both methods create a link.

Last tweaked control:

  1. Initiate the link - Click the Multilink controllers icon (Ctrl+J), it will turn orange.
  2. Tweak the software interface target/s - Move the target control/s on the plugin interface with your mouse. You should see the controls name momentarily appear above the Multilink controllers switch.
    • Optional - To use the Remote control settings to modify the link, Right-Click the Multilink controllers switch and select 'Link to controller', then:
  3. Make the link/s - Move the knobs/sliders on your controller you want to link. The links will be made in the same order the software targets were tweaked. The process will auto-close once the number of hardware controls tweaked equals the number of software targets.

Alternatively, use the Tools > Last tweaked > Link to controller option after tweaking a control.

Browser:

  1. Initiate the link - Click the Multilink controllers icon (Ctrl+J), it will turn orange.
  2. Browser - From the Browser > Current project > Generator / Effects folder, locate the Plugin and click it. This will open the list of automatable parameters. Click the desired target/s. You should see the targets names momentarily appear above the Multilink controllers switch.
  3. Make the link/s - Move the knobs/sliders you want to link to the software targets. The links will be made in the same order the software targets were tweaked. The process will auto-close once the number of hardware controls tweaked equals the number of software targets.

Global Links (remembered permanently)

Global links automatically link to targets in FL Studio or plugin each time a window or plugin is focused (click on the interface window to focus it). Global links apply across all Projects, unless overridden by a 'Project-level link'. Global links allow you to control many targets with the same controller knob, slider or switch as programmed links are automatically re-established as interface elements are focused. Some notes:

  • Remote control settings - Supports mapping formulas & smoothing.
  • Per-Project Links have higher priority and will replace the Global Links for the current session/project.
  • Controller types - Links made with the multilink function will only work as expected from a controller of the same type. Selecting a new controller may result in unexpected links between the controller, FL Studio & plugins.
  • MIDI channels - Up to 16 separate MIDI controllers can be used simultaneously. To link multiple controllers select unique MIDI channels for each controller prior to initiating the multilink process (don't forget to enable each controller in the MIDI settings). The multilink process remembers both the MIDI CC and MIDI channel that was used to make the link, that's how the controller is identified by FL studio. If you change the MIDI channel the controller is transmitting on then you will lose the Global link to that controller.
  • Deleting or backing-up the links - See the section below 'Delete or backup permanent global links' section below.

Create global fixed-target links:

These links are remembered permanently. They are window and plugin-specific, allowing you to assign the same knobs/sliders on your controller to any number of user interface targets. The focused window or plugin decides the target interface controls. Focusing is the act of clicking on the window with your mouse. Generic override link video tutorial here.

There are two methods; Prefer 'Last tweaked control' unless that does not work then use the 'Browser' method. Not all 3rd party plugins support 'Last tweaked control'.

Last tweaked control:

  1. Initiate the linking process - Select the Multi-link controllers (it will turn orange).
  2. Tweak the software interface targets - Move the target control/s on the plugin interface with your mouse. You should see the controls name momentarily appear above the Multilink controllers switch.
  3. Right-Click the Multi-link controllers switch and select 'Override generic links'.
  4. Tweak the hardware - Move the knobs/sliders you want to link to the software targets. The links will be made in the same order the software targets were tweaked. The process will auto-close once the number of hardware controls tweaked equals the number of software targets.

Browser:

  1. Initiate the linking process - Select the Multi-link controllers (it will turn orange).
  2. From the Browser - Open Browser > Current project > Generator / Effects. Locate the Plugin and click it. This will open the list of automatable parameters. Click any you want to link. You should see the controls name momentarily appear above the Multilink controllers switch.
  3. Right-Click the Multi-link controllers switch and select 'Override generic links'.
  4. Tweak the hardware - Move the knobs/sliders you want to link to the software targets. The links will be made in the same order the software targets were tweaked. The process will auto-close once the number of hardware controls tweaked equals the number of software targets.

Next time the same plugin or window is focused, these links will be automatically re-established.

NOTES: You can repeat this process as many times as required, there is no need to link all your software targets and controllers in one session. To use multiple hardware controllers each controller must be set to a unique MIDI channels prior to initiating the multilink process. FL Studio will use this MIDI channel to identify what controller is linked to what target (don't forget to enable each controller in the MIDI settings).

Create global roving-target links:

These links assign a specific controller knob/slider so it automatically links to the last user interface parameter moved by the mouse. These links are volatile as they continually change focus to the last touched control on the user interface. Volatile links are global; They persist across projects and FL Studio sessions. To set up a volatile link:

  1. Right-Click the Multi-link controllers switch and select 'Override volatile link...'.
  2. Assign a controller - Move the knobs/slider on your controller you want to use.
  3. Use your mouse - All last-tweaked controls will now respond to your controller and the specific control used above.

NOTE: Controller knobs/sliders that have already been linked to specific targets will not respond to volatile linking until the original link is cancelled. Two knobs? By creating a volatile link to one controller knob using the Last tweaked > Override volatile link and then a different controller knob using the Before last tweaked > Override volatile link, you will then have the last two tweaked user interface parameters at your 'volatile' command.

Delete or backup global links

The simplest method of correcting a few links is to reassign them. However, if you want to delete or edit global links, the link data files are stored in the FL Studio user folder:

    • ..\FL Studio\System\Config\Mapping\Generic\Local\BY CONTROLLER\BY TARGET

BY CONTROLLER - you will find sub-directories for each controller used, (generic controller) being the default. If deleting, you have the option of deleting the individual 'BY TARGET.flmapping' files (deleting recommended) OR editing out the links you don't want in a text editor. Each link is bound by the <link> and </link> identifiers.

Remote control settings

There are a number of options on the Remote control settings dialog (below) that can modify the linked relationship.

Note that the Wrapper Menu also has several important functions (Link all parameters and Browse parameters) to make links between plugin parameters and internal/external controllers. The Remote control settings dialog options are as follows:

Link Assignment

  • Link menu - Showing '(none)' above. Use this menu to link several external MIDI controllers to the same internal target. By default, the dialog assumes a new link is to be made.
  • Remove Conflicts - When selected, new links replace any existing links.

MIDI Controller

These controls allow customization of the MIDI link.

  • Port - Select a MIDI port (0 to 255) when more than one controller of the same type is in use.
  • Channel (Chan) - Choose a MIDI channel to link the control to.
  • Controller (Ctrl) - Choose a controller number to link the control to.
  • Auto Detect - Very useful option that will detect and set the MIDI controller automatically - all you need to do is just tweak the desired control on your MIDI controller.
  • Omni - Decides if the link is channel specific. OFF - If a MIDI controller knob is linked to a channel volume, the MIDI knob will control only that specific channel volume. ON - The MIDI controller knob will no longer be tightly bound to a specific channel volume, but will control the volume of any channel selected. For example, if you linked to the volume of a 'kick' channel and then selected the 'clap' channel, the MIDI controller knob will also control the clap channel volume. Aftertouch - Select Omni mode when linking Aftertouch to targets.
  • Mode - Select one of several modes designed to work with MIDI Keyboards (useful for Performance Mode). These include:
    • Hold - Velocity is held as the automation value until the key is released.
    • Latch - Successive key presses latch the automation between 0 and 100% (this replaces Black & White key auto links in earlier versions).
    • Inc - Each key press increments the value.
    • Stay - Velocity is held as the automation value even after the key is released.

Omni and VST Control

Use the Omni mode to set your MIDI controller to control the same target in any selected channel. This section describes this process in more detail for VST plugins and a method for saving controller assignments for future quick recall.

Omni CC Links - If you want to use the Modwheel (CC1, for example) on your controller, so the mod wheel controls the CC1 parameter of any instrument in an active channel and also to save controller assignments for future use -

  1. Create an instance of your desired VST instrument.
  2. Use the Browser to select Current project > Generators > 'Your newly added VSTi will appear here in the list'.
  3. From the control options list, scroll down and Right-Click "MIDI CC#1" to open the pop-up menu. MIDI CC's are usually toward the bottom.
  4. Select the 'Link controller' option, enable Omni on the Remote control settings and move your Modwheel (or use the selector pad to manually select the number 001). You can do this for all 128 CCs or you can selectively choose which CCs to use. These links will stay active until manually disabled (even if every instance of a VST is deleted), see below.

Saving MIDI/CC control assignments - This method creates a project template with the MIDI assignments saved in the project.

  1. Follow the steps above to create your desired MIDI controller assignments to plugin controls.
  2. Delete the plugin/s.
  3. Save the project as your default.
  4. If you start future projects with this template your favorite MIDI controller assignments will be automatically available when you load compatible plugins.

Internal controller

See the section on Internal controllers for more detail. NOTE: This section of the dialog will only be visible if there are internal controller sources in the project.

Mapping formula - Menu

This menu provides some pre-defined mapping relationships between the controller and the target control.

  • Linear (absolute): For use with standard range-limited controllers.
    • Default - The controller changes the target with a 1:1 relationship.
    • Inverted - Increases in the controller value decreases the target controller and vice versa.
    • Log scale - Sensitive in the low range less sensitive in the upper range of the controller.
    • Inverted log scale - Less sensitive in the low range more sensitive in the upper range of the controller.
    • Switch - Once the input value passes the 50% point the output changes from 0% to 100%.
    • Steppy - Stepped output in the face of smooth input.
    • Steppy (cents to semitones) - When linked to a master pitch control the output is incremented in semitones.
    • First half - Output varies from 0% to 50%.
    • Last half - Output varies from 50% to 100%.
  • Incremental (relative): These settings are to be used with 'Endless controllers' (knobs/wheels that have no end-stops). If an endless knob moves the target too slowly try Input*2 or 1/10. Similarly endless knobs with around 200 steps (usually endless knobs are ticky), each step can be set to output increment unit, try 1/50,1/20,1/10 settings.
    • Default increment - The controller changes the target with a 1:1 relationship.
    • Inverted increment - Increases in the controller value decreases the target controller and vice versa.
    • 4x, 2x smaller increment - Output is divided by 4 and 2 respectively.
    • 4x, 2x bigger increment - Output is multiplied by 4 and 2 respectively.
    • 1/50,1/20,1/10 increment - Output is restricted to 2%, 5% and 10% of the input range.

User Defined Formula

Working with Custom formulas:

  • Enter a custom formula - To alter the default 1:1 mapping. For example: 'Input*2' multiplies the controller value by 2. After you enter an expression, press Enter. If you see message "Compiled OK" the formula was successfully compiled and you can press the OK button to apply it to the linked control. If a red text appears below, the formula is wrong (usually syntax error or unsupported variable/function was used). Correct the error and press Enter again.
  • Add custom formulas to the Formula Menu - Edit the Formulas.txt file found in C:\Program Files (x86)\Image-Line\FL Studio [version number]\System\Config\Mapping. The format is the preset name followed by a : character, then the formula. E.g: Up and down smooth:Sin(Input*Pi) will appear as an option in the menu as 'Up and down smooth'.
  • Supported variables, functions and operators - click here.
Example FormulaResult
1-Min(Round(Input*2),1)
ifg(input,0.25)+ifl(input,0.5)-1
ifg(input,0.5)+ifl(input,0.75)-1
Max(Round(Input*2),1)-1
int(Input*9)/8
Input*2-1
1-(Max(Input,0.5)- Min(Input,0.5))*2
1-Cos(Input*Pi)*0.5-0.5
Max(Input,0.25)-Min(Input,0.25)
Max(Input,1)-Min(Input,0.5)
Max(Min(Input,0.75),0.5)
Max(Min(Input+0.25,1),0.5)*2-1
Sin(Input*Pi)
Sin(Pi*0.5-Input*Pi*2)*0.5+0.5
1-Input*0.5-0.5
1-Input*0.5

Smoothing:

This feature allows you to smooth the motion produced by the remote control hardware and/or internal plugin. This reduces the need to manually refine recorded automation after live sessions and ensures proper ramping of the control motion to avoid abrupt changes.

  • Time - The amount of smoothing applied to the remote control input. The longer the time, the smoother the motion.

Action Buttons

  • Reset - Click this button to reset the remote control settings, including mapping formula & smoothing.
  • Accept - Saves the dialog settings.

Multi-link settings

This link dialog is associated with 'Multi-link Controllers' process. The options are similar to the standard link dialog:

  • Reset - Click this button to reset the remote control settings, including mapping formula & smoothing.
  • Accept - Saves the dialog settings.