Audio → MIDI

Audio to MIDI Converter

Studio One audio to MIDI: what stereo and hard pan cost the notes

The short answer: this converter has no stereo concept at all — before a single FFT runs, analyze() adds the channels together and divides by their count, so your Studio One bounce arrives as one waveform, (L + R) / 2. A pan knob therefore cannot add, delete or retune a note: across an equal-power pan sweep from hard left to hard right we got 4 of 4 notes at every one of the seven angles, with pitches 60,62,64,67 unchanged and velocity moving only 102 → 105 → 107 → 107 → 107 → 105 → 102. Hard panning costs 11 velocity steps against a mono or identical-channel bounce (113), and that is the entire cost. What can destroy notes is anything that makes the two channels disagree: one polarity-flipped channel cancels exactly and returns 0 notes and a 53-byte .mid, and delaying one channel by exactly one analysis frame (11.610 ms) collapses the four notes to 2 (60,64), while 49.977 ms produces 9 note objects with phantom high pitches. So export the part as mono, or as stereo with the wanted material identical in both channels; never put two different parts on left and right, and leave stereo-widening and sample-delay processing off the bounce bus. Conversion runs entirely in your browser — no upload, no account, nothing to install.

1. Should you convert here, install something, or stay in Studio One?

Before the numbers, the honest decision. Three situations, three answers, each pinned to a value measured on this converter rather than to an opinion about a host application.

Convert it right here. You have one clean line and you want its pitches as editable notes. Panning is not a reason to re-bounce: an equal-power pan sweep at 0, 15, 30, 45, 60, 75 and 90 degrees returned 4 of 4 notes at every angle, with velocity never leaving the 102–107 band. Export the part, drop the file on the converter, and take the .mid and .csv. You will fix velocity in Studio One afterwards, not pitches.

Go install a plugin, or use the DAW's own capture. You need pitch bend, per-note expression, or note-by-note correction of a performance. Our four-note export is an 89-byte file with 0 pitch-bend events, 0 program-change events and 1 note channel; a glide or a vibrato has nowhere to land (what pitch bend detection adds sets out the gap, and when a plugin is worth installing covers the trade). Walking away is the right call here, and saying otherwise would waste your time.

Studio One is not optional. You need separate parts, stems, drums, or a chosen instrument sound. We put a C-phrase on the left and a different G-phrase on the right: polyphonic mode returned 5 objects including a G5 (79) that was never played, and monophonic mode collapsed the whole thing to 1 note (64). No export setting will turn one audio file into two tracks. Do the separation in the DAW, then bring each isolated line back here; why the converter cannot pull out just one voice and why the two modes fail differently describe those walls in numbers.

Everything after this section assumes you are in the first case. That is the one where a browser converter is genuinely the fastest path.

2. The route, in three sentences

Export the region from Studio One as one audio file, mono where possible, with the wanted part at equal level in both channels if you must bounce stereo. Drop it on this converter, download the .mid and the .csv, then drag the .mid back into your Studio One project and load an instrument on the track. The rest of this page is about the one export choice left open — what the stereo bus does to the samples — and which of those effects actually cost you notes.

3. What we measured, and how

Every number below comes from running this site’s real dsp.js and midi.js in Node on synthesised material whose correct answer we already knew. No third-party tool was measured and no figure is estimated. The reference clip is four notes (C4 261.63 Hz, D4 293.66 Hz, E4 329.63 Hz, G4 392.00 Hz), 0.5 s each, with a mild harmonic series and 10 ms ramps, rendered at 22 050 Hz with a peak amplitude of 0.35. Unless stated: sensitivity 60, shortest note 60 ms, 120 BPM, quantize off, polyphonic mode. Channel layouts were built by writing known sample arrays into a two-channel buffer; nothing was recorded through a sound card.

The analysis grid is fixed by the converter, not by your Studio One project: audio is resampled to 22 050 Hz, read with a 2048-point FFT stepped 256 samples at a time, so one frame is 11.610 ms (86.13 frames per second) and one bin is 10.7666 Hz. Monophonic search runs 55–1800 Hz; polyphonic peaks are read up to 4000 Hz with at most 6 peaks per frame. Your 48 kHz session and its 3/4 time signature do not enter that arithmetic — we ran the same melody at 44.1k, 48k and 22.05k and the note list was identical every time.

