Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Tick resolution conversion preserving note length: short notes collapse to zero length · case 01
A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.
Tick resolution conversion preserving note length: short notes collapse to zero length · case 02
A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.
Tick resolution conversion preserving note length: short notes collapse to zero length · case 03
A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.
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.
Tick resolution conversion preserving note length: short notes collapse to zero length · case 05
A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.
Tick resolution conversion preserving note length: ratio applied upside down · case 01
Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.
Tick resolution conversion preserving note length: ratio applied upside down · case 02
Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.
Tick resolution conversion preserving note length: ratio applied upside down · case 03
Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.
Tick resolution conversion preserving note length: ratio applied upside down · case 04
Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.
Tick resolution conversion preserving note length: ratio applied upside down · case 05
Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.
Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 01
With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.
Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 02
With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.
Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 03
With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.
Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 04
With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.
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.
Active sensing timeout detection: exact 300 ms gap reported as timeout · case 01
A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.
Active sensing timeout detection: exact 300 ms gap reported as timeout · case 02
A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.
Active sensing timeout detection: exact 300 ms gap reported as timeout · case 03
A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.
Active sensing timeout detection: exact 300 ms gap reported as timeout · case 04
A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.
Active sensing timeout detection: exact 300 ms gap reported as timeout · case 05
A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.
Active sensing timeout detection: only sensing messages refresh the timer · case 01
A stream with regular note messages but sparse sense messages times out although traffic never stopped.
Active sensing timeout detection: only sensing messages refresh the timer · case 02
A stream with regular note messages but sparse sense messages times out although traffic never stopped.
Active sensing timeout detection: only sensing messages refresh the timer · case 03
A stream with regular note messages but sparse sense messages times out although traffic never stopped.
Active sensing timeout detection: only sensing messages refresh the timer · case 04
A stream with regular note messages but sparse sense messages times out although traffic never stopped.
Active sensing timeout detection: only sensing messages refresh the timer · case 05
A stream with regular note messages but sparse sense messages times out although traffic never stopped.
Active sensing timeout detection: silence after the last message never times out · case 01
When sensing stops and no further messages arrive, no timeout is reported before end_time.
Active sensing timeout detection: silence after the last message never times out · case 02
When sensing stops and no further messages arrive, no timeout is reported before end_time.
Active sensing timeout detection: silence after the last message never times out · case 03
When sensing stops and no further messages arrive, no timeout is reported before end_time.
Active sensing timeout detection: silence after the last message never times out · case 04
When sensing stops and no further messages arrive, no timeout is reported before end_time.
Active sensing timeout detection: silence after the last message never times out · case 05
When sensing stops and no further messages arrive, no timeout is reported before end_time.
Active sensing timeout detection: timeout stamped at the next message arrival · case 01
A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.
Active sensing timeout detection: timeout stamped at the next message arrival · case 02
A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.
Active sensing timeout detection: timeout stamped at the next message arrival · case 03
A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.
Active sensing timeout detection: timeout stamped at the next message arrival · case 04
A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.
Active sensing timeout detection: timeout stamped at the next message arrival · case 05
A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.
Same-pitch and monophonic overlap truncation: zero-length notes kept · case 01
A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.
Same-pitch and monophonic overlap truncation: zero-length notes kept · case 02
A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.
Same-pitch and monophonic overlap truncation: zero-length notes kept · case 03
A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.
Same-pitch and monophonic overlap truncation: zero-length notes kept · case 04
A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.
Same-pitch and monophonic overlap truncation: zero-length notes kept · case 05
A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.
Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 01
In mono mode a held note keeps sounding under the next note of a different pitch.
Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 02
In mono mode a held note keeps sounding under the next note of a different pitch.
Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 03
In mono mode a held note keeps sounding under the next note of a different pitch.
Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 04
In mono mode a held note keeps sounding under the next note of a different pitch.
Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 05
In mono mode a held note keeps sounding under the next note of a different pitch.
Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 01
When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.
Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 02
When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.
Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 03
When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.
Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 04
When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.
Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 05
When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.
Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 01
A short note followed later by the same pitch is lengthened up to that next start (legato fill).
Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 02
A short note followed later by the same pitch is lengthened up to that next start (legato fill).
Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 03
A short note followed later by the same pitch is lengthened up to that next start (legato fill).
Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 04
A short note followed later by the same pitch is lengthened up to that next start (legato fill).
Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 05
A short note followed later by the same pitch is lengthened up to that next start (legato fill).
Time Signature meta event decoding: denominator byte used as the denominator · case 01
4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.
Time Signature meta event decoding: denominator byte used as the denominator · case 02
4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.
Time Signature meta event decoding: denominator byte used as the denominator · case 03
4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.
Time Signature meta event decoding: denominator byte used as the denominator · case 04
4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.
Time Signature meta event decoding: denominator byte used as the denominator · case 05
4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.
Time Signature meta event decoding: metronome click left in MIDI clocks · case 01
The click interval is reported as 24 instead of 480 ticks at 480 ppq.
Time Signature meta event decoding: metronome click left in MIDI clocks · case 02
The click interval is reported as 24 instead of 480 ticks at 480 ppq.
Time Signature meta event decoding: metronome click left in MIDI clocks · case 03
The click interval is reported as 24 instead of 480 ticks at 480 ppq.
Time Signature meta event decoding: metronome click left in MIDI clocks · case 04
The click interval is reported as 24 instead of 480 ticks at 480 ppq.
Time Signature meta event decoding: metronome click left in MIDI clocks · case 05
The click interval is reported as 24 instead of 480 ticks at 480 ppq.
Time Signature meta event decoding: bar length counted in quarter notes · case 01
A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.
Time Signature meta event decoding: bar length counted in quarter notes · case 02
A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.
Time Signature meta event decoding: bar length counted in quarter notes · case 03
A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.
Time Signature meta event decoding: bar length counted in quarter notes · case 04
A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.
Time Signature meta event decoding: bar length counted in quarter notes · case 05
A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.
Time Signature meta event decoding: declared length of time signature not checked · case 01
A malformed event declaring length 5 or 3 is decoded as if valid.
Time Signature meta event decoding: declared length of time signature not checked · case 02
A malformed event declaring length 5 or 3 is decoded as if valid.
Time Signature meta event decoding: declared length of time signature not checked · case 03
A malformed event declaring length 5 or 3 is decoded as if valid.
Time Signature meta event decoding: declared length of time signature not checked · case 04
A malformed event declaring length 5 or 3 is decoded as if valid.
Time Signature meta event decoding: declared length of time signature not checked · case 05
A malformed event declaring length 5 or 3 is decoded as if valid.
Channel note message encoder with running status: channel range validated as zero-based · case 01
Channel 16 is rejected and channel 0 is accepted, producing a negative status value.
Channel note message encoder with running status: channel range validated as zero-based · case 02
Channel 16 is rejected and channel 0 is accepted, producing a negative status value.
Channel note message encoder with running status: channel range validated as zero-based · case 03
Channel 16 is rejected and channel 0 is accepted, producing a negative status value.
Channel note message encoder with running status: channel range validated as zero-based · case 04
Channel 16 is rejected and channel 0 is accepted, producing a negative status value.
Channel note message encoder with running status: channel range validated as zero-based · case 05
Channel 16 is rejected and channel 0 is accepted, producing a negative status value.
Channel note message encoder with running status: running-status note-off carries a release velocity · case 01
With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.
Channel note message encoder with running status: running-status note-off carries a release velocity · case 02
With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.
Channel note message encoder with running status: running-status note-off carries a release velocity · case 03
With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.
Channel note message encoder with running status: running-status note-off carries a release velocity · case 04
With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.
Channel note message encoder with running status: running-status note-off carries a release velocity · case 05
With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.
Channel note message encoder with running status: running status applied when disabled · case 01
Repeated status bytes are omitted even when running status is disabled.
Channel note message encoder with running status: running status applied when disabled · case 02
Repeated status bytes are omitted even when running status is disabled.
Channel note message encoder with running status: running status applied when disabled · case 03
Repeated status bytes are omitted even when running status is disabled.
Channel note message encoder with running status: running status applied when disabled · case 04
Repeated status bytes are omitted even when running status is disabled.
Channel note message encoder with running status: running status applied when disabled · case 05
Repeated status bytes are omitted even when running status is disabled.
Channel note message encoder with running status: converted note-on sends release velocity 0 · case 01
Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.
Channel note message encoder with running status: converted note-on sends release velocity 0 · case 02
Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.
Channel note message encoder with running status: converted note-on sends release velocity 0 · case 03
Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.
Channel note message encoder with running status: converted note-on sends release velocity 0 · case 04
Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.
Channel note message encoder with running status: converted note-on sends release velocity 0 · case 05
Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.
Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 01
A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.
Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 02
A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.
Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 03
A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.
Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 04
A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.
Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 05
A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