File Formats
  • Audio
  • Video
  • Images
  • 3D & CAD
  • Documents
  • Data
  • Code
  • System
Audio
  • Uncompressed
  • Lossless
  • Lossy
  • MIDI & trackers
  • Music projects
  • Instruments & samples
  • Playlists
  1. Home
  2. Audio
  3. Music projects
  4. FLP
  5. Events
.FLP
  • Overview
  • Header chunk
  • Data chunk
  • Events
  • Event reference
    • Project
    • Channels
    • Patterns
    • Arrangements
    • Mixer
    • Plugins
  • Note records
  • Playlist items

Events

The data chunk is a list of events, one after another with nothing between them. Each event is one ID byte and a value. The ID says what the value means and also how big it is, so a reader can step over any event, including ones it does not recognise.

Size classes

The ID byte falls into one of five ranges. The range sets the size of the value.

IDsClassValue
0x00 (0) to 0x3F (63)Byte1 byte
0x40 (64) to 0x7F (127)Word2 bytes, little-endian
0x80 (128) to 0xBF (191)Dword4 bytes, little-endian
0xC0 (192) to 0xCF (207)Texta variable-length size, then that many bytes of text
0xD0 (208) to 0xFF (255)Dataa variable-length size, then that many bytes of data

Three IDs in the data range hold text: 231 (display group name), 239 (track name) and 241 (arrangement name). They were added after the text range was full. They are stored exactly like data events, so the size rule still holds.

Fixed-size events

Byte, word and dword events are the ID followed straight away by the value.

09 01                 loop active: 1
40 00 00              new channel: index 0
9C E0 22 02 00        tempo: 140000, which is 140 BPM
A byte, a word and a dword event, with the ID marked.

Variable-length size

Text and data events give their size as a variable-length number between the ID and the bytes. Each byte carries seven bits of the number, lowest bits first. The top bit of a byte is set when another byte follows. Sizes under 128 take one byte.

300 in binary         = 10 0101100
low seven bits        =    0101100 = 0x2C, more follows → 0x2C + 0x80 = 0xAC
next seven bits       =         10 = 0x02, last byte    → 0x02
stored as             = AC 02
Encoding a size of 300 bytes as AC 02.

To read a size, start at zero and a shift of zero. Take a byte, add its low seven bits shifted left by the shift, and add seven to the shift. Stop after a byte whose top bit is clear.

Text

Text events hold a string followed by a terminating zero. Which encoding is used depends on the version of FL Studio that saved the file:

  • The FL Studio version string (event 199) is always ASCII, so older readers can still find it.
  • Files saved by FL Studio 11.5 and later store every other string as UTF-16LE, two bytes per character, ending in two zero bytes.
  • Files saved by earlier versions store strings as ASCII, ending in one zero byte.

So read event 199 first, then decode the other strings to match.

C7 0C 32 30 2E 38 2E 33 2E 32 33 30 34 00          20.8.3.2304
C2 0A 53 00 6F 00 6E 00 67 00 00 00                Song
The version in ASCII, then a title in UTF-16LE.

How events are grouped

The stream has no nesting. Items such as channels and patterns are built from runs of events: a New event opens an item, and the events after it set that item’s properties until the next New event of the same kind.

EventIDOpens
Channel New0x40 (64)a channel in the channel rack; the value is its index
Pattern New0x41 (65)a pattern; the value is its index
Arrangement New0x63 (99)a playlist arrangement, with its tracks and time markers
Slot Index0x62 (98)an effect slot in a mixer insert

Each pattern’s New event appears twice in a project, so one pattern’s events can come in two separate runs. Join them by the pattern index. Mixer inserts have no New event; their events appear insert by insert, in mixer order. Plugin events follow the channel or slot that holds the plugin.

Project events, such as the tempo and the title, can appear anywhere in the stream and always belong to the project as a whole. The event reference lists every known event by the item it belongs to.

© 2026 fileformats.org About Contact Made by Lewpen