We already set out the basic mix-down in what happens to a stereo file first, where a single sustained note was swept through partial cancellation. That page is about the mix-down itself. This page keeps a four-note phrase fixed and varies what a Studio One bounce actually puts on the bus — pan law, polarity, different material per channel, and inter-channel delay — and reports the note count, which that earlier table never measured. Our four-DAW export overview has one four-row channel table; the numbers here are a separate, fresh set of runs and are not reused from it.

4. There is no left and right: only the signed sum

The whole mechanism is five lines at the top of analyze() in dsp.js:

var chans = audioBuffer.numberOfChannels;
for (c = 0; c < chans; c++) { d = getChannelData(c); for (i = 0; i < len; i++) mono[i] += d[i]; }
if (chans > 1) for (i2 = 0; i2 < len; i2++) mono[i2] /= chans;

After that, one FFT sees one array. There is no side channel, no mid/side decode, no per-channel gain, no pan metadata. To prove nothing else happens downstream, we bypassed the stereo path entirely: we summed L and R by hand into a one-channel buffer and fed that to the same analyser. With a C-phrase on the left and a G-phrase on the right, the two-channel input returned 60,67,79,64,67 in polyphonic mode and 64 in monophonic mode; the hand-summed mono input returned exactly the same two results, object for object. Stereo is not processed, it is discarded.

That gives a clean prediction: if the right channel is r times the left, the net signal is (1 + r) / 2 times the left, and the note list should stay intact for every value except r = −1. We swept the full signed range in nine steps:

Right channel = r × left, four-note phrase, polyphonic mode. Fresh runs, 2026-11-13. Velocity is read from the exported .mid.
rnet (1+r)/2rmsMaxNotesVelocityPitches
−1.000.00000.000000—none
−0.750.12500.0401547960,62,64,67
−0.500.25000.0803049060,62,64,67
−0.250.37500.1204549760,62,64,67
0.000.50000.16061410260,62,64,67
0.250.62500.20076410560,62,64,67
0.500.75000.24091410860,62,64,67
0.750.87500.28106411160,62,64,67
1.001.00000.32121411360,62,64,67
Chart of one four-note phrase with the right channel set to r times the left, for r from minus 1 to 1: at r = minus 1 the channels cancel and 0 notes are returned in a 53-byte MIDI file; from r = minus 0.75 to 1 all 4 notes survive with velocity 79, 90, 97, 102, 105, 108, 111 and 113, while rmsMax rises linearly from 0.04015 to 0.32121.
Figure 1. One cliff, one smooth curve. Exact polarity inversion is the only channel setting in the sweep that removes a note; every other value changes velocity alone. All nine points are real runs of this site's analyser.

The file sizes say the same thing. A mono file, a stereo file with L = R, and a hard-left file all export 89 bytes; only the velocity byte differs (113 or 102). The polarity-flipped file exports 53 bytes — header, tempo, time signature and end-of-track, with no note events at all. A hard-panned part and a stereo file where both channels are simply 6.02 dB down give the identical four-note list at velocity 102: to this engine, a pan knob and a fader are the same control. Why export level changes velocity and not pitches explains the formula behind that ladder.

5. Equal-power pan: the centre is loudest, hard pan is quietest

A pan law is the one stereo control every Studio One bounce uses, so it is worth measuring properly. With a constant-power law, L = cos(t) and R = sin(t), the summed amplitude is (cos t + sin t) / 2 — which peaks at 45 degrees, not at the edges. We swept seven angles on the same phrase:

Equal-power pan, four-note phrase, polyphonic mode. Note count and pitches are identical in every row.
Pan angle(L+R)/2 factorrmsMaxNotesVelocityPitches
0° (hard left)0.50000.16061410260,62,64,67
15°0.61240.19670410560,62,64,67
30°0.68300.21939410760,62,64,67
45° (centre)0.70710.22713410760,62,64,67
60°0.68300.21939410760,62,64,67
75°0.61240.19670410560,62,64,67
90° (hard right)0.50000.16061410260,62,64,67
Two-panel chart of an equal-power pan sweep on one four-note phrase: velocity rises from 102 at hard left to 107 at the centre and falls back to 102 at hard right, while the note count stays flat at 4 of 4 and the pitches 60, 62, 64, 67 never move. A mono or identical-channel stereo bounce reaches velocity 113, above anything the pan law produces.
Figure 2. Pan moves loudness, not notes. The green line never leaves 4/4; the blue curve is a pure loudness effect. The dashed 113 line is a mono or L = R bounce, which no pan angle reaches.

