What MIDI Is and How FL Studio Uses It
MIDI (Musical Instrument Digital Interface) is a communication protocol that sends performance data between devices. It does not carry sound. It carries instructions: which note to play, how hard to play it, when to start, when to stop, and what controller values to send. A MIDI keyboard sends these instructions to FL Studio, and FL Studio uses them to trigger plugins, samplers, and instruments that generate the actual sound.
Think of MIDI as sheet music for computers. The sheet music tells you which notes to play, but the sound depends on whether you play those notes on a piano, a guitar, or a synthesizer. Similarly, the same MIDI performance can sound completely different depending on which plugin receives it. You can record a melody, then swap the instrument from a piano to a synth to a guitar without re-recording anything.
FL Studio uses MIDI extensively. The Piano Roll is a MIDI editor. The Channel Rack triggers instruments via MIDI. The step sequencer creates MIDI patterns. Every time you click a note in the Piano Roll or toggle a step in the step sequencer, you are creating MIDI data. A MIDI controller simply lets you create that data by playing instead of clicking.
Step 1: MIDI Settings in FL Studio
The MIDI settings panel is where you configure which devices FL Studio listens to and how it interprets MIDI data.
Open MIDI Settings
Go to Options > MIDI settings from the menu bar, or press the shortcut that opens the Options menu and navigate to MIDI settings. The panel has two sections: Input (devices sending MIDI to FL Studio) and Output (devices receiving MIDI from FL Studio).
Understanding the Input Section
The Input section lists all detected MIDI input devices. Each device has a name (such as "Akai MPK Mini MK3" or "Arturia MiniLab 3"), an enable checkbox, a Port number, and a controller type dropdown.
- Enable: Check this box to activate the device. FL Studio ignores disabled devices.
- Port: Assigns a unique identifier to this device. Used to route specific controllers to specific channels. Port 0 is the default and sends to whichever channel is selected.
- Controller type: Selects a built-in control script for supported devices. For generic USB MIDI controllers, leave this as "(generic controller)." Some devices (like the Novation Launchkey) have dedicated scripts that enable enhanced integration.
Understanding the Output Section
The Output section lists MIDI output devices. This is used when you want FL Studio to send MIDI to external hardware synthesizers, drum machines, or other MIDI-equipped instruments. For most software-based producers using plugins, you can ignore the output section.
General MIDI Settings
Below the device lists, you will find general settings:
- Auto map controller: When enabled, FL Studio automatically links knobs and faders on your controller to the last parameter you touched in FL Studio. Useful for quick mapping but can cause unintended links. Most producers prefer manual linking (covered in the MIDI Learn section).
- Send master sync: Sends MIDI clock to external devices so they stay in sync with FL Studio's tempo. Enable this only if you use external hardware that needs to sync to FL Studio's BPM.
Step 2: Connecting MIDI Controllers
Most modern MIDI controllers connect via USB and are class-compliant, meaning no drivers are needed. Here is the universal connection process for any USB MIDI controller with FL Studio.
Connect the Controller
Plug the USB cable from your MIDI controller into your computer. Use a direct USB port rather than a hub for reliability. The controller should power on (lights, display, etc.). Wait a few seconds for the operating system to recognize it.
Open FL Studio and Enable the Device
Go to Options > MIDI settings. The controller should appear in the Input list. Click it to select it, then check the Enable box. Set the Port number (0 is fine for a single controller).
Select an Instrument and Play
Click any instrument channel in the Channel Rack. Press a key on your controller. Sound should play. If not, verify the device is enabled and the Port is set correctly in MIDI settings.
Using Multiple Controllers
If you have two or more MIDI devices (for example, a keyboard and a drum pad controller), enable each one and assign different Port numbers. Port 0 sends to the selected channel. Port 1, 2, 3, etc. can be linked to specific channels by setting the channel's MIDI port in its settings (click the channel, open settings, set the MIDI port to match).
Step 3: MIDI Learn Mode
MIDI Learn links any physical control on your controller (knob, fader, button, pad) to any parameter in FL Studio. This is how you create custom mappings that let you control plugins, mixer settings, and transport functions from your hardware.
Link a Knob to a Plugin Parameter
Right-click any knob or slider in an FL Studio plugin. Select Link to controller from the context menu. A linking dialog appears showing the MIDI CC number field. Twist the knob on your MIDI controller that you want to assign. FL Studio detects the incoming CC message and fills in the field. Click Accept to confirm.
Link to Mixer Controls
Right-click a Mixer fader, panning knob, or send level. Select Link to controller. Move the physical control you want to assign. Accept the link. Now that physical knob or fader directly controls the Mixer parameter.
Use the Global Link
For a faster workflow, enable Multilink to controllers from the toolbar (the icon looks like a chain link with multiple arrows, or press Ctrl+J on Windows / Cmd+J on Mac). In this mode, simply twist a knob in FL Studio, then twist a knob on your controller, and they are linked. Twist another FL Studio knob, twist another hardware knob, and that pair is linked too. Click the Multilink button again to exit the mode.
Remove a Link
Right-click the linked parameter, select Link to controller, and in the dialog click Remove to unlink it. The parameter returns to mouse-only control.
Step 4: Recording MIDI Performances
Recording MIDI captures every note you play, along with velocity, timing, pitch bend, modulation, and aftertouch data. All of this data is editable after recording.
Select the Target Channel
Click the instrument channel in the Channel Rack that you want to record MIDI into. Make sure it has a plugin loaded (FLEX, Sytrus, or a Sampler with a sample). If you are recording to FPC for drum pads, select the FPC channel.
Enable Recording
Click the Record button in the Transport bar (the circle icon) or press R on your keyboard. A dropdown may appear asking what to record. Select Notes and automation to capture both MIDI notes and any controller movements (knob twists, pitch bends).
Set the Metronome
If you want a count-in before recording starts, enable the metronome by clicking the metronome icon in the Transport bar. You can also set a count-in from the recording options (right-click the Record button and select the count-in settings). A count-in of 1 or 2 bars gives you time to prepare before recording begins.
Press Play and Perform
Press Space or click the Play button. After the count-in (if enabled), FL Studio begins recording. Every note you play on the MIDI controller is captured as MIDI data in the selected channel's pattern. When you are done, press Space again to stop.
View the Recorded MIDI
Open the Piano Roll for the channel you recorded into: double-click the channel name in the Channel Rack, or right-click and select Piano Roll. All your recorded notes appear as colored blocks in the grid. The horizontal position is timing, the vertical position is pitch, the color intensity represents velocity.
Overdub Additional Parts
To add more notes to an existing recording without erasing what you already recorded, make sure the recording mode is set to overdub (not replace). Right-click the Record button and check that Notes is set to Overdub. Now when you record again, new notes are added on top of existing ones in the same pattern.
Step 5: Editing MIDI Data in the Piano Roll
After recording a MIDI performance, the Piano Roll is where you refine it. FL Studio's Piano Roll is the most powerful MIDI editor in any DAW.
Open the Piano Roll
Double-click the channel name in the Channel Rack, or right-click and select Piano Roll. The Piano Roll opens with a grid: horizontal axis is time, vertical axis is pitch (piano keys displayed on the left).
Quantize Notes
Select all notes with Ctrl+A (Windows) or Cmd+A (Mac). Set the snap grid (magnet icon at the top) to your desired resolution. Press Ctrl+Q (Windows) or Cmd+Q (Mac) to snap all selected notes to the grid. This corrects timing imperfections from live recording while keeping the musical intent.
Edit Velocity
At the bottom of the Piano Roll, you will see a velocity lane showing vertical bars for each note. The height of each bar represents that note's velocity (loudness). Click and drag bars up or down to adjust velocity. You can also select multiple notes and use Alt+Up/Alt+Down (Windows) or Option+Up/Option+Down (Mac) to adjust velocity incrementally.
Edit Note Length
Hover over the right edge of any note in the Piano Roll. The cursor changes to a resize cursor. Click and drag left to shorten the note or right to lengthen it. For legato (overlapping notes), extend each note until it touches or overlaps the next. For staccato (short, detached notes), shorten them to leave gaps.
Edit Pitch Bend and Modulation
If you recorded pitch bend or modulation data, it appears in the event editor at the bottom of the Piano Roll. Click the dropdown (which may show "Velocity" by default) and select Pitch Bend or Mod Wheel to view and edit that data. You can draw or redraw curves using the draw tool or the line tool.
Use the Stamp Tool for Chords
The stamp tool (keyboard shortcut Shift+C in the Piano Roll) lets you stamp pre-built chord shapes into the Piano Roll. Select a chord type (major, minor, 7th, etc.) from the stamp menu and click in the grid to place the chord. This is faster than building chords note by note and ensures the chord voicing is correct.
Step 6: MIDI Scripting Basics
FL Studio supports Python-based MIDI scripting that lets you create custom controller integrations far beyond basic MIDI learn. This is an advanced feature for producers who want complete control over how their hardware interacts with FL Studio.
What MIDI Scripts Do
MIDI scripts are Python files that run inside FL Studio and translate MIDI messages from your controller into FL Studio actions. They can do things that MIDI learn cannot: change behavior based on context, display information on the controller's screen, create complex multi-function button mappings, and control FL Studio's internal functions.
Where Scripts Live
MIDI controller scripts are stored in FL Studio's installation folder under Settings > Hardware on Windows (typically
C:\Program Files\Image-Line\FL Studio\Settings\Hardware) or in the equivalent location on Mac. Each controller has its own folder containing Python (.py) files.Assigning a Script
In Options > MIDI settings, select your controller in the Input list. The Controller type dropdown lists all available scripts. If a script exists for your controller, select it. FL Studio loads the script and your controller gains enhanced functionality beyond basic MIDI.
Creating a Basic Script
MIDI scripts use FL Studio's MIDI scripting API. A basic script has three main functions:
OnInit(): Runs when the script loads. Use it to set up initial controller state.OnMidiMsg(event): Runs every time a MIDI message is received. This is where you interpret incoming MIDI data and trigger FL Studio actions.OnRefresh(flags): Runs when FL Studio's state changes (transport, mixer levels, etc.). Use it to update the controller's display or LEDs.
MIDI Tips for Beat Battles
Using MIDI effectively in a battle environment requires specific strategies that prioritize speed and expressiveness.
Pre-Map Your Essential Controls
Before the battle starts, make sure your MIDI controller is mapped to the controls you use most: instrument selection, mixer levels, and tempo. Save these mappings in your battle template so they load automatically. Do not spend battle time configuring MIDI links.
Use Quick Quantize
After recording a live MIDI performance, immediately quantize with Ctrl+Q (Windows) or Cmd+Q (Mac). Set the snap grid to 1/16 for melodic content and 1/8 for chords before you start recording. This way, one keyboard shortcut cleans up your timing instantly after each take.
Record in Short Takes
Instead of recording a full 4-bar melody in one pass, record 1-2 bars, quantize, then duplicate. This reduces the chance of mistakes and gives you a tighter loop faster. Use Ctrl+B (Windows) or Cmd+B (Mac) in the Piano Roll to duplicate selected notes.
Velocity Is Your Secret Weapon
Play with dynamics. Softer notes and louder notes within a melody create natural expression that judges hear as musicality. When recording with a velocity-sensitive keyboard, vary your touch intentionally. Accented beats should be firm; passing notes should be gentle. This takes practice but separates mechanical-sounding beats from musical ones.
Frequently Asked Questions
What is the difference between MIDI and audio in FL Studio?
MIDI is data, not sound. A MIDI note tells FL Studio which note to play, how hard, and for how long. The actual sound comes from the plugin or sample that receives the MIDI data. Audio is the actual sound wave recorded or generated. You can change which instrument plays MIDI data without re-recording. You cannot change the instrument of a recorded audio file.
Can I use multiple MIDI controllers in FL Studio at the same time?
Yes. Go to Options > MIDI settings and enable each controller. Assign each one a different Port number so FL Studio can distinguish between them. For example, set your keyboard to Port 0 and your pad controller to Port 1. Then, in each channel's settings, specify which port it listens to. This lets you play keys on one controller and drums on another simultaneously.
How do I quantize MIDI in FL Studio?
Select the notes you want to quantize in the Piano Roll (Ctrl+A or Cmd+A to select all). Then press Ctrl+Q (Windows) or Cmd+Q (Mac) to quantize to the current snap grid. The snap grid is set at the top of the Piano Roll using the magnet icon. Set it to 1/4 for quarter notes, 1/8 for eighth notes, or 1/16 for sixteenth notes depending on the precision you want.
Why is there latency when I play my MIDI controller?
Latency is caused by a large audio buffer size. Go to Options > Audio settings and reduce the buffer size. On Windows, switch to an ASIO driver (such as FL Studio ASIO or ASIO4ALL) for the lowest latency. On Mac, Core Audio provides low latency by default. A buffer of 256 samples or lower gives near-instant response. Going too low may cause audio glitches if your CPU cannot keep up.
Can I export MIDI from FL Studio?
Yes. Right-click a pattern in the Channel Rack or Playlist and select Export as MIDI file. This saves a standard .mid file that can be opened in any other DAW. You can also import MIDI files into FL Studio by dragging them into the Channel Rack or Playlist, or by using File > Import > MIDI file.