Skip to the answer

RETAINED-MIDI EDIT / OCTOBER 13, 2026

MP3 to MIDI.
Join a pitch. Keep the others.

Same-pitch joining reduced our fundamental controls from nine and eight events to four when gaps up to 30 ticks were allowed. Both stronger-partial controls still had twelve events. Joining can connect fragments, but this rule never deletes a different pitch. These are offline edits of retained MIDI, not a recommended setting or a transcription accuracy score.

Fewer events.
The same pitch set.

FUNDAMENTAL PAIR / 30-TICK GAPFour events each.The WAV loses five separate events; the MP3 loses four. Original members remain documented.
STRONGER-PARTIAL PAIRTwelve remain.All tested active rules retain the distinct original pitch set.
Actual parsed event counts. Off disables joining; other columns permit gaps up to the specified tick count.
Retained fileOff03060120
Fundamental WAV95444
Fundamental MP385444
Stronger-partial WAV1312121212
Stronger-partial MP31412121212

Fundamental WAV

Off / 0 / 30 / 60 / 120 ticks: 9 / 5 / 4 / 4 / 4.

Fundamental MP3

Off / 0 / 30 / 60 / 120 ticks: 8 / 5 / 4 / 4 / 4.

Stronger-partial WAV

Off / 0 / 30 / 60 / 120 ticks: 13 / 12 / 12 / 12 / 12.

Stronger-partial MP3

Off / 0 / 30 / 60 / 120 ticks: 14 / 12 / 12 / 12 / 12.

With joining disabled, the fundamental WAV contains nine events and the MP3 eight. The zero-gap rule allows touching or overlapping intervals of the same pitch; both files then contain five events. Allowing a gap of 30 ticks reduces both to four. Raising the allowance to 60 or 120 changes neither count further in these controls. We do not interpret that plateau as a universal threshold.

Parsed event counts after same-pitch joining with five gap cases
Bars come from actual saved MIDI. All inputs are retained project-generated controls. Open count chart.

The stronger-partial WAV starts with thirteen events and loses one through zero-gap joining. Its MP3 counterpart starts with fourteen and loses two. Both remain at twelve for every larger allowance. The merge rule compares equal pitches only, so it cannot remove the different-pitch upper layers documented in the harmonic experiment. A smaller event count alone does not prove a more faithful transcription.

Bridging a gap adds held time.

The sum of event durations in fundamental WAV is 1562 ticks with Off and zero-gap joining. With a 30-tick allowance it becomes 1563, and remains there at 60 and 120. Fundamental MP3 similarly moves from 1561 to 1562. These one-tick increases are measured from re-parsed exports, not estimated from a chart. Touching fragments can join without extending their combined duration; bridging a positive gap fills the interval between their edges.

Actual sum of exported event durations after fragment joining
This is a sum across events, not union duration across all pitches or audio duration. Open duration chart.

The stronger-partial WAV has a sum of 3860 ticks in every case, and its MP3 has 3893. Their reductions in count do not add a positive gap under these rules. Files with actual overlapping same-pitch intervals could have a lower duration sum after unioning them because overlapped time is no longer counted twice. That last statement follows from the disclosed union operation; it is not an additional observed result in these four controls.

Same pitch. Sorted starts. Disclosed union.

We group by MIDI pitch, sort each group by start tick and original event index, and maintain an active interval. Join when nextStart - currentUnionEnd <= gapTicks. Keep the first start, keep the maximum end and preserve the first event's velocity. The active union can absorb subsequent eligible events, making the rule transitive. Different pitches never join. Off skips the operation completely.

At zero, negative gaps representing overlap and exact touching are eligible. The chosen positive allowances are 30, 60 and 120 ticks. At the selected 120 BPM and 480 ticks per quarter, time equals ticks * 60 / (120 * 480) seconds. These choices are an experimental protocol, not settings tested in a DAW or prescribed for natural music. No extra minimum duration is imposed.

Each result group records the original event indices it absorbed, its pitch, start, end and retained velocity. The script saves each actual Standard MIDI export, parses it back and compares the multiset of pitch/start/end tuples with the intended groups. It also checks that the set of distinct pitches remains unchanged. Original hashes are checked against the preceding retained evidence before any edit; original files and old pages are not modified.

Twenty re-exports, four originals, two measured charts, the result JSON and the reproduction script form the evidence set. The JSON records the actual Node and MIDI package versions, hashes and parsed note fields. Same-start events may reorder during serialization, so tuple comparison does not assume their array positions identify the same event.

A repair instruction, tested as a limited rule.

MP3MIDITool's repair guidance tells readers to merge short fragments belonging to a held note. That observed instruction prompted this independent edit experiment. Our gap allowances and velocity rule are disclosed choices, not its implementation. We do not assume every nearby same-pitch event is a fragment: a repeated strike could be intentionally separate.

No model inference, browser conversion, physical phone, listening or DAW test took place. This rule cannot decide whether a merged note matches a performer. Harmonic input evidence explains the retained controls; independent grid interventions measure a different edit. The live converter remains unchanged.

Follow each original member.

Download full results for original notes, merge membership, parsed exports and hashes. Reproduction code runs as node scripts/measure-fragment-joining.cjs in this project, using the preceding retained evidence. Only generated-control MIDI is used; no visitor media is accepted or uploaded by this experiment.