Hacker News new | past | comments | ask | show | jobs | submit login
The 30th Anniversary Of MIDI: A Protocol Three Decades On (thequietus.com)
114 points by jamesbritt on Jan 22, 2013 | hide | past | favorite | 52 comments



My parents bought me a Yamaha PSR-230 on a whim for Christmas when I was probably 14 or 15 in the mid-90's. I had been playing drums for several years and they must have figured I needed to branch out! They had no idea what MIDI was and I was only familiar with it for the cheesy music files you could download off of AOL at the time.

I looked into MIDI more and realized you could hook the keyboard up to your computer for composing songs, granted I had no idea how to write music. Once I ordered the cables (over the phone from a catalog!) and received them, I soon realized that the cheesy sounding songs sounded less cheesy when I played them through the keyboard rather than the SoundBlaster 16. I also learned that I could set up the keyboard to examine specific MIDI-in channels and I could learn chords and melodies from downloaded MIDI files because the keyboard would have little LEDs above each key that would light up when the notes were played.

Fast forward about a decade. Over this time, I had learned more about playing keyboard, learned guitar, and had picked up some music theory and songwriting knowledge. Now, my stupid little PSR-230 could control just about any sound imaginable through the use of VSTi's. I could record music that sounded like the stuff on CD's on my computer using either real instruments or virtual ones controlled by the PSR!

To this day, even though I have another, more advanced MIDI controller, I'll often times still use the PSR when I'm working on song ideas.

So happy birthday, MIDI! You're certainly different than my first impressions of you and you've definitely made my life richer.


I still remember the day when I started playing these cheesy midi files with "timidity" and a directory full of .pat patches files from a GUS IIRC.

Wow! It sounded great! (a Gravis Ultrasound or even a Soundblaster Wave32 were over my budget)

At that time I was enjoying mods and s3m, and usually found them better sounding, but timidity + high quality patches changed all that.

(I still listed to some midi, mods and s3m converted into .wav and burned then ripped in mp3. good old memories)


I think MIDI represents a good example of what you can do if you compromise sensibly. I argued with folks over the 31.25K baud vs 38.4K (9600 x 4).

I also remember the assertion that it was going to "ruin" music because any 10 yr old could program a computer to play tempo perfect renditions of complex compositions, and yet to this day the accuracy of MIDI was always off putting.

One of my personal milestones was having a stack of instruments that were capable of 200 simultaneous voices without tape layering. That allowed the reproduction in real time of a symphony, but the biggest challenge was getting 200 separate MIDI streams running in parallel was a huge task. At one point I had 20 386 class PC's each capable of producing 10 streams. It was a silly goal since everyone else layered tracks but for me it was a weird quest to be a conductor of my own personal symphony orchestra :-)

I learned a lot about how time synchronization protocols can (and do) get screwed up in real time situations. That was fun.


It's funny how things have progressed, isn't it?

For relatively little $$$, one can have hundreds of gigabytes of professional samples in VSTi plugins, and be able to render playback so good it would fool almost all listeners into thinking it was an actual, real, room miced recording.

All in the end still essentially driven by Midi.


My biggest complaint is 24ppqn :( Otherwise, I love it.


MIDI in my mind is unfortunately incomplete, or rather, makes a lot of assumptions that are great for contemporary western music, but buckle under the strain of other ideas.

I've seen some really great early music (1200s?) MIDIs put together by doctorates, and to simulate the early instruments, each note is hand tuned (or perhaps re-tuned using software, I'm not sure). Those instruments were not diatonic.

Additionally how could you express a solid sweep from C1 to C8? Not that you could or want to, it is just that it isn't something MIDI can handle.

There are a lot of compromises and hacks and such. Recently at PyOhio I saw a presentation about the raw data of the Open Goldberg Variations, and some of the raw data from that device has pressure sensitivity readings outside of the scale of MIDI.

Most artists I see wind up using OSC. It is lower level and more general purpose, and you can convert to MIDI (lossy) if you need it. I was thinking of how to sum this up, but I guess MIDI is good for what it is good for, and like most things, aren't much help when you go down a deep rabbit hole. I love MIDI though!


I always wonder if we'll ever see OSC catch on in the way MIDI has by the big name manufacturers (Roland, Korg, etc). You see it in niche interfaces like the Lemur but not much else. Even the Monome devices don't work with OSC natively, they send serial data over USB, you need software to convert it.


