Skip to content

Support binary wave version 7 (wave names longer than 31 characters) #32

Open

Description

@jilavsky

Igor Pro 8+ saves any wave whose name exceeds 31 bytes as binary-wave version 7. igor2 0.5.15 cannot parse these. Inside a .pxp, packed.load fails on the record, so the wave is lost.

Layout, observed in .pxp files from Igor Pro 9:

The header and body are identical to version 5, except that the version field is 7.
The 32-byte bname field in WaveHeader5 holds the placeholder :wave name too long:.
The BinHeader5 field at offset 56 (optionsSize1 in v5) holds the length of the long name.
The long name, not NUL-terminated, follows the last v5 section (after sIndices), and ends the record.
Example: r_ReactedQ_1p73Inlet_0006_270_30 (32 bytes). The field at offset 56 is 32, and the record ends with those 32 bytes.

Parsing v7 as v5 and replacing bname with that trailing name gives correct data and names in our tests. This follows #28 / #30, which fixed long folder names (record type 101). I can provide a test experiment.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions