Synth wars: The story of MIDI (2023)
151 points
17 days ago
| 13 comments
| musicradar.com
| HN
somat
15 days ago
[-]
MIDI is pretty great, I am about as musically inclined as a wet rag, but I recently bought a bank of midi sliders as it was the cheapest way to get a bunch of dials, buttons and sliders. At first I was looking for libraries to interface with it. But after looking at the spec, it turns out midi is dead simple and designed to be easy for hardware to parse. Super easy to read and generate. So I am sitting here happily hacking away building the dispatch interface for this thing. The icing on the cake is that it turns out openbsd's sndiod includes a midi transport and control system. Which was just one less thing to worry about.

https://www.akaipro.com/midimix

https://computermusicresource.com/MIDI.Commands.html

http://man.openbsd.org/sndiod#MIDI_CONTROL

Update: that was not a great commands introduction, here Are my thoughts. if bit 1 is set it is a command otherwise it is data. commands are split into two half bytes(nibbles?) the first 4 are what command it is(first bit is high so 3 bits or 8 commands) the second four are the channel. some commands have two following data bytes(low first bit remember) and some have one. The main exception is the system command. which is complicated

reply
squarefoot
14 days ago
[-]
You may find also interesting the projects at ucapps.de, and on the commercial side, the Elgato Stream Deck which has FOSS support.

http://www.ucapps.de/

https://www.elgato.com/us/en/p/stream-deck-mini

https://github.com/streamdeck-linux-gui/streamdeck-linux-gui

reply
dmix
15 days ago
[-]
Novation LaunchControl XL > akai midimix IMO

Novation has a web browser editor for customizing the 8 midi banks, using what I assume is the web USB protocol so it can be customized on tablets too. It’s been a joy to use and set up custom workflows, you one for dawless, one for ableton etc.

reply
akx
14 days ago
[-]
Web MIDI API and sysex messages more likely!
reply
glimshe
15 days ago
[-]
MIDI should be studied by anyone interested in protocol design. Very few protocols had its staying power - despite not being perfect for every type of music, it has done its job admirably for close to 50 years due to its simplicity and flexibility.
reply
TazeTSchnitzel
15 days ago
[-]
I think we are lucky it was created when it was. The temptation to make a much more complex and fragile protocol would have been harder to avoid if they weren't constrained by what could be cheaply and efficiently implemented on microcontrollers in the early 1980's.
reply
makapuf
15 days ago
[-]
MIDI as a non-proprietary, non-patented, non ad supported or privacy invasive protocol opened so many innovation from synth and others electronic musical instruments constructors or makers. We really need this type of candid innovation back.
reply
elihu
14 days ago
[-]
It's great that it's an open standard, but I feel like the MIDI Association is kind of dropping the ball on openness. You have to register with midi.org just to read the specs. That's not a huge hardship, but it's kind of off-putting.

It also feels like corporate behemoths are running the show. You can register as a site user for free and you can buy a SYSEX Id number for $240 a year, but to actually have a say in anything it looks like you need to be a corporate member.

https://midi.org/corporate-membership-app

Most of the interesting advances in musical instruments these days seem to be coming from small companies making unusual products. Things like the Osmose, the Linnstrument, the Continuum, and so on. MPE serves that community decently well, but I feel like we could at least in theory do a lot better by ditching the piano-centric assumptions built in to MIDI and hashing out a new protocol as a community effort.

reply
detourdog
15 days ago
[-]
Midi being an “artist” tool places it more as a medium like paint. The artist was able to use it to build complex worlds.

MIDI’s cousin RS-422 existed in a technical environment but probably enjoys as much use as MIDI but technicians have many protocols to choose from. the artist just needs to get it speak MIDI to feel in control and the artist generally has fewer stakeholders, which I believe helps maintain continuity of an implementation.

reply
epcoa
15 days ago
[-]
> MIDI’s cousin RS-422

RS-422 is a differential electrical interface standard, while MIDI specifies both a current loop electrical interface and a high level protocol, the latter of which is probably its most defining characteristic today as MIDI can run over any serial interface. Today most commonly it runs over USB or its own current loop signaling, and has less commonly in the past been used over RS-232 or RS-422 from time to time. This is to say, it’s a stretch that MIDI and RS-422 are cousins. (Standard MIDI interfaces typically seen with the 5 pin DIN connector are not RS-422 if that is what you’re thinking)

reply
detourdog
15 days ago
[-]
Actually it may have been I mixed up RS-485 and RS-422 the project I got this notion from was research in the mid 90's.

I remember a project that I used either 422 or 485 as jumping off point for MIDI because I thought at the time that MIDI grew from the spec.

reply
epcoa
15 days ago
[-]
It was probably RS-422, because RS-422 as a transport for MIDI back in the day was not uncommon as a desktop serial interface (like on old Macs and their lineage), but neither was FireWire later and now of course USB, that’s why I wouldn’t refer to them as cousins any more than USB and MIDI are. RS-485 is electrically similar (and in some aspects compatible) to RS-422 but with provisions for multi-point networks due to switchable drivers. The MIDI spec and the signaling is not related to either.

https://midi.org/midi-1-0-detailed-specification

reply
detourdog
15 days ago
[-]
Sounds like cousins to me:)
reply
epcoa
15 days ago
[-]
Sure whatever, to be clear the RS-422 port on a Mac was a generic serial port not a MIDI port per se. If you were running a PC at the time you would often use the 9 or 25 pin RS-232 port for the same purpose (which is the same port used for a modem or some mice). A number of period devices would have a selector switch between RS-422 and RS-232 for a single 8 pin mini DIN input.

https://support.roland.com/hc/en-us/articles/201951959-PMA-5...

reply
detourdog
15 days ago
[-]
I think I’m more focused on protocol similarities than the pinout.
reply
epcoa
15 days ago
[-]
Of which there are none because RS-422 is not a protocol. And if you’re talking about MIDI the electrical interface part of the spec (ie what can actually be compared to RS-422), not the protocol part, it is a point to point isolated current loop system - it is hard to be much different than RS-422 a differential voltage multipoint system.

That you can run the MIDI protocol over RS-422 is no more notable than that you can run it over smoke signals or semaphores. In practice almost every common short to medium range interconnect has been used commercially for MIDI at some point, including SCSI, Ethernet, bespoke fiber in addition to what was already said.

https://www.rfc-editor.org/rfc/rfc4824.txt

reply
xcv123
14 days ago
[-]
They are not comparable.

RS-422 is a specification at the physical/electrical layer.

MIDI is a protocol at the logical layer.

You can transmit MIDI over RS-422.

However you cannot transmit RS-422 over MIDI. That makes no logical sense. Like saying you could transmit a chicken sandwich over HTTP.

reply
kubielid
15 days ago
[-]
> Midi being an “artist” tool places it more as a medium like paint.

I’ve used MIDI “as paint”.

Written music using code to MIDI(1), and wrote “cross instrument” music, ie using my keyboard as drum machine.

But these days MIDI is chiefly an archival method for me.

Every time I touch my keyboard is recorded, is much smaller than a comparable audio recording, by design “forced fidelity” in the recording, the music is “searchable”, and I am able to pipe the MIDI format through transcription software (which would be near impossible from an audio recording today).

(1) http://overtone.github.io/

reply
detourdog
15 days ago
[-]
I worked on a project for the Chicago Symphony Orchestra. We mad a series of physical blocks that represented musical samples. The block each had a 1-wire iButton on the bottom to identify the block and context and play the appropriate sample.

Because it was the CSO the biggest part of the budget went to sample cards that played instruments up to the conductors standard. Each exhibit could create a composition and play it back like a symphony.

reply
kubielid
15 days ago
[-]
Sounds like a really cool project. Any links to the exhibit?

Unsure if this comment was a refutation of my own or just a fun cherry on top anecdote, but in case I was unclear I was trying to say that “I completely agree with the shorthand of calling midi ‘paint’, AND here’s a cool use case that I think is fundamental to the technology but rarely held up as a benefit of said technology, namely archiving and assisted transcription of musical composition.”

reply
em3rgent0rdr
15 days ago
[-]
MIDI is just good enough for the vast majority of musical needs. Any more complicated and the protocol would have been too hard to implement on early computers.
reply
chrisjj
15 days ago
[-]
> MIDI should be studied by anyone interested in protocol design

Absolutely. A shambles hopefully never repeated.

reply
recursive
15 days ago
[-]
Probably won't be since MIDI 1.0 solved most problems good enough. Even MIDI 2.0 after decades is mostly just increased resolution. The only thing I'm aware of that's really missing is polyphonic aftertouch.
reply
duped
15 days ago
[-]
> Even MIDI 2.0 after decades is mostly just increased resolution

The biggest change is that 2.0 is duplex which allows devices to discover each other on the same MIDI network. No more in/out/thru, it's all just one USB (or ethernet, or wireless) connection from a device to every other device. It also allows property exchange, which means devices can exchange semantic information about their configuration and parameters with each other.

On top of that, individual voices can now carry pitch and control information, while devices can exchange tuning information. That's a big deal for microtonal and non-western music.

It would be hard to undersell how monumental MIDI 2.0 is as a change from MIDI 1.0, but somehow the MMA manages to do it by making it out to be "32 bit!" (which ironically, it isn't - you don't get 32 bits of resolution in your CCs with MIDI 2.0).

Where MIDI 1 can more or less express the pitch and dynamics/timbre changes within a single piece of western music, MIDI 2.0 can express almost everything you do within a DAW these days, short of actual audio i/o.

reply
b3orn
15 days ago
[-]
> you don't get 32 bits of resolution in your CCs with MIDI 2.0

The standard (section 7.4.6) defines 32 bit resolution for CCs.

reply
duped
14 days ago
[-]
Ah my bad (also not sure which document you're looking at, its in M2-104). I think I was confusing it with note on/off which only has 16 bits for velocity.
reply
elihu
14 days ago
[-]
Poly aftertouch is in MIDI 1.0 -- it just isn't used much.

What MIDI 2.0 adds per-note pitch bend. That's a big deal, but you can also accomplish the same thing without all the complexity of MIDI 2.0 by using MPE, which is an extension to MIDI 1.0.

In a way, MPE is easier to deal with than per-note pitch bend anyways. MIDI 2.0 didn't bother to extend the 7-bit note number range, so you're still stuck with 128 notes. (This despite the existence of instruments like the Tonal Plexus H-Pi, which has 205 distinct pitches per octave, each with its own separate button!) That means in MIDI 2.0 you have to pick the nearest unused note and bend from there.

In MPE it's a bit easier because you can just grab an unused channel, pick the closest note to the one you want, and bend. It's a little more straightforward, and you know you'll never have to bend more than 50 cents either way.

So far, it looks like most of the expressive and microtonal instruments out there are using MPE. The only one I know of that uses MIDI 2.0 is the Lumatone.

reply
b3orn
14 days ago
[-]
MIDI 2.0 has attributes in note-on messages. Attribute type 0x3 gives you 7 bits for a note in semitones and 9 bits for a fractional part of a semitone, so a resolution of around 0.2 cents.
reply
elihu
13 days ago
[-]
That's effectively just per-note pitch bend -- which is great to have, but it's still kind of problematic to only have 128 unique notes you can individually toggle on and off or otherwise control on keyboards that have more than 128 keys.

It's possible to work around the 7 bit limit, but it's awkward.

reply
ZFH
15 days ago
[-]
I was waiting for this comment :)

I'm sure nobody expected it to live this long, as the grumbling about its various shortcomings must've started in the late eighties at the latest. The curse of good enough strikes again ...

reply
elihu
14 days ago
[-]
I've recently come into possession of a number of back issues of "1/1 - the Journal of the Just Intonation Network" from the 80's and 90's. It's interesting how much content was devoted just to the topic of figuring out how to use non-12-tone-equal-temperament scales on the MIDI instruments of the time.

Most of one issue (volume 3 number 4 from 1987) was taken up with an article on how the author was able to reverse-engineer and modify the firmware of the Ensoniq Mirage to support the kind of microtuning he wanted.

reply
chrisjj
15 days ago
[-]
> the grumbling about its various shortcomings must've started in the late eighties at the latest.

Disproof: https://www.muzines.co.uk/articles/midi-what-s-wrong-with-it...

reply
BodyCulture
15 days ago
[-]
I want to study it and understand what you mean! Would you please like to describe the shortcomings / problems you see and how it could be done better? That would be so helpful to us! Thanks!
reply
grobgambit
15 days ago
[-]
Anyone who posts that is an obvious idiot that you shouldn't listen to about anything.

Just someone who either has nothing to do with music or does but has an absolutely obnoxious personality that will point out some meaningless detail in the specification.

It is just mind blowing that my 1997 Korg Prophecy and 10 year old Waldorf Blofeld are all linked up to my brand new computer using the latest version of Abelton live with a midi interface that I don't even remember when I got it but its old too.

reply
emchammer
14 days ago
[-]
I once had the opportunity to use a genuine Steinway full-length grand piano which had been fitted with a MIDI input and actuators. I connected it to the output of a Kurzweil K2500 I believe it was, and I used the arpeggiator and sequencer on that to trigger the grand piano. The Steinway became a different instrument. It was not obvious! It was easy to make it sound like a mishmash.
reply
piltdownman
14 days ago
[-]
This is why Synthesisers allow you to control the ADSR Envelope - the decay and sustain on a piano, makes its a bit of beast to sit comfortably in a mix or - as you've noted - fairly dissonant and unmusical when played as a keyboard as opposed to a discrete acoustic instrument with its own preferred range of operation in terms of pitch, timbre and dynamics.

The answer? Tailor the use-case to the instrument, as orchestras have done for thousands of years. A trumpet riff won't sound appropriate or evocative played on a xylophone anymore a Cello aria on a French Horn.

A masterclass on this is Wendy Carlos' Opus 'Switched On Bach', whose entire inspiration was to make "appealing music you could really listen to" using the then-new synthesiser technology.

https://en.wikipedia.org/wiki/Switched-On_Bach

reply
chrisjj
15 days ago
[-]
Well, #1: Don't put out an Implementation Chart template with Yes and No the wrong way around.

If this doesn't sound serious, you had to be there.

reply
T-A
15 days ago
[-]
More like 42:

MIDI was revealed to the world, on the Sequential Circuits stand at the NAMM show in January 1983 (precisely one year since Smith’s proposal got the brush off)

reply
JKCalhoun
14 days ago
[-]
MIDI over CAN Bus. I like it.
reply
elihu
14 days ago
[-]
CAN bus would probably fix the latency/bandwidth issues with serial MIDI, and it side-steps the device/host problem and the short cable problem with USB. I'm in favor.

(I'm actually working on a MIDI controller. It has a CAN bus interface in addition to serial MIDI and USB. I don't have anything to talk to over CAN bus yet, but it's sort of there for future development. I probably won't send actual MIDI over CAN bus, but rather a protocol yet to be designed that's sort of like MIDI but less piano-centric.)

reply
ajxs
15 days ago
[-]
Very cool article! I had no idea that the idea to use a 5-pin DIN connector for MIDI came from the Japanese HiFi world. One very minor nitpick: 'Running Status' actually refers to a feature in the MIDI specification where multiple sequential messages of the same type can omit the 'status byte'[0]. Stupidly, I didn't know about this feature in the specification when I was writing the MIDI handling routine for a synth[1]. This introduced a bug that took me ages to squash. I was struggling to figure out why everything worked fine when playing notes from my DAW, but notes were getting stuck when directly connected to a synth.

0: https://midi.teragonaudio.com/tech/midispec/run.htm

1: https://github.com/ajxs/yamaha_dx97

reply
elihu
14 days ago
[-]
That makes me wonder how often one runs across a synth that doesn't support running status. I'm working on a MIDI controller myself, and that's a thing I probably ought to enable if I want the lowest latency.

It seems the standard MIDI libraries that Arduino uses don't enable it by default, but it's a configuration option you can turn on, along with a note not to try to use it with USB[1].

[1] https://github.com/FortySevenEffects/arduino_midi_library/bl...

reply
morganw
14 days ago
[-]
> Korg noted that the use of jack plugs to transmit the required signals would cause noise in the system.

No more detail on this, but it was huge for MIDI not to end up "becoming a nightmare of endless fine-tuning better suited to electronics engineers than musicians" like CV/gate was.

https://midi.org/midi-history-chapter-6-midi-begins-1981-198... spells it out in more detail:

Mieda-san from Korg responds on behalf of the Japanese companies to the meetings at the 1981 Gakki Fair with Sequential and Oberheim and confirms the discussion that were they had at the Gakki Fair.

• 19.2kbps is too slow

• ¼” Jacks will have ground loop problems

• There is no concept of synchronization, clock or the ability to start and stop sequences

---

Ground loops are the bane of musician's lives and sometimes the mitigation is the end of their lives

https://en.wikipedia.org/wiki/Ground_lift#Safety

reply
everyone
14 days ago
[-]
"Imagine a DAW or plugin that only runs on a certain make and model of computer." - Logic.
reply
fipar
14 days ago
[-]
That’d match the analogy from TFA if it only ran on, say, a 2014 mbp, so while it’s true Logic runs only on macs or ipads (I guess just pros for the latter though I don’t know), I think it’s quite a stretch to say that’s a certain make and model of computer.
reply
ksherlock
15 days ago
[-]
"freeing for the first time the act of composition from the ability to play an instrument". I think the player piano, invented in 1896, might have something to say about that. There are modern recordings of piano rolls (eg, Scott Joplin) but I'm wondering if they were ever used like that historically (or in concert). You could make your own piano rolls or record a performance and edit out mistakes (eg, Scott Joplin)
reply
tanseydavid
13 days ago
[-]
The master rolls for player pianos were made by actual pro players playing in real time. They needed to have the performance chops, even if they maybe were not the composer in every case.

This quote about "separation of composition from performance" applies when you are working with a sequencer because the composer can "step-edit" the musical data note-by-note into the sequencer and then have the sequencer play it back in proper musical (real) time.

reply
golergka
15 days ago
[-]
To be fair, CV/Gate is still widely in use, especially in Eurorack world. You don't build modular synthesisers out of MIDI.
reply
steve1977
15 days ago
[-]
CV/Gate is in use again. There was a time in the 90s when you actually kind of had to search for MIDI/CV interfaces.

A popular one was made by Doepfer - who were also a strong force behind the modular renaissance with their A-100.

reply
timc3
14 days ago
[-]
I don’t think it was that hard. I remember them being around all the time, but maybe it was a European thing with them being readily available here.
reply
steve1977
14 days ago
[-]
I meant they were available, but not from many vendors… it was pretty much a niche product (and there was no Internet or Google ;)
reply
elihu
14 days ago
[-]
One of the things I like about modular is that the v/octave CV standard imposes no assumptions on what kind of scale you're using. 12-tone equal temperament is pretty easy to use, but there's nothing forcing you to that scale if you don't want to use it. (Some modules and MIDI to CV devices have built-in scale assumptions, but it's not baked in to Eurorack modular at the protocol level.)
reply
worik
14 days ago
[-]
> You don't build modular synthesisers out of MIDI.

Yes you can. I do

reply
_spduchamp
14 days ago
[-]
I use MIDI in projects when I have to, but I usually lean on OSC because I can send it over wifi from a microcontroller and send floats. It just makes a lot of what I do so easy. That said, my stuff isn't very plug-n-play. Would love to see more development of new protocols like O2 and O2lite to build networked ensembles.
reply
fyt2024
15 days ago
[-]
MIDI? We used this to build a circular LAN and play computer games against each other on the Atari ST
reply
steve1977
15 days ago
[-]
The fact that the Atari STs had MIDI built in was the main reason that they were so successful as computers in recording studios (and that they were much cheaper than Macs certainly helped a bit as well)
reply
ladzoppelin
15 days ago
[-]
I think the Atari's were also known for their MIDI timing which I remember people talking more about in the 2000's.
reply
steve1977
15 days ago
[-]
Yeah they were kind of known for that, although I personally think this was also a bit of a myth.

Even back then there were add-on interfaces like the Steinberg Midex which used some kind of timestamped buffered timing, which was probably even better. And many synths actually had quite bad latency anyway.

But for sure, having direct access to hardware and a non-multitasking OS made things much more deterministic "by default" and that was certainly an advantage for this use case.

reply
TheOtherHobbes
14 days ago
[-]
That Atari didn't do anything special. The MIDI went in/out of a standard interface and the interrupt was - IIRC - on the keyboard line. Midex was a step up, because the messages were pre-buffered, which was a little quicker. But MIDI timing was pretty bad anyway, because the serial line was too slow.

It was tolerable if you put every synth/drum machine on its own separate buffered line. But when you had four or five devices connected to a single MIDI out on the Atari - ha ha ha no.

The absolute best timing resolution was around 700us, which is fine for single notes - although that didn't allow time for the steam age 8-bit processor in the target synth to wake up and notice it was supposed to do something.

But when you had a four note chord, it never sounded truly tight. And if you added some aftertouch or mod wheel - oh dear.

So you ended up with this weird cultural thing of music that was quantised and on-the-grid but also had quite a bit of timing slop.

Big-name bands often used synchronisers and tracked each synth line to tape in a separate pass.

USB over MIDI is much better because there's basically zero latency and everything (usually) works as it should.

reply
steve1977
14 days ago
[-]
I remember using MIDI Thru only for things that weren’t timing critical, like pads for example.

The Midex also added four additional MIDI outs, I think there was something similar for Notator (the Logic Pro predecessor), Unitor something.

reply
happyweasel
15 days ago
[-]
MIDI Maze :)
reply
fyt2024
15 days ago
[-]
Yes. Forgot the name but it was midi maze

https://en.m.wikipedia.org/wiki/MIDI_Maze

reply
tanseydavid
13 days ago
[-]
I remember going to Sequential Circuits on 1st street in San Jose (on my lunch hour) to buy a copy of the MIDI Specification (I think it was $10). Probably late 1986.
reply
memalign
14 days ago
[-]
In case anybody is in the mood to browse and listen to a MIDI collection in their web browser:

https://chiptune.app/

reply
worik
14 days ago
[-]
Has anybody any use for, or used, MIDI 2?
reply
elihu
14 days ago
[-]
I think the Lumatone uses MIDI 2.0, but I haven't actually seen one of those in person.

I'm working on my own microtonal MIDI controller, and for now it makes more sense to just use MPE. Maybe I'll support MIDI 2.0 eventually, but I'm kind of waiting to see if MIDI 2.0 is a flop first.

reply
worik
14 days ago
[-]
Is MPE any goode? Any use?

I understand never used it and I looked it up. Seems a lot of complication. It's it worth it?

reply
elihu
14 days ago
[-]
MPE is very useful if you want real time per-note expression and pitch control. (Basically, the less like a piano your controller is, the more useful MPE becomes.)

It's possible to do that in plain MIDI 1.0 by using a separate channel for each note and using CCs, channel pressure, and/or pitch bend (that's basically what MPE does), but trying to get that to work with a wide range of synths is quite difficult because every synth implements MIDI a little differently. MPE standardizes that use case so it's much easier to have something that "just works".

reply
readyman
15 days ago
[-]
WARNING: Do not click. Website has autoplaying videos.
reply