That is the direct answer to “does hard pan cost me notes?”: it costs 11 velocity steps against a mono bounce and 5 steps against the centre of the pan law, and it costs nothing else. Notice the asymmetry people do not expect: a pan law is designed to keep perceived loudness constant, but this converter only sees the arithmetic sum, so the centre of the pan is the loudest place and the extremes are the quietest. If you hard-pan a part in Studio One because it sits better in the mix, expect a uniformly softer MIDI part. Fix velocity in the DAW afterwards — what the browser controls can and cannot change explains why the converter cannot do it for you, and why converted MIDI sounds robotic covers the flat dynamics more generally.

6. What actually deletes notes: phase and inter-channel delay

Pan is harmless because it only changes amplitude. The damage starts when the two channels carry the same phrase at different times or with different polarity — exactly what a stereo-widener, a Haas delay, a phase-invert button or a sample-delay insert does on a Studio One bus. The sum is then a comb-filtered version of the phrase before any control on this page has run.

Same four-note phrase, right channel delayed by N samples before the (L + R) / 2 sum. Polyphonic mode, sensitivity 60.
DelayNote objectsPitches returnedWhat happened
0 ms460,62,64,67clean reference, velocity 113
0.045 ms (1 sample)460,62,64,67still clean, velocity 113
11.610 ms (256 samples)260,64exactly one analysis frame: D4 and G4 vanish
24.989 ms (551 samples)572,79,62,64,67two octave duplicates appear
49.977 ms (1102 samples)960,74,81,90,62,74,81,64,67phantom high notes 74 / 81 / 90
100.000 ms (2205 samples)660,90,62,62,64,67duplicated D4 and a phantom 90
Bar chart of note objects returned when one stereo channel is delayed: 4 objects at 0 ms and at 0.045 ms, 2 at 11.610 ms which is exactly one analysis frame, 5 at 24.989 ms, 9 at 49.977 ms with phantom high notes 74, 81 and 90, and 6 at 100 ms. The correct four notes are shown as a dashed reference line.
Figure 3. One frame of inter-channel delay is a wall. A single-sample offset is invisible; exactly one 11.610 ms frame removes half the notes; longer offsets invent pitches that were never played.

There is a sharp edge at one frame, not a gradual decline. At 0.045 ms the result is indistinguishable from the reference; at 11.610 ms — the exact hop size of the analyser — the four notes collapse to 60,64 at velocity 112/107. Two overlapping copies of the phrase, one frame apart, produce a spectrum whose peaks no longer line up with the harmonic template, so the salience gate rejects the frames. Raising sensitivity cannot repair a spectrum that has already been summed; the fix has to happen in Studio One, before the bounce. The four-step troubleshooting order puts format and mode ahead of sensitivity for exactly this reason, and the cleanup passes are what remove phantom objects if they have already reached the file.

Two related cases round out the picture. A polarity flip on one channel cancels to rmsMax = 0 and 0 notes, a 53-byte file. Different material per channel is worse than either: a C-phrase on the left and a G-phrase on the right gave 5 polyphonic objects (60,67,79,64,67, the 79 a G5 that was never played) and 1 monophonic note (64). Both are the same root cause — the converter never sees two sources, only their sum — and neither is a detection error that a mode switch can undo. What the 6-peak ceiling does to dense material covers the related fragmentation problem.

7. What the .mid contains, whether the bounce was panned or not

The cleanest proof that pan is a loudness-only effect is the exported file. For the four-note phrase, a mono bounce, an identical-channel stereo bounce and a hard-left bounce all produce the same 89-byte Standard MIDI File: format 1, 2 tracks, 480 ticks per quarter note, 4 note-on and 4 note-off events on 1 channel, meta events FF51 (tempo), FF58 (4/4) and FF2F (end of track), with 0 program-change, 0 pitch-bend and 0 text events. The only bytes that differ between the mono and hard-left exports are the velocity bytes, 113 versus 102. At the opposite extreme, the polarity-flipped bounce produces 53 bytes with no note events at all.

Because the writer emits no lyric, text or track-name meta events, there is nowhere for a pan position, a channel label or an instrument name to be recorded — what a MIDI file actually is explains why it holds instructions rather than sound, and three routes to a MIDI file, compared byte by byte shows that a recording, a hand-drawn part and a score export all end in this same shape. If you want the exact seconds behind each onset rather than ticks, the seven-column CSV is the closer record of what the analyser saw.

