Audio → MIDI

Audio to MIDI Converter

Humming to MIDI: what wordless vocals actually come back as

The short answer: a hum is a wordless single line, so monophonic mode follows it the way it follows any solo voice — one pitch every 11.610 ms, between 55 Hz and 1800 Hz. What is different about humming is the breath that rides along with it. That breath is broadband noise, and because this converter scores a note by the ratio of harmonic energy to total energy, the noise drains the score and can drop the hum entirely while a clean sung tone survives. Counterintuitively, the same noise also makes the surviving note look louder on the page, not quieter. And a hum does not do the one thing a sung vowel does — it never jumps an octave, it just goes missing. Every number below came from running this site's own analysis code on synthesised hums, not from a general description of pitch tracking.

Why a hum disappears before a sung note does

For a single line, the detector scores each candidate pitch by a salience ratio: the energy at that pitch's harmonics divided by the total energy in the spectrum. Breath noise adds to the denominator without adding to the harmonics, so the ratio falls. The harmonicity gate sits at 0.20 at the default sensitivity (60), and below it a frame counts as silence. We took a 220 Hz hum and added broadband noise at a controlled signal-to-noise ratio:

A 220 Hz hum (harmonics weighted 1/k^1.6, low-pass filtered at 400 Hz) plus broadband noise at the stated SNR. Ratio is the salience score the detector computed; notes is what came back after segmentation.
Breath noise (SNR)Salience ratioNote count
none0.31941
60 dB0.31351
50 dB0.30081
40 dB0.26621
30 dB0.19460
25 dB0.14900
20 dB0.10511
15 dB0.06920

Two things stand out. First, the cliff: at 30 dB the ratio (0.1946) is already below the 0.20 gate, so the hum is gone even though you can still clearly hear it. Second, the surviving note at 20 dB is a trick of the segmentation, not a recovery — at 20 dB the score is 0.1051, well under the gate, yet one note still appears. The segmenter bridges short gaps of up to 7 frames (81.27 ms), so a run of frames that all individually fail the gate can be stitched into a single note if the same pitch returns within that window. The actual collapse is between 20 dB and 15 dB, where even the bridge cannot hold and the hum returns zero notes.

Noise makes a hum louder on the page, not quieter

The instinct is that a noisy take loses the note because the note is too soft. That is backwards here. Velocity is computed from the RMS level of each frame in dBFS, mapped through round(20 + (dB + 60) × (100 / 54)). Breath noise raises the frame RMS, so it raises the velocity. Same 220 Hz hum, same level, more noise added:

The hum's own level never changed; only the added breath noise changed. As the SNR drops, the surviving note's velocity climbs.
Breath noise (SNR)VelocityPeak level
none108−2.33 dBFS
30 dB109−2.27 dBFS
25 dB113−2.14 dBFS
20 dB118−2.01 dBFS

So if a hum comes back too loud and with the note missing in the quiet spots, the cause is the breath, not the hum being sung too gently. Turning the sensitivity up does not fix a missing note that the noise pushed under the salience gate; it only lets more of the noise through as spurious notes.

Humming does not jump an octave — it just goes missing

A sung vowel with a strong formant can read as an octave too high, because the detector mistakes the second harmonic for the fundamental (the failure mode covered on the voice to MIDI page). A hum has no such formant game. Same 220 Hz pitch, same level, same length, two treatments:

The practical difference: a sung word can come back wrong (an octave high) while a hum comes back absent. Both are failures, but they fail differently, and the fix is different. For the octave-jump case, see the voice page; for the missing-note case, the lever is the breath, below.

Closing your mouth is not what kills the note

It is tempting to blame a thin, bright hum for dropping out, and assume a rounder, darker tone would survive better. The measurement says the opposite. We kept the same 220 Hz hum and swept a one-pole low-pass filter from wide open down to 150 Hz:

Cutoff of a one-pole low-pass applied to the hum. Darker means more high-frequency harmonics removed — yet the note count never moves, and the salience ratio actually climbs.
Low-pass cutoffSalience ratioNote count
none0.26951
4000 Hz0.27181
2000 Hz0.27731
1200 Hz0.28621
700 Hz0.30101
400 Hz0.31941
250 Hz0.33331
150 Hz0.34341

The darker the hum, the higher the salience ratio — because concentrating energy into the low harmonics raises the numerator faster than the denominator. But the note count stays at exactly 1 across the whole sweep. Brightness is not the lever for a hum; the breath noise from the first section is. (This is the opposite of what happens on an instrument such as a piano, where a bright timbre is exactly what drops notes — a different mechanism, covered on the piano to MIDI page.)

The loudness gate is relative to your loudest frame

The gate is not an absolute level. It is placed between the quietest tenth of the file and the loudest frame in the whole file: gate = floor + (rmsMax − floor) × 0.14. Two consequences follow for a hum.

First, a uniform level change does not hurt. We took a hum that already carried 30 dB of breath noise and shifted its whole level from −45 dBFS up to −3 dBFS: the note count stayed at 1 the entire way, and velocity rose from 30 to 108 — about 1.857 steps per dB, which is exactly the 100/54 slope of the velocity formula. Quietening or loudening the take as a whole is not what loses the note.

Second, one loud event elsewhere in the file redefines "loud" for everything. We took the same −30 dBFS hum and added a single 10 ms click at 0 dBFS at the end of the file. The hum, which had returned one note on its own, came back as zero notes — because the click became rmsMax, lifted the gate, and the hum fell underneath it. The click itself also failed to register as a note (too short to clear the 58.05 ms shortest-note floor), so the whole file produced nothing. A loud count-in, a door slam, or a clap at the start of a recording can erase a quiet hum that follows it.

How to check a hum on your own file

We have not published accuracy figures for humming specifically, because breath noise makes every take different and we have not measured a set we would stand behind. What you can do is measure your own take in about a minute with the CSV export. Its header is index,midi_note,note_name,start_sec,end_sec,duration_sec,velocity, with times to four decimal places.

  1. Look for the breath gap. Sort by duration_sec. If a hum you can hear is missing but quiet tones nearby survived, the breath pushed it under the salience gate — not the pitch detector. Move the sensitivity slider up a little and re-export; a few more frames will clear the gate.
  2. Check the velocity column for inflation. A hum surrounded by breath can show velocity in the 110s while sounding soft. That is the noise raising the RMS, not a strong note. Compare against a clean take at the same sung level.
  3. Watch the loudest frame. Export once with a loud click at the end and once without. If the hum disappears in the first case, the click became the reference frame and lifted the gate. Trim the loud event before converting.
  4. Confirm no octave jump. A hum should read its true pitch. If a note is an octave high, the input was a sung vowel with a strong formant, not a hum — see the voice to MIDI page for that failure.

All of this runs locally and re-runs instantly when you move a control, because the analysis is done once per file and only the note grouping is recomputed.

Where singing and acapella fit

This page is about wordless vocals — humming, clear singing without words, and unaccompanied (acapella) lines — measured with this converter's own code. The three behave differently from each other, and from a sung word:

The through-line: a wordless vocal is followed faithfully for pitch, but its weaknesses are breath and the relative gate, not the octave jumps that trouble sung words.

There is a separate question the breath story does not cover — what a hummed melody can and cannot become once it is written out, from vibrato and slides down to the 55 Hz floor — and that has its own page at Humming to MIDI: what a hummed melody can and cannot become.

Hum a line into the converter and watch the piano roll as you move the controls — the Audio to MIDI Converter runs entirely in your browser, so every setting above is yours to test in a few seconds.

Related guides