Skip to the answer

SERIAL INPUT CONTROLS / OFFLINE CPU / OCTOBER 20, 2026

MP3 to MIDI.
One encoding. Then another.

Across 4 new serial MP3 inputs, 4 exports kept their parent's event count; 1 changed pitch-and-timing geometry, and 3 changed complete note fields. All used the selected 64 kbps setting. These offline controls do not establish a safe generation limit or musical accuracy.

Encode the parent.
Not the original again.

NEW SERIAL-INPUT COMPARISONS TO IMMEDIATE PARENT4 of 4 keep the count.A count equality is not a musical-accuracy score.
COMPLETE NOTE FIELDS THAT CHANGE3 of 4 differ.Geometry and velocity are compared together using full parsed numeric fields.
Actual saved input sizes, decoded model-input sample counts and re-parsed MIDI totals. WAV and G1 are retained reference captures; G2 and G3 are new serial inputs.
InputImmediate parentFile bytesDecoded samplesMIDI eventsCapture provenance
first-only / WAVSource141164705602Retained prior capture
first-only / G1first-only-wav26374705602Retained prior capture
first-only / G2first-only-g126374705602New Oct20 serial-input capture
first-only / G3first-only-g226374705602New Oct20 serial-input capture
second-only / WAVSource141164705602Retained prior capture
second-only / G1second-only-wav26374705602Retained prior capture
second-only / G2second-only-g126374705602New Oct20 serial-input capture
second-only / G3second-only-g226374705602New Oct20 serial-input capture

first-only / WAV

Parent: Source WAV. Actual file: 141164 bytes. Decoded samples: 70560. MIDI events: 2. Retained prior capture.

first-only / G1

Parent: first-only-wav. Actual file: 26374 bytes. Decoded samples: 70560. MIDI events: 2. Retained prior capture.

first-only / G2

Parent: first-only-g1. Actual file: 26374 bytes. Decoded samples: 70560. MIDI events: 2. New Oct20 serial-input capture.

first-only / G3

Parent: first-only-g2. Actual file: 26374 bytes. Decoded samples: 70560. MIDI events: 2. New Oct20 serial-input capture.

second-only / WAV

Parent: Source WAV. Actual file: 141164 bytes. Decoded samples: 70560. MIDI events: 2. Retained prior capture.

second-only / G1

Parent: second-only-wav. Actual file: 26374 bytes. Decoded samples: 70560. MIDI events: 2. Retained prior capture.

second-only / G2

Parent: second-only-g1. Actual file: 26374 bytes. Decoded samples: 70560. MIDI events: 2. New Oct20 serial-input capture.

second-only / G3

Parent: second-only-g2. Actual file: 26374 bytes. Decoded samples: 70560. MIDI events: 2. New Oct20 serial-input capture.

The starting files are the exact first-only and second-only controls in the fixed-source bitrate experiment. In each source chain, the saved WAV is generation zero and its existing 64 kbps MP3 is generation one. Generation two is encoded from that actual MP3, and generation three is encoded from the actual generation-two file. These are serial decode-and-encode steps, not three independent encodings of a WAV.

Every child record names its immediate parent, parent filename and complete parent SHA-256. The first-generation MP3 and WAV match the prior input, decoded sample and model hashes before their captures are retained. Their original raw capture-clock readings remain unchanged. The record contains 4 new serial-input captures and 4 retained captures; actual model executions in this run are recorded separately as 4.

Actual WAV and serial MP3 parent chains, file byte sizes, parsed MIDI totals and abbreviated decoded sample hashes
The chain is a record of actual parentage, not a quality ranking. Full hashes and encoder arguments remain in the downloadable JSON. Open the parent-chain figure.

The total can hold.
The fields can move.

New G2/G3 exports versus their own immediate parent's export. Geometry includes pitch, ticks, duration ticks, start seconds and duration seconds; all note fields also include velocity.
Child versus parentCount differenceDecoded samples identicalGeometry identicalAll note fields identicalMIDI bytes identical
first-only-g2 vs first-only-g12 - 2 = 0noyesnono
first-only-g3 vs first-only-g22 - 2 = 0nononono
second-only-g2 vs second-only-g12 - 2 = 0noyesnono
second-only-g3 vs second-only-g22 - 2 = 0noyesyesyes

first-only-g2 versus first-only-g1

Event-count difference: 2 - 2 = 0. Decoded samples identical: no. Geometry identical: yes. All note fields identical: no. MIDI bytes identical: no.

first-only-g3 versus first-only-g2

Event-count difference: 2 - 2 = 0. Decoded samples identical: no. Geometry identical: no. All note fields identical: no. MIDI bytes identical: no.

second-only-g2 versus second-only-g1

Event-count difference: 2 - 2 = 0. Decoded samples identical: no. Geometry identical: yes. All note fields identical: no. MIDI bytes identical: no.

second-only-g3 versus second-only-g2

Event-count difference: 2 - 2 = 0. Decoded samples identical: no. Geometry identical: yes. All note fields identical: yes. MIDI bytes identical: yes.

The count-difference formula is candidateCount - referenceCount, using the named child MIDI and parent MIDI. It does not subtract an assumed number of intended notes. The tally 4 of 4 counts rows with a zero difference. It is not the proportion of music transcribed correctly, and the source constructions are not statistical replicates of a performance.

Each equality asks a different question. The input-file hash compares encoded bytes; the decoded float32 hash compares actual model-input samples. Geometry compares ordered parsed pitch and timing fields. The complete note-field check adds velocity, while the MIDI hash checks the final saved bytes. A matching event total cannot replace any of these tests. Equality is evaluated at full stored precision, not from rounded labels or visual similarity.

Of these 4 new parent comparisons, 1 change geometry and 3 change at least one complete note field. The rows identify which source and generation produced each observation. They do not imply that all changes are errors, that a later generation is worse, or that an unchanged export retained every feature of its input waveform.

Parsed MIDI intervals for retained WAV and first-generation references and new serial second- and third-generation MP3 inputs
Bars use actual parsed MIDI intervals, not inferred source attacks. Tiny changes and velocities must be read in the numeric evidence, not estimated from bar lengths. Open the interval figure.

The numbered events above are positions in the parsed export, not claims about musical intention. Values are shown to six decimal places for legibility. The saved JSON retains complete numeric precision, tick duration, seconds and PPQ; it is the source for reproducing the equality checks.

Same selected rate.
Different sample identity.

All new encodes use the installed native FFmpeg and libmp3lame, with -b:a 64k, -ar 22050 and -ac 1. These are selected experiment parameters, not an optimal-setting recommendation. Every saved input is inspected again: the raw stream line, sample rate, channel description, reported stream bitrate, actual file length, decoded sample count, RMS, peak and sample hash are retained.

The mono/22050 Hz stream-mismatch list has 0 entries. The check treats FFmpeg's mono and 1 channels descriptions as one channel while preserving the original words. Equal declared settings alone are insufficient to establish identical streams or decoded data. The independent audit re-encodes each immediate parent with the saved options and requires the actual child-file hash to match.

File length is not file identity. In this record, every saved MP3 has 26374 bytes, but the complete input and decoded hashes are still checked separately for every parent-child pair. A repeated byte count cannot show that the compressed audio, decoded samples, captured model output or saved note velocities stayed equal.

The WAV controls are not normalized, faded again or regenerated with different phase boundaries. Their source identities are inherited unchanged. The serial encodings do change actual samples, so holding the original source and the encoder options fixed does not make every generation the same input. This experiment records that difference rather than treating the shared filename extension as a control.

Keep both comparisons.
Parent and source WAV.

A parent comparison isolates the next serial step. A WAV-reference comparison asks whether a descendant export still matches the source WAV's export. They need not give the same answer: a child can match an already-changed parent without matching the WAV reference. Both comparison families use actual exports; neither names the WAV export as a ground-truth musical score.

Both full comparison arrays name candidate and reference audio files, MIDI files and event totals. The source case remains fixed within each comparison. Mixing the first-only chain with the second-only chain would introduce a different authored source construction; the audit forbids that comparison. These two source cases are distinct controls, not a larger population created by counting every generation again.

A measured chain.
Not a stopping rule.

This is not a safe generation limit. The experiment stops at the selected third generation because that is the declared protocol, not because the data establishes a universal boundary. A complete note-field match in one step does not establish a plateau, harmless compression or unchanged model predictions. A differing export is also not a listening-quality judgment or an accuracy score.

The sources are authored sine-wave controls, not voices, songs or recordings of instruments. No performer supplied an intended score. We did not run a physical phone, the public browser converter, a DAW import or a listening trial. The unchanged offline CPU model and the stated extraction settings define this particular measurement path; other devices, source audio or extraction settings are not covered.

MP3MIDITool's input and repair guide distinguishes editable notes from an original waveform. That observed workflow is the reason to inspect actual output fields here. This is a project-authored serial-encoding experiment, not a test of that converter. The fixed comparison pages were read for structure and scope, not treated as proof of current rankings or a web-wide absence of other experiments.

Old anchors labelled.
New inference recorded.

Basic Pitch 1.0.1; TensorFlow.js 3.21.0; MIDI writer 2.0.28; v24.19.0 on win32; offline CPU. Native encoder: ffmpeg version 6.0-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers. Onset and frame thresholds stay 0.25 and 0.25, with a 5-frame extraction minimum. The converter program and earlier article bodies are unchanged.

Each new capture includes its input hash, decoded float32 hash and actual frame, onset and contour matrices. The audit re-extracts those captures with the unchanged note-writing settings, re-parses every saved Standard MIDI and requires exact field and byte-hash equality. A retained capture must match the original input, decode and model identities. Re-extracting a capture is not a fresh model execution.

The JSON field capturedAtUtc remains a raw host-clock reading, not certified wall-clock UTC. The execution environment previously disagreed with the HTTP and deployment-service clocks; no timestamp offset is applied to old or new evidence. The service deployment record, converted to Asia/Shanghai, determines actual publication time. Hashes identify retained bytes; clock differences are not used to claim experiment speed.

Model manifest SHA-256: 1ed1aaee3409ec1dc098c8b01f430c0911f6fe9412e7af8086750f9e8f302f68. Combined model weights: b142a95737a52e1e412d5f92e73d8bb80dfe8d04941acc0702f11f4524fb377c. Unchanged converter source: e42f9b0b60bb6fd73b2539a1ae9ca3b09f34ab874e35423162b384df68c19660. Only project-authored controls are used. No visitor media is uploaded to an external service.

Download each generation.
Follow each parent.

Full results and provenance contain the parent chain, raw stream descriptions, encoder options, decoded sample identities, captured-output hashes and all parsed MIDI fields. Reproduction code runs in the project's pinned environment with the Oct19 source evidence present, as node scripts/measure-mp3-generations.cjs. Replay mode refuses missing captures and records actual inference executions separately.

For the preceding direct-from-WAV comparison, use the bitrate controls. For the underlying authored sources, use the independent boundary experiment. Those earlier pages keep their original evidence and claims.