Skip to content

馃悶 Missing playlist data in FL Studio 2025 project files#200

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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