Introduction
These are the projects saved by FL Studio from version 11.5 through the FL Studio 12 releases. Their defining change is text: names, titles, comments and other strings are stored as UTF-16LE, two bytes per character, so any language can be used. The project still has a single playlist of 199 tracks.
Structure
The file is a 14-byte header chunk and a data chunk holding one long stream of events. Every text event (IDs 192 to 207, and a few data events that hold names) is UTF-16LE and ends with a two-byte zero. The one exception is the FL Studio version event (199), which stays ASCII so that a reader can find out which encoding the rest of the file uses. A reader therefore has to read the version event before any other text.
The exact version where the change happened is not documented. PyFLP first placed it at 12.0, then lowered it to 11.5 after finding UTF-16 text in plugin presets from that version. libflp still switches at 12.0. A cautious reader can also look at the text itself: in UTF-16LE, Latin text has a zero byte after every character.
The playlist items are read by PyFLP as 32-byte records, with the track number stored as 198 minus the track. Several other details, such as the note record size, are only confirmed for later files; the reference pages say where.
Telling it apart
The FL Studio version text event (199) is 11.5 or later and below 12.9.1. Text events other than the version contain zero bytes between Latin characters, and there is no New arrangement event.
Variants
- FruityLoops 1 to FL Studio 5 – early projects: single-byte text, old tempo events and the 1999 layout
- FL Studio 6 to 11.4 – single-byte text, with volume and pan on a newer scale
- FL Studio 11.5 to 12 – every string but the version switches to UTF-16LE
- FL Studio 20 – multiple arrangements, 500 playlist tracks and 125 mixer inserts
- FL Studio 21 and later – 60-byte and longer playlist records, and an event that breaks the size rule
Links
Software
- FL Studio – Image-Line’s music production software, which saves and opens these projects (Windows, macOS)
Developers
Reference
- PyFLP issue 65 – the discussion of where the switch to UTF-16 happened