The playlist can hold several arrangements. Each starts with a New arrangement event (99). The events after it give the arrangement’s name, its playlist items, its tracks and its time markers.
Arrangement
| ID | Size class | Name | Holds |
|---|---|---|---|
| 0x63 (99) | Word | New arrangement | Starts an arrangement. The value is its index. |
| 0xE9 (233) | Data | Playlist items | Every clip placed in the arrangement, as playlist items of 32 bytes. |
| 0xF1 (241) | Text | Arrangement name | The arrangement’s name. Stored in the data range. |
Tracks
Track events follow their arrangement, one pair per playlist track. An FL Studio 20 arrangement has 500 tracks. PyFLP notes that the track data block is 66 bytes as of version 20.9.1; its layout in earlier 20.x releases is not recorded.
| ID | Size class | Name | Holds |
|---|---|---|---|
| 0xEE (238) | Data | Track data | The track’s settings, as a block of binary data. |
| 0xEF (239) | Text | Track name | The track’s name. Stored in the data range. |
Time markers
Time markers label points in an arrangement or change its time signature.
| ID | Size class | Name | Holds |
|---|---|---|---|
| 0x21 (33) | Byte | Time marker numerator | The beats per bar of a time signature marker. |
| 0x22 (34) | Byte | Time marker denominator | The beat value of a time signature marker. |
| 0x94 (148) | Dword | Time marker position | Where the marker sits, in ticks. See below. |
| 0xCD (205) | Text | Time marker name | The marker’s label. |
The position also says what kind of marker it is. A value under 134,217,728
(0x08000000) is a plain marker at that tick. A value of 134,217,728 or more
is a time signature change; subtract 134,217,728 to get its tick.
According to a comment in PyFLP, the first releases of FL Studio 20 wrote the time markers before the New arrangement event they belong to, rather than after it. A reader should accept both orders.
All arrangements
| ID | Size class | Name | Holds |
|---|---|---|---|
| 0x11 (17) | Byte | Time signature numerator | The project’s beats per bar. |
| 0x12 (18) | Byte | Time signature beat | The project’s beat value. |
| 0x64 (100) | Word | Selected arrangement | The arrangement shown when the project was saved. |
| 0x98 (152) | Dword | Loop position old | The loop position, from FL Studio 1.3.8. |
| 0xD9 (217) | Data | Playlist selection | The selected part of the playlist. |