MIDI, by ear
MIDI connects synths, drum machines, and DJ controllers, but it carries no sound at all. It carries instructions. This guide teaches you the language, and every press shows the actual bytes while a live synth follows them.
Three bytes went down the wire when you pressed, and three more when you let go. The synth on this page read them and made the sound itself. The gesture travels while the sound stays in the instrument. That separation makes electronic music composable. Let's learn the language.
Sound isn't sent. Intent is.
In 1983, synth makers had a problem: a Roland couldn't talk to a Sequential, and nobody's keyboard could play anybody else's box. So the rivals did something almost unheard of: they agreed on one shared language and gave it away for free. MIDI: the Musical Instrument Digital Interface. Forty years later it is still version 1.0 at heart, still everywhere, and still one of the most successful standards ever shipped.
The design is compact. A MIDI message is usually just three bytes: three numbers between 0 and 255. The first byte is the status: what kind of event this is, and which channel it's for. The next two are data: which note, how hard. That's it. Press a key and the wire carries 90 3C 64: "note on, middle C, pretty firm." Release it and 80 3C 40 follows: "note off." The receiving instrument decides what those instructions sound like.
Think of a player piano roll: holes in paper that mean "press this key now." MIDI is that roll, moving at the speed of electricity. It's why one melody can play a piano today, a choir tomorrow, and a wall of acid bass on Friday: the notes never married the sound.
128 notes, and how hard you meant them.
MIDI numbers every pitch from 0 to 127: about ten octaves, more than a piano. Middle C is note 60. Add 12 and you're an octave up. That's the entire pitch system: one byte, one number line.
The third byte is where the feel lives. Velocity measures how fast the key was moving when it hit bottom. In practice, it captures how hard you played on a scale from 0 to 127. A good instrument maps velocity to more than volume: hit harder and a real string doesn't just get louder, it gets brighter. Synths copy that trick by letting velocity open the filter. One byte carries the difference between a whisper and a stab.
Here's the detail that makes drum machines swing: velocity is why two identical patterns can feel completely different. The notes and grid stay the same, but the third bytes change. Those small differences create the groove.
Every knob is a sentence.
Notes are only half of music. The other half is continuous control: riding a filter, easing a fader, or leaning on a mod wheel while notes ring. MIDI carries all of it with one message type: Control Change, or CC. Status byte B0, then a controller number (which knob), then a value (where it's turned). Turn a physical knob and it doesn't send one message: it sends a stream, dozens per second, tracing your hand.
A few controller numbers are famous. CC 1 is the mod wheel, on the left of nearly every keyboard since the Minimoog. CC 74 is "brightness," which almost every synth wires to the filter cutoff. CC 7 is volume, CC 64 the sustain pedal. But most of the 128 slots are unassigned on purpose: which is why every DJ controller ever made can map "this knob" to "that parameter." MIDI mapping is CC assignment. When you map a filter to a knob in Rekordbox, you're doing protocol work.
Pitch bend uses higher resolution.
Notes snap to a grid: twelve steps per octave, no in-between. But real musicians live in between: guitar bends, vocal slides, a 303 line smearing up to its note. MIDI's answer is pitch bend, a wheel that nudges every sounding note smoothly away from the grid and springs back to center when you let go.
Pitch bend is an exception in the original MIDI design. Every other value in MIDI fits in 7 bits: 128 steps. For pitch, 128 steps isn't enough: your ear would hear the staircase. So pitch bend gets two data bytes glued together: 14 bits, 16,384 positions, with 8,192 as dead center. It is the only place in the original protocol with this extra resolution because the ear notices small steps in pitch.
E0 00 40
One wire, sixteen addresses.
Look back at that status byte, 90. Only the 9 means "note on." The second half of the byte is a channel, 1 through 16: an address written on the front of every message. 90 is note-on for channel 1; 91 is the same message for channel 2.
Here's the part beginners miss: the wire carries everything to everyone. Channels don't split the cable: every instrument hears every message and simply ignores what isn't addressed to it. Set your bass synth to channel 1 and your lead to channel 2, and one cable runs a whole band. It's why General MIDI put drums on channel 10, and why a single old-school sequencer could conduct a rack of hardware like sixteen musicians reading one score.
A score that plays itself.
Once music is messages, something huge follows: messages can be stored, edited, and replayed. A sequencer is just a clock that sends note-ons at the right moments. Record a take, drag one note, quantize the timing, or transpose everything up a fifth. You are editing a list of numbers, not audio. A DAW piano roll shows that list visually, and a .mid file saves it as a compact score rather than a recording.
Timing rides the same wire. MIDI defines a clock message that ticks 24 times per quarter note, which is how drum machines chained together stay locked to one tempo: the ancestor of every sync button you've ever pressed.
Speak it yourself.
This instrument brings the vocabulary together: notes with velocity, a mappable brightness knob, pitch control on the arrow keys, and a monitor that reads every byte. If you own a MIDI keyboard or DJ controller, plug it in and press connect a controller: this page speaks fluent hardware. (Browsers only allow that on a secure page and will ask permission; if it's not available here, the on-screen keys speak the identical language.)
Intent can travel separately.
MIDI demonstrates a core idea behind Oto. In 1983 the industry separated what you meant from how it sounded. Once intent became data, music became easier to edit, move, and share. Those three-byte messages made sequencers, DAWs, controllers, and home studios possible.
Oto runs the same move one level up. Where MIDI encodes "C4, this hard, now," Oto encodes "warmer for the next ten minutes, peak around one." A drafted set is a score of intents: reviewable before it plays, editable while it plays, portable across whatever library and gear tonight happens to hold. And when you map a physical controller to Oto, the loop closes completely: your hardware sends CC messages, chapter three's exact vocabulary, into a system whose whole job is translating gesture into a night.
| midi says | oto says |
|---|---|
| 90 3C 64 · note on, this hard | "open with something warm" |
| B0 4A ·· · ride the brightness | "darker into the next one" |
| E0 ·· ·· · lean off the grid, come home | "hold the moment… now land it" |
| clock · 24 ticks a beat | one pulse for the whole room |
| a .mid file · the score, not the tape | a draft of the night, editable until it plays |
Forty years of dance music run on a protocol you can now read byte by byte. New music interfaces can build on the same idea in plainer words.
Oto Labs · keep listening
Continue by ear.
Oto · private beta
Turn intent into a night.
You just spoke to a synth in raw bytes. Oto lets you direct an entire set in plain language.
Join the waitlist