LocalMIDI

Audio to MIDI · Note cleanup

Missing short notes? Check the filters before recording again.

A note can disappear because it is too short, too quiet, outside the selected pitch range, or not detected as a stable pitch. Lowering the shortest-note setting only addresses the first case.

The immediate answer: in LocalMIDI, a detected segment shorter than “Shortest note kept” is discarded. Lower that setting if an intentional quick note is missing. If nothing returns, check input sensitivity and pitch range; a duration filter cannot recover a pitch the detector never found.

A duration filter is a sieve, not a repair tool

Short fragments are not automatically mistakes. A fast ornament, a picked note, and a stray pitch fragment can all be brief. The duration control cannot tell which one you intended. It applies one cutoff to detected segments, so a cleaner-looking piano roll can also be a less complete transcription.

Short segments can be removed by a duration cutoffAn illustrative row of three detected segments becomes a row with only the longer segments. The short middle segment is filtered out.Detected segmentsAfter duration filteringConcept diagram: rectangle widths are illustrative, not measured audio.
An original schematic of filtering: a missing segment may have been detected first, then removed.

What LocalMIDI actually checks

The current shortest-note slider starts at 90 milliseconds and allows values from 30 to 600 milliseconds. The segmentation code calculates duration from the first and last frame, adds one analysis hop, and discards a segment only when its duration is below the selected cutoff. Equality with the cutoff passes this particular check. These are implementation details, not an accuracy benchmark.

Before duration filtering, a frame must pass an amplitude threshold, a confidence threshold, and a positive detected-pitch check. Input sensitivity uses the loudest analysis frame as its reference. Its displayed percentage is scaled internally; it is not a probability that a note is correct. A louder sound elsewhere in the clip can change which quieter frames clear that relative threshold.

After segmentation, the code averages the segment's pitch, applies transposition, rounds to a MIDI note number, and checks the selected lowest and highest notes. A note outside that range is removed even if it is long enough. Check the range with transpose in mind: the range check happens after transposition.

There is also a limitation that a slider cannot undo. Neighboring voiced frames with sufficiently similar pitch can join into one segment. Two repeated notes of the same pitch may therefore appear as one sustained note when the detector does not identify a separating gap. Reducing the duration cutoff does not split that sustained event into two.

Use a phrase-first recovery pass

  1. Pick one short phrase containing the missing note and listen to where it belongs. Leave grid snapping off while judging whether the event exists.
  2. Lower “Shortest note kept” and inspect the result. If the desired note returns together with unwanted fragments, keep the useful note and remove the fragments in your MIDI editor.
  3. If the note stays absent, lower input sensitivity cautiously and check the lowest and highest note settings. Change one control at a time so you can identify which filter matters.
  4. If repeated notes became one long event, split it in your editor or record a clearer separation. If pitch is absent or unstable, use a cleaner single melodic source instead of pushing every filter to its minimum.

Keep the unedited export as a reference. A useful cleanup decision is not “did the note count increase?” but “did the phrase regain the musical event I intended?” More fragments can mean more editing, not more accuracy. This workflow is editorial guidance derived from the controls and filtering order; it is not a reported test.

Do not confuse a missing note with a misplaced note

If the note exists but lands at the wrong beat, read the BPM and timing guide. If you are unsure what survives a vocal conversion, start with what voice to MIDI produces. To try a duration adjustment, open the converter and compare the same phrase before and after changing one setting.