Margrete RPC

Bugs & Limitations

Known constraints in Margrete RPC, and how to work around them.

Event scanning

Because of a limitation in Margrete, the plugin scans for events instead of reading them directly. This has two practical consequences:

  • Events far past the last note may not be read. By default, the scan covers up to 19200 ticks beyond the last note.
  • Charts with many events can be slow to open. Dead Soul is a known example containing many scroll-speed events (TimelineSpeedEvent).

Workarounds

Use the open_edit parameters described in Edit Transactions to control the scan:

with m.open_edit(
    # ticks to scan past the last note (default: 19200)
    event_scan_lookahead_ticks=1920 * 4,
) as tx:
    ...

Or provide an explicit list of TIL to scan:

with m.open_edit(event_scan_til_ids=[0, 1, 2]) as tx:
    ...

Pass event_scan_til_ids=[] to scan common TIL (0 — 15).

Undo note deletion

When your code deletes notes, pressing Undo in Margrete restores those notes in a duplicated state instead of cleanly reversing the deletion.

Workarounds

On this page