Each pattern starts with a New pattern event (65), whose value is the pattern’s index. The pattern events after it belong to that pattern. Each pattern’s New event appears twice in a project, so its events can come in two runs; join them by the index.
Pattern
| ID | Size class | Name | Holds |
|---|---|---|---|
| 0x1A (26) | Byte | Pattern looped | Whether the pattern loops. |
| 0x41 (65) | Word | New pattern | Starts a pattern. The value is its index. |
| 0x96 (150) | Dword | Pattern colour | The pattern’s colour. |
| 0xA2 (162) | Dword | Unknown | Unknown. |
| 0xA4 (164) | Dword | Pattern length | The pattern’s length. |
| 0xC1 (193) | Text | Pattern name | The pattern’s name. |
| 0xDF (223) | Data | Pattern controllers | Controller changes, as 12-byte controller records. |
| 0xE0 (224) | Data | Pattern notes | The notes, as 24-byte note records. |
All patterns
Two events describe the patterns as a whole.
| ID | Size class | Name | Holds |
|---|---|---|---|
| 0x1E (30) | Byte | Play truncated notes | Whether notes that run past the end of a pattern still play. PyFLP notes it was switched on by default in 12.3; when the event first appeared is not recorded. |
| 0x43 (67) | Word | Selected pattern | The pattern selected when the project was saved. |