I'm surprised to not see OSC being included in even the upcoming version of Ableton Live.

This is one reason I prefer Renoise (though it's a somewhat apples to oranges match-up). It has built-in OSC support, and adding custom OSC message handlers via Lua scripting is relatively trivial.


Is Live removing OSC? That's really unfortunate. I use it with my Monome right now for Live stuff.


Removing? To my knowledge it was never there. Are you sure Monome is not sending MIDI, or going through some intermediary app (MAX for Live or something similar) or an add-on?


Ah yea, I'm running it all through Max4Live.


What kind of Live-Monome apps are you using? Just curious, I have a 64 and 256 myself (I actually was the guy who ported Monome Serial from OSX to Windows, so I'm pretty biased towards Monome devices :) )


Mostly using Stretta's ones. Need to use them more.

I'm working this week to get my modular talking to Live in a useful way using the Monome and an Expert Sleepers ES-3 (8 DC coupled outputs that work as trigger, gate or CV out)


Yeah it's kind of a bummer but Max4Live really helps mitigate things. Especially as a coder, its pretty cool to just pop up a Max js object and work with the Max4Live API directly in code. I'm a long time Reaktor and Max user, but these days I find the mouse-based box-and-wire interface painful when you want to make something somewhat complicated. I believe Resoise has Lua scripting now no? That seems pretty cool, gotta take a look even though I always find trackers to be somewhat tough to get used to.


Have you heard of Scala? http://www.huygens-fokker.org/scala/

It's used to change around the default MIDI scale, so that you can play with early scales or even scales from other cultures. It's really cool if you get it working with your keyboard. Unfortunately, there's not a lot of software that supports it, although I think Logic Pro did at some point.


Hey err, well I may have stumbled upon this before I knew of its importance, but I could also be full of myself :P Regardless, thank you for bringing it!!


Additionally how could you express a solid sweep from C1 to C8? Not that you could or want to

The opening in "Rhapsody in Blue" is two and a half octaves, and that's jut the first thing that comes to mind. Also, I'm sure there have been some extensions that enable this, but I don't know for sure; the Yamaha DB50XG I had came with sitar, and while I don't recall exactly the demo song included, it seemed like a reasonable facsimile of Ravi Shankar.


The opening of "Rhapsody in Blue" contains a glissando, which is comprised if a fast run of the individual notes, not a continuous sweep.

Since midi messages are only 8bits, you have only 127 steps of resolution. Augmenting a note beyond a certain point leads to noticeable quantization of pitch.


Many performances I've heard of "Rhapsody" were essentially a sweep (portamento? the terminology is a bit muddled). But even if it's not possible on the real instrument, or the real instrument doesn't have the range, doesn't mean that limit should be there; I agree with you that limits suck, and it would be nice if someone invented something better than MIDI (and made it popular/standardized).


True, I was thinking of the piano arrangement, but orchestral version is opened by a clarinet, and the player usually combines a glissando and a sizable portamento (and not having much woodwind experience, I have no idea how one would create that slide, like in opening of this classic recording http://www.youtube.com/watch?v=1U40xBSz6Dc)


That kind of slide involves subtly easing off the holes of the clarinet, leaving partial openings. It's a skill I practiced, but never really mastered. I could slide a few notes, but it was never make it that smooth, nor could I slide that many without easing off too quickly and making the slide "jump".


There's a bit of lipping it involved (especially across the 12th), but most of the secret is to drop the back of the tongue (usually somewhat arched) to open up the chamber of the mouth/throat and allow you to play with the resonance a bit. You'll usually hear that run with a bit more of a "wah" (I'm pretty sure I remember that being the official, technical term ^_^)to the timbre than is normal for a clarinet, tightening up into a more normal timbre at the top (where, honestly, fingering is mostly wishful thinking, and has less to do with selecting overtones than lipping does).

On a somewhat related note, the advent of MIDI and the subsequent wind-type controllers meant that I'd spent a whole bunch of money on a Lyricon the previous year for nothing...


Ah yes, I forgot about all the mouth-work that went into clarinet. It's been almost 14 years since I last played with any degree of seriousness. Thanks for the reminder :) It's starting to come back.


http://www.acoustics.org/press/155th/chen.htm

If you go to a 6th grade band class, to where the clarinet nd sax players are not adept at embouchure, choosing reeds and assembling the instruments, you hear all knds of interesting inadvertent things. Single reeds are fantastically flexible instruments. A few months ago i noticed for the first time how similar the tones of Dolphy's bass clarinet and Coltrane's soprano sax are on the 1961 recordings.

If anybody's interested, how to play quarter tone music on sax (pg 25 in the pdf:

http://davidvaldez.blogspot.com/2012/09/quarter-tones-by-don...


I can't quite remember and can't be bothered to look in the spec, but MIDI has multi-byte integer values for use in some cases, and control messages such as pitch bend use this. Could be as little as 2 bytes, but more than 1.


Ah, it's coming back to me now. Haven't really worked with midi in 15 years or so.

Correct, pitch wheel is a 14bit message, going from 0x0000-0x3FFF. Though I do remember that stretching that out a few octaves still produces noticeable stepping.

Also, forgot that midi has a portamento time controller, where you could program the time to slide between two notes, and leave it up the the tone generator to bend the note properly.


Yes this is coming back to me now too what my problems were. The aliasing comes in fairly audible no matter what you do, and relying on the synth then prevents you from having any timing control at all, or over the interpolation. I can't remember what exactly I was trying to do, but whatever it was I'm sure I solved it with Chuck probably, hehe.


how could you express a solid sweep from C1 to C8? ... it isn't something MIDI can handle.

The 14-bit pitchbend command can handle portamento of any range since day one. Assuming you can find a synth that isn't aliasing by the time you get to C8 (good luck), it works just fine.


I can thank MIDI for getting me into programming. I was 6 at the time and just received an awesome, second hand Yamaha keyboard with MIDI out. I spent that summer researching everything I could about connecting this amazing instrument to my 386 PC. From that research came a love of discovery, technology, openness, creation. A love affair with music was the spark that created a love affair with computing and my eventual career.

Thank you MIDI.

edit: Also, anyone remember early MIDI sharing sites? Way before Napster, the MIDI/MOD scene was incredible. Still remember dreaming about the Soundfonts, AWE32 and XM!


On the Commodore Amiga, I listened to MOD files a lot. Didn't have MP3 at the time (I remember how exciting it was when I got my first MP2 encoder!), and a wave file of a whole song took up nearly half of my hard drive. Very impractical.


An the Impulse Tracker (+ the fact that it was developed on asm)! For me Jeffrey Lim was the coolest developer then.

Oh, I remember the playback of my first mp3 file with winamp on my 486 DX4 100 with 4mb RAM. I couldn't even move the mouse without getting stammered playback.


My first soundcard was a GUS Ultrasound, and after that I saved for quite some time to buy an AWS64 Gold. I loved that soundcard, kept it forever. I used it with Scream Tracker 3 and later Impulse Tracker 2. I've never actually left trackers either. To this day I still use Renoise (http://www.renoise.com), a loose FastTracker variant with vsti, rewire, effects, and more. It was so fantastic when I could control my synthesizers over MIDI from a tracker.


Have you tried Schism Tracker? It's an Impulse Tracker clone.


Yeah, I liked it, but after so many years I'd forgotten most shortcuts anyway, and Renoise has an impressive set of features.


Ah yes. My first major programming adventure was an attempt to write a MIDI-tracker with TP7. As I recall, it actually sort of worked in the end.


I got a Korg X5 around '95 and clocked a lot of time using it for composing. (Poorly, but nonetheless.)

But a fun bonus was hooking it up to video games that supported putting out music in General MIDI.

In an era where everybody was listening to Adlib FM on their Tie Fighter: https://www.youtube.com/watch?v=puvD_FDS_jE

I was listening to something more like this: https://www.youtube.com/watch?v=Ajz-m0qIDCk

Although I think my X5 actually sounded even better. (I always thought the violin and viola were a bit tinny, but the cello was fantastic, and the bass not too bad. And the choir sounded better in the lower register than that recording, though you'd still never mistake it for a real choir.)

I also recall the Day of the Tentacle theme desperately needed a good clarinet sound to sound really good. I often though the theme must have been composed on the 05/W that the X5 had the same sound set as, because it sounded that good. Alas, no Youtube love here. (Closest is the MT-32 recording, http://www.youtube.com/watch?v=YQeQzeVmN5w , but that is way worse than the X5 rendering.)


Fellow Korg X5 owner here (in fact, mine is still in perfect working order, sat underneath my bed).

It was an amazing little machine, especially for the money - I had great fun programming the user sound banks to do some Jean Michelle Jarre(ish) pieces.


When I was about 15, I bought a Yamaha TG100 tone generator [1]. It was a synthesizer without a keyboard, and I composed music on my Windows 3.1 system with a program called Midisoft Recording Session (apparently in later versions it was renamed Midisoft Studio).

Amazingly, I can still play those songs today on my Ubuntu machine using TiMidity [2] and my choice of SoundFont [3] files.

(Note: I'd love to find a soundfont that reproduces the wavetable from the TG100, my copy of which no longer seems to work.)

[1] http://usa.yamaha.com/products/music-production/tone-generat...

[2] http://timidity.sourceforge.net/

[3] http://en.wikipedia.org/wiki/SoundFont


I never got into composing (much), but I still fondly remember my Yamaha DB50XG daughterboard plugged to a SB16 MCD (ISA bus). Haven't heard another MIDI, softsynth or wavetable that sounds as good since. Unfortunately, my last computer with ISA slots was a PPro, and something changed between versions in PlayMidi[1] to where the drums didn't sound as awesome. Thankfully, I still have MP3's of MIDI playback on that board for some of my favorite songs.

[1] - http://sourceforge.net/projects/playmidi/


I had heard about how cool MIDI was, but wasn't blown away until I saw a demo of MAX back in 1992. MAX let you generate and re-wire MIDI signals in real time with a simple but powerful graphical interface (it's still around and now does real-time DSP audio and video processing too).

http://en.wikipedia.org/wiki/Max_(software)

Later that year I got my hands on a synthesizer and a copy of MAX and it became the first 'real' programming that I did. The real-time feedback made it easy to learn and debug, while its graphical nature made it highly prone to actual 'spaghetti code' unless I properly modularized everything. I quickly learned that I was a better programmer than musician - so I set up MAX to 'cybernetically enhance' my own playing.

If it wasn't for MIDI's fairly simple protocol and MAX's powerful tools built around it, I might not even be a programmer today.


Not to mention PD, its free cousin:

http://puredata.info/


I remember MAX! The music theory drills that eventually ended up as Java applets on eMusicTheory.com started (a few of them, anyway) as MAX applications, in '95/'96. I helped a music professor develop some of those, then (because we wanted students to be able to practice outside of the music lab, and because I was learning Java in compsci classes) I started rewriting them as applets.

The applet versions even support MIDI input (just plug in your keyboard and you can use it to give answers to the online drills!), but the sequence of Java security disasters will probably spell the death of that feature -- when I drop applets, AFAIK there's no other in-browser way to catch MIDI input; it's frustrating as hell.


If you're interested in MIDI and how it's been used in some really weird ways I'd recommend Adrian Belew's "History & Future of Guitar Noise". You can watch it on YouTube: http://www.youtube.com/watch?v=UWfxQ4QFM4M


This is one of the most anti-MIDI articles I've read since MIDI was first released. It's pretty much a rag-tag collection of all the cheap shots and whining that have become oh, so familiar in that time.

MIDI has survived for 30 years in an intense, worldwide marketplace without any serious competition. Name any other communication protocols in widespread use that can say that, and you've named another massive success. Most of MIDI's supposed shortcomings (to the extent that they're not operator-related) can be dealt with by extending the default hardware and doing a little programming.


Funny, I remember writing custom communication protocols over the MIDI ports of my Atari ST because, at least on that hardware, MIDI ran at a higher bit-rate than the serial port.

Oh, and playing MIDI-Maze [1].

Never actually used it to drive an instrument.

[1] http://en.wikipedia.org/wiki/MIDI_Maze


I love my serial midi cabel since the early 90s. Cant imagine the BIG players sitting on a table discussing a standard for music communication. It feels wrong that technology Manufacturers todays not able to give us a simple way for e.g. charging battery for all mobils with ONE Cable. Happy birthday MIDI.


An interesting use of midi data can be seen with the Fretlight Guitar: http://www.fretlight.com (disclaimer, I work for them). Midi data is tagged so that it can light up the guitar fretboard to teach you how to play. Any Guitar Pro 6 tab can light up the Fretlight.


I did this: http://amiga.resource.cx/exp/phantom

It did all the SMPTE reading & writing in software. Good times.


It was an okay article at the beginning, but I really didn't expect it to start claiming that MIDI alienated women and turned music into a male hegemony.


Anyone who seriously believes that has never heard Imogen Heap.


Not only is she a wizard with current technologies, she is also working on new ways to create music.


It definitely jumps the shark there at the end.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: