FL Studio is a full-featured music production environment capable of multi-track audio recording, sequencing and mixing for the creation of professional quality music tracks. With VST hosting, a flexible mixer and advanced MIDI support no musical style will be beyond your reach. Songs or loops can be exported to .wav, .mp3, .ogg, .flac or .mid format.
Why buy FL Studio?
- Lifetime FREE Updates - Buy FL Studio then get every future release of FL Studio for FREE. Register FL Studio from your online account.
Powerful MIDI learning system - FL Studio remembers which controller you have used and what plugins or UI targets it was linked to
Access to the Image-Line community - Includes user forums, content & project downloads, give-aways, exclusive competitions and more.
Unlimited technical support.
FL Studio owners enjoy LIFETIME FREE UPDATES, so always check for the latest release here online. For the complete log (including bug-fixes) please check the WhatsNew Change Log. You can also view the FL Studio YouTube playlist.
- FL Cloud (Plugins) - FL Cloud Plugins are available free to all FL Studio customers. Subscribers get even more though an ever expanding range of 3rd party and Image-Line Group VST plugins. NOTE: FL Cloud Plugins are separate from those that come with the various FL Studio Editions.
This section covers the FL Studio desktop and basic workflow. FL Studio allows you to load instruments and samples, play these live or manually enter the note data, record external sounds (from a microphone for example) and play the whole mix back through the mixer (adding effects). The completed project can be saved to a .flp or .zip and/or exported (rendered) to .wav, .mp3 or .ogg audio
While the FL Studio based musician generally has little or no need for extra hardware, it's definitely worth considering a controller. Controllers are devices that send control signals to FL Studio to move the knobs, switches or play a plugin instrument like a synthesizer. For setting up a controller see the MIDI Settings Wizard or MIDI Settings page.
See here for more information on supported controllers.
NOTES:
- To link the FL Studio interface to an external controller, Right-Click the target knob/slider and select 'Link controller' from the menu and then move the physical knob on the external controller interface.
- FL Studio stores all note activity from external controllers from the past 3 minutes. This can be dumped to the Piano roll at any time using the 'Dump score log to selected pattern' command. Never lose that perfect improvisation again!
- What to do if your Mod Wheel or Pitch Bend does not work - See the Knowledge Base here.
Piano roll scripts allow you to manipulate the note data in the Piano roll under the control of Python code. For example, select all notes higher than C3 (MIDI note number 36).
Script File Locations and File Names
FL Studio will check the locations listed below and show any Scripts it finds in the Piano roll Scripts menu. If you make or edit scripts put them in the User data 'Piano roll scripts' sub-folder. The user interfaces you see associated with scripts are automatically created based on the variables and text entry fields in the script.
- Script file naming - Files must end with the .pyscript extension. E.g., Any text you like here.pyscript
- User editable scripts - When creating your own scripts or editing ours, put them in the
User scripts folder:
User scripts folder - ...Documents\Image-Line\FL Studio\Settings\Piano roll scripts. NOTE: You can use sub folders to create category folders in the Piano roll script menu. - Default installation folders - We don't recommend editing these scripts or editing the contents of the folders. Rather copy any scripts you want to modify to your 'User scripts folder', add 'edited' to the name so you don't get confused. If you complain about bugs in factory scripts that you created because you didn't follow this advice, our support staff will chastise you many times!
NOTE: Check the factory script folder for the file 'Piano roll script reference.txt'. This may be more updated than this page in the manual.
Example scripts:
You do not need to install Python, FL Studio will interpret scripts itself. The script files are simply plain
text format with the extension .pyscript. For example 'Mute selected notes.pyscript' for the example
below.
One of the best ways to learn scripting is to make a copy of a simple one, and make edits to it to learn how
it
works. For example, text messages on the script etc.
Mute selected notes:
from flpianoroll import *
# loop through existing notes and set the "muted" flag
for i in range(score.noteCount):
score.getNote(i).muted = True
Script using the 'preview' feature:
from flpianoroll import *
def createDialog():
form = ScriptDialog('Add One Note', '')
form.AddInputKnob('Note Number', 36, 24, 48)
return form
def apply(form):
notenr = round(form.GetInputValue('Note Number'))
# ... do something here
Check if any key is pressed:
def OnMidiMsg(event):
event.handled = False
if event.data2 > 0:
print('Any Key Pressed')
Check if your specific key is pressed:
if event.data1 == play_key:
print('Play Key Pressed')
Duplicate Notes an Octave Higher:
def duplicate_notes_octave_up():
# Check if there are active channels
if channels.channelCount() == 0:
ui.showMessageBox("Error", "No active channels.")
return
# Get the list of selected notes
selected_notes = midi.getSelectedNotes()
# Exit if no notes are selected
if not selected_notes:
ui.showMessageBox("Info", "No notes selected.")
return
# Duplicate each selected note one octave higher
for note in selected_notes:
new_note = midi.MidiNote(
start=note.start,
length=note.length,
pitch=note.pitch + 12, # Increase pitch by 12 semitones (1 octave)
velocity=note.velocity,
channel=note.channel,
isSelected=False
)
midi.addNote(new_note)
ui.showMessageBox("Success", "Notes duplicated one octave higher.")
# Call the function
duplicate_notes_octave_up()