8. Studio One export checklist, in order

  1. Export mono for any single line. A mono or identical-channel stereo bounce gives all 4 notes at velocity 113; a hard-panned one gives the same 4 at 102. The note list never changes.
  2. Keep the same material in both channels at the same level. A C-phrase on L and a G-phrase on R produced 5 polyphonic objects and 1 monophonic note, not two parts.
  3. Bypass stereo wideners, phase-invert and sample-delay inserts on the bounce bus. One polarity flip returned 0 notes; one 11.610 ms inter-channel delay returned 2; 49.977 ms returned 9 objects.
  4. Do not re-bounce to fix velocity. Pan and fader both land on the same net-amplitude curve (79 → 113 across nine signed ratios). Set velocity in Studio One after import.
  5. Keep the region long enough. Channel layout will not delete a note, but a tightly trimmed region will — a region under 200 ms returns none.
  6. Choose the file format on its own merits. One .m4a can be lossless ALAC or 32 kbps AAC; that choice has a measured effect of its own, and how to prepare the input file covers the container side.
  7. Check the CSV before the piano roll. If the pitch column is right and every velocity is uniformly low, suspect the pan law; if pitches are missing or duplicated, suspect phase or delay on the bus.

The BPM box is not a channel fix either: it is written verbatim into the file and moves no notes — how accurate the written tempo is measures that exactly. If you are bouncing several parts, do them one file at a time; why there is no folder-drop batch button explains the workflow. On a phone the same page works with a file from the share sheet; mobile audio to MIDI covers the input differences.

What Studio One has built in (context only, not our measurements)

Studio One can work with MIDI parts and can export audio regions, so there is a route that never leaves the project. That is a menu-level fact about the application, not a number from this site, and it is not what this page tests. The reason an exported file is still worth discussing is simpler: an audio file is the one artifact any host can hand to this page, and an SMF .mid is the one artifact any host can take back. For the hosts where we walked the import path separately, see FL Studio, Ableton Live and Logic Pro. If your goal is per-note expression rather than a note list, stay in the DAW: our 89-byte export has nowhere to store it.

Questions people actually ask

Can Studio One convert audio to MIDI?

Yes, but the practical answer for an exported file is that the channel layout, not the host, decides the result: this converter averages the two channels into (L + R) / 2 before it detects anything, and across a full 0°–90° pan sweep it returned 4 of 4 notes at every angle, with velocity only moving between 102 and 107. What you lose on a hard pan is 11 velocity steps against a mono bounce, not a single pitch. Export the region, drop it on this converter, and fix velocity in Studio One afterwards. Staying inside the DAW only becomes necessary when you need pitch bend or separate parts: the file written here has 0 pitch-bend events and 1 note channel.

Can you convert audio to MIDI in Studio One?

If you mean without leaving the project, that depends on the DAW's own capture, which is not what we measure. If you mean “will my Studio One bounce convert properly here”, yes — with one condition: do not bounce two different parts onto left and right. When we did that, polyphonic mode returned 5 objects including an unplayed G5 (79) and monophonic mode returned 1 note. Export each isolated part as its own file; a mono bounce of the four-note phrase gave all 4 notes in an 89-byte .mid. The four-DAW export overview covers the other export settings that change the result.

Why are some notes missing or wrong?

On a stereo bounce the first thing to check is not the sensitivity slider but the bus processing, because the channels are summed before the FFT. A polarity flip on one channel cancels exactly and returns 0 notes and a 53-byte file; a delay of exactly one analysis frame (11.610 ms) on one channel collapses the four-note phrase from 4 notes to 2 (60,64). Neither is recoverable by any control on this page — the samples were already changed. Bypass the widener or delay and re-export; the four-step troubleshooting order then covers format, mode, sensitivity and shortest note for everything else.

How do I fix notes that are an octave too high or low?

Check the stereo bus before you edit the notes. A 49.977 ms delay on one channel produced 9 note objects including phantom high pitches 74, 81 and 90; a 24.989 ms delay produced octave duplicates 72 and 79, and putting a melody on L and a pad on R produced an unplayed G5 (79). These are artefacts of the summed waveform, not a mis-set pitch range, so editing them in the piano roll will not stop them coming back on the next conversion. Re-export with the delay or width bypassed; if the objects are already in the file, the cleanup passes remove them, and what the six-peak ceiling does to chords explains the other common source of octave ghosts.

Convert an exported file now — runs in your browser, nothing is uploaded.

Related guides