Skip to content

🐞 Missing playlist data in FL Studio 2025 project files #200

@rebane2001

Description

@rebane2001

Describe the issue

It seems like the PlaylistEvent structure has changed, which leads to missing data in PyFLP.

What version of PyFLP are you using?

v2.2.1

What code caused this issue?

class PlaylistEvent(ListEventBase):
    STRUCT = c.GreedyRange(
        c.Struct(
            "position" / c.Int32ul,  # 4
            "pattern_base" / c.Int16ul * "Always 20480",  # 6
            "item_index" / c.Int16ul,  # 8
            "length" / c.Int32ul,  # 12
            "track_rvidx" / c.Int16ul * "Stored reversed i.e. Track 1 would be 499",  # 14
            "group" / c.Int16ul,  # 16
            "_u1" / c.Bytes(2) * "Always (120, 0)",  # 18
            "item_flags" / c.Int16ul * "Always (64, 0)",  # 20
            "_u2" / c.Bytes(4) * "Always (64, 100, 128, 128)",  # 24
            "start_offset" / c.Float32l,  # 28
            "end_offset" / c.Float32l,  # 32
            "_u3" / c.If(c.this._params["new"], c.Bytes(28)) * "New in FL 21",  # 60
        )
    )
    SIZES = [32, 60]


can be changed to


class PlaylistEvent(ListEventBase):
    STRUCT = c.GreedyRange(
        c.Struct(
            "position" / c.Int32ul,  # 4
            "pattern_base" / c.Int16ul * "Always 20480",  # 6
            "item_index" / c.Int16ul,  # 8
            "length" / c.Int32ul,  # 12
            "track_rvidx" / c.Int16ul * "Stored reversed i.e. Track 1 would be 499",  # 14
            "group" / c.Int16ul,  # 16
            "_u1" / c.Bytes(2) * "Always (120, 0)",  # 18
            "item_flags" / c.Int16ul * "Always (64, 0)",  # 20
            "_u2" / c.Bytes(4) * "Always (64, 100, 128, 128)",  # 24
            "start_offset" / c.Float32l,  # 28
            "end_offset" / c.Float32l,  # 32
            "_u3" / c.If(c.this._params["new"], c.Bytes(28)) * "New in FL 21",  # 60
            "_u4" / c.Int64sl,  # fix
        )
    )
    SIZES = [32, 60]


and it seems to read files fine now?

Screenshots, Additional info

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions