Audio to MIDI Converter:
Why stereo audio can return no notes.
If a stereo file gives this converter no stable notes, check the left channel, right channel and their mono sum before raising sensitivity. This converter averages the channels before detection: equal, opposite-polarity signals cancel to zero. Try an isolated-channel mono copy when that check confirms cancellation. It is one possible cause—not an explanation for every empty result.
The same four notes. Three different sums.
We tested three 2.4-second synthetic stereo WAVs. Each has the same four-note left channel; only the right channel changes. Today’s repeat on October 6, 2026 reproduced the results below using this site’s unchanged production functions in Balanced mode. These are code-level measurements, not recordings of a singer or a browser file-picker test.
01 · Same polarity
L = R
4 note events
Both channels contain the same signal. Averaging keeps it.
Mono RMS: 0.211770
02 · Opposite polarity
L = −R
0 note events
Both channels are nonzero, but their average is zero.
Mono RMS: 0
03 · Left only
R = 0
4 note events
Averaging halves the signal. This fixture still yields four events.
Mono RMS: 0.105885
Each active input channel has RMS 0.211770 and peak magnitude 0.349976, rounded on the normalized sample scale. In the inverted pair, both channel RMS values remain nonzero while the averaged track has exactly zero RMS and peak. That failure happens before the pitch detector tries to find a note.
Why “stereo” does not guarantee a usable mono input
The inspected mixToMono function adds each channel divided by the channel count. For these two-channel files, the analysis sample is:
mono = (left + right) ÷ 2
A worked sample makes the difference clear. Left +0.25 and right +0.25 give +0.25. Left +0.25 and right −0.25 give 0. Left +0.25 and a silent right channel give +0.125. These arithmetic examples explain the mechanism; they are not extra audio measurements.
Changing a detection threshold cannot recover a melody from an exactly zero analysis track. Conversely, the left-only case shows why a lower level alone does not prove detection will fail: this particular half-level fixture still produced pitches 60, 64, 67 and 72. Do not turn that result into a universal minimum-volume rule.
Check your source without destroying the original
- Keep the stereo original. Work on copies of a short passage. Do not overwrite a mix just because its conversion failed.
- Inspect each channel separately in your audio editor. Confirm which channel contains the melody you intend to transcribe. A visible waveform on one side does not describe their sum.
- Compare the averaged mono signal. If the two separate channels have signal but that sum collapses, channel cancellation is a plausible preprocessing cause. If the sum remains clear, continue investigating other causes instead of applying this diagnosis automatically.
- Export the intended isolated channel as a mono diagnostic copy. Verify that this copy contains the desired phrase, then test it in the converter. This is a recommended next step for your file; we did not perform an audio-editor export or listening test in the measurements above.
- Review the resulting note draft. Recovering nonzero input does not guarantee correct pitches or timing. Compare the events with the source before keeping them.
Do not delete one channel from every stereo recording: it may contain different instruments or useful musical information. Our exact inverted fixture deliberately isolates cancellation; it is not evidence that ordinary stereo mixes generally disappear.
Download the exact evidence
- Same polarity: WAV input · 69-byte MIDI output.
- Opposite polarity: WAV input · 33-byte diagnostic MIDI, zero note events.
- Left only: WAV input · 69-byte MIDI output.
- Exact measurements, note events, method, run times and SHA-256 hashes.
Method and limits
The fixtures were first generated October 5 and regenerated and remeasured October 6 on this Windows machine. Every input and output hash matched the original. Each input is 423,404 bytes: 16-bit integer PCM, two channels, 44,100 Hz, 105,840 frames. The four source pitches are 60, 64, 67 and 72, starting at 0, 0.6, 1.2 and 1.8 seconds, with 0.45-second gates and 8 ms edges. The right channel is respectively an identical copy, its exact integer negative, or silence.
The repeat parses actual WAV integers into Float32 channel arrays, calls the unchanged mixToMono function with an AudioBuffer-shaped object, downsamples to 11,025 Hz, detects notes in Balanced mode, and serializes MIDI. MDN documents per-channel Float32 PCM access; the averaging behavior comes from this site’s inspected implementation, not a rule every converter must follow.
Project reproduction command: node tests/stereo-cancellation-prep.mjs --check. The JSON records the production-source hash and all detected event timings. Four events do not establish timing accuracy; this page tests cancellation, not a note-timing score.
No browser decoding, end-to-end UI conversion, listening, DAW import, real vocal, full song or commercial-tool comparison was measured for this experiment. Other converters may handle stereo differently. An empty result can also have unrelated causes; this test does not measure their frequency.
If cancellation is not the cause
For a quiet note missing inside an otherwise usable draft, see the separate sensitivity test. For a MIDI file that will not open, use the export check. For overlapping instruments or general source selection, read the conversion guide. Those checks address different stages; repeating them cannot substitute for checking whether this detector actually received a nonzero signal.