FA-81715 / MIDI event timing / Member archive
Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 05
With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.
Case contract
Input [events, source_ppq, target_ppq] with events [tick, kind, note] in time order. Each tick maps to tick*target/source rounded half up. A note-off (matched FIFO to the earliest open note-on of the same note) whose original length was positive but whose converted tick is not after its note-on is moved to note-on + 1. Invalid resolutions return None.
Why this case matters
MIDI sequencers, file readers and synth drivers depend on exact event ordering and tick/time arithmetic.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| oracle 5 | [[0, "on", 60], [1, "on", 60], [2, "off", 60], [2, "off", 60]] | [[0, "on", 60], [1, "on", 60], [1, "off", 60], [2, "off", 60]] | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