FAILURE MAP
← Case archive

FA-81704 / MIDI event timing / Member archive

Tick resolution conversion preserving note length: short notes collapse to zero length · case 04

A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.

Member previewVariant 4 · 3 implementations · 8 checks per implementation

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 fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
oracle 1[[0, "on", 60], [0, "off", 60]][[0, "on", 60], [1, "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 ↗