What the MIDI file actually contains
Before you import anything, it helps to know what is in the file. Our converter writes a Standard MIDI File with a specific structure that every DAW understands:
- Header chunk (
MThd): Declares the file as SMF format 0 — meaning one track — with a division of 480 PPQ (pulses per quarter note). PPQ is the timing resolution. Every quarter note is divided into 480 ticks. - Track chunk (
MTrk): Contains a tempo meta-event setting BPM to 120, followed by note-on and note-off events for each detected pitch, and ends with an end-of-track meta-event. - Note events: Each detected note becomes a pair: a
note-onevent (channel 0, velocity 90) and anote-offevent (channel 0, velocity 0). The pitch is a MIDI note number derived from the detected frequency using the formulaMath.round(69 + 12 * Math.log2(f / 440)), which maps frequency to the nearest semitone on the standard MIDI scale where 69 equals A4 (the A above middle C at 440 Hz). - Timing: Note start times and durations are calculated from the sample positions where the pitch detector found each note. The converter uses a hop size of
0.023 * sampleRatesamples and a window of0.046 * sampleRatesamples to walk through the audio. Each note's start and end are converted from sample offsets to seconds, then multiplied byPPQ * BPM / 60to get tick positions. Notes shorter than the minimum duration threshold are filtered out.
This means the file arrives with tempo and timing already set. Your DAW reads the tempo meta-event and positions the notes on its grid accordingly. You do not need to guess the BPM — it is in the file.
Why the tempo is fixed at 120 BPM
The converter sets BPM to 120 in the MIDI file header because it detects pitches from audio but does not estimate tempo. The note timings are in seconds (derived from sample positions), and the converter translates those seconds into ticks at 120 BPM. When you import the file, your DAW may let you change the project tempo without changing the note positions if you enable time-stretching, or the notes will reposition to match your project tempo if your DAW reinterprets the MIDI timing. Either way, the note order and relative spacing are preserved.
Step-by-step: from MP3 to DAW
Step 1: Prepare your audio
The converter detects one pitch at a time — it is monophonic. For the best result, give it a clean single-line melody. A vocal take, a hummed idea, a whistle, a bass line played alone, or a synth lead soloed in the mix. If you feed it a full mix with drums, chords, and multiple instruments, the detector will lock onto whatever frequency is loudest in each window and the output will not be usable. If you need to isolate a melody from a full mix, solo the track in your DAW first, export it, then convert that.
Step 2: Convert
Load your file on the converter page. The tool accepts MP3, WAV, OGG, M4A, AAC, FLAC, and Opus files. Click convert. The pitch detector runs through the audio frame by frame, identifies the dominant frequency in each window, maps it to the nearest MIDI note number, and tracks when each note starts and stops. The result is displayed as a note list showing the note name, start time in seconds, and duration in seconds for each detected note. You can read this list before downloading to sanity-check the output.
If the note list looks wrong — notes in the wrong octave, spurious short notes, or gaps where there should be notes — see our guide on why your MP3 to MIDI sounds bad for what causes these issues and how to fix them.
Step 3: Download the .mid file
Click the download button. You get a .mid file named after your original audio file. The file is a binary SMF — it contains note data, not audio. The bytes are generated in your browser from the detected note array using the buildMidi function, which constructs the MThd header, the MTrk track chunk, the tempo meta-event, the note-on and note-off events with VLQ-encoded delta times, and the end-of-track marker.
Step 4: Import into your DAW
Every major DAW reads Standard MIDI Files. The import method differs slightly by program:
| DAW | How to import |
|---|---|
| Ableton Live | Drag the .mid file into the arrangement view or a MIDI track. Live reads the tempo from the file and creates a MIDI clip with the notes. |
| FL Studio | Drag the .mid file onto the step sequencer or the piano roll of an instrument channel. FL Studio imports the notes into the channel. |
| Logic Pro | Choose File > Import > MIDI File, or drag the .mid into the tracks area. Logic creates a new MIDI track with the notes. |
| Cubase | Choose File > Import > MIDI File, or drag the .mid onto a MIDI track. Cubase reads the tempo and note data. |
| Studio One | Drag the .mid file into the arrangement. Studio One creates a MIDI part with the notes. |
| Reaper | Choose Insert > Media File, or drag the .mid onto a track. Reaper imports it as a MIDI item. |
| Bitwig Studio | Drag the .mid file into the arrangement or a clip launcher slot. Bitwig creates a MIDI clip. |
Step 5: Assign an instrument and fix the octave
The imported notes are on MIDI channel 0. Assign any virtual instrument to that track — a piano, a synth, a sampler, whatever fits your beat. The notes will play back at the pitches and timings the converter detected.
If the melody is in the wrong octave, select all notes in the piano roll and transpose them up or down by octaves. This is common because the pitch detector maps frequency to the nearest MIDI note number, and the octave it lands in depends on the source frequency. A hummed melody might land in octave 3 or 4; a bass line might land in octave 1 or 2. Your DAW's piano roll lets you shift notes by octaves without changing their relative intervals.
Step 6: Quantize and adjust
The note timings come from real audio, so they are human — not snapped to a grid. If you want them locked to your beat, use your DAW's quantize function. Select the notes in the piano roll, choose your quantize grid (1/16 notes is a common starting point), and apply. Your DAW will snap each note's start time to the nearest grid position.
If you prefer to keep the human feel, leave the notes as they are. The timing is preserved from the original performance through the detection pipeline into the MIDI file.
Step 7: Build your beat around it
Now you have a melody in your DAW on an instrument of your choice, with timing from a real performance. Add drums, bass, harmonies, and arrangement around it. The MIDI notes are fully editable — you can change pitches, move notes, copy phrases, extend durations, and build variations. The melody is a starting point, not a locked take.
What the note list tells you before you import
Before you download, the converter shows you a note list. Each entry has three pieces of information: the note name (like C4 or F#3), the start time in seconds, and the duration in seconds. This is the same data that gets written into the MIDI file — the note name is the MIDI note number converted to scientific pitch notation, the start time is the sample offset divided by the sample rate, and the duration is the difference between the end and start sample offsets divided by the sample rate.
Read through this list before importing. If you see notes that should not be there — random pitches where the audio was silent, or octave jumps where the detector locked onto a harmonic — you can catch them here and decide whether to clean them up in the piano roll after import, or reconvert with better source audio.
Verifying the result with MIDI to WAV
After importing the MIDI into your DAW and assigning an instrument, you might want to hear what the raw MIDI sounds like without your production around it. You can run the .mid file back through MIDI to WAV to synthesize the notes and compare the playback to your original recording. If the pitches match and the timing feels right, the conversion worked. If the output sounds wrong, the note list from step 2 will tell you where the problem is — and the fixes are in the piano roll.
What this workflow does not do
The converter is monophonic. It detects one pitch per window. If your source audio has chords, harmonies, or multiple instruments playing at once, the detector picks the loudest frequency and ignores the rest. You will not get a chord progression out of it — you will get a single melody line. If you need multiple parts, convert each one separately from isolated audio.
The converter also does not detect expression. MIDI files can carry velocity, pitch bend, and continuous controller data, but this tool writes a fixed velocity of 90 for every note-on event and does not write any pitch bend or CC events. The dynamics and expression of the original performance are not captured — only the pitch contour and timing. You add expression in your DAW.
Bottom line
The workflow is: record or isolate a melody, convert it on this site, download the .mid file, drag it into your DAW, assign an instrument, fix the octave if needed, and build your beat. The file arrives as a Standard MIDI File with 480 PPQ and 120 BPM, with notes at the timing the pitch detector found in your audio. No upload, no login, no server in the middle. You get a MIDI file you can edit, quantize, and arrange however you want.