Hacker News new | past | comments | ask | show | jobs | submit login




The idea of MIDI is that you can grab any midi controller and any synthesizer manufactured in the last forty years, plug them together, and they just work. (As long as we can keep up the pretense that we're synthesizing something that behaves like a piano, and we aren't trying to use USB which introduces its own set of problems.)

The idea of OSC is that you can send any kind of message at all from any device to any other device and the semantics of those messages are left as an exercise to the reader. There's no guarantee of interoperability. It's just assumed that if you're using OSC you know what you're doing and it's up to you to make sure both devices are speaking the same dialect.

Sometimes people tunnel what is effectively MIDI over OSC, but I think that's the closest thing to a common standard, beyond the basic low-level data layout that OSC messages are expected to conform to.

I think some people use OSC for various things, but it tends to be for custom bespoke installations that were designed to do something specific.


"Behaves like a piano" doesn't do it justice. Piano never had channel/note aftertouch, pitch bends or whatever you assign to the 128 arbitrary controllers.


The only "piano-related" limitations of MIDI that I've run into is that

a) a note-on message is fixed at just three numbers (note, velocity, channel), so while I can map velocity to, say, a filter and envelope settings but I can't easily have independent per-note control of them. It doesn't come up that often, but sometimes I do end up with two slight tweaks of the same patch on two channels and it's a bit of a faff compared to just having more numbers per note event.

b) there is poor support for sending articulation (ie., a number that changes without sending a new note-on event) that references a held note, because CCs refer to a channel, not an existing note. Poly AT but isn't universally supported and at least if you're using hardware it tends to hog bandwidth.


Some more piano-like limitations:

The tuning is assumed to be 12-tone equal temperament. Other temperaments are possible, but you're kind of off in uncharted territory. Especially if you want a temperament that doesn't use a 12 note repeating octave. (MTS exists but it's not widely supported.)

You can't play a unison without resorting to multiple channels.

No way to do the equivalent of guitar hammer-ons and pull-offs in a polyphonic manner without resorting to multiple channels. (MIDI 2.0 at least adds per-note pitch bend.)

(A lot of MIDI limitations can be gotten around by just using multiple monophonic channels instead of one polyphonic channel, and that's what MPE is. Sadly most of the otherwise amazing famous analog poly synths out there can only receive on one channel.)


There are system-exclusive commands and reserved/undefined event codes for rare situations like that. (Apart from non-12-note systems, and it's kinda bizarre to expect everyone's music standard to cater for something that esoteric).


This stuff is not esoteric outside of the world of mainstream western music.


The 12-tone system captures most small natural number ratios and, as such, covers most non-western note systems as well (allowing for temperament differences). It's safe to say that less than 0.1% of all music and all composers or performers ever used anything else, and they wouldn't be using synthesizers for that task.


> "The 12-tone system captures most small natural number ratios"

Notably absent are any ratios that involve a power of 7, and ratios that involve a power of 5 are noticeably out of tune.

> "and, as such, covers most non-western note systems as well (allowing for temperament differences)."

Temperament differences are pretty significant.

> "It's safe to say that less than 0.1% of all music and all composers or performers ever used anything else"

I don't know how many composers and performers are interested in carnotic music, Indonesian gamelan, traditional Turkish music, western music as practiced more than a couple hundred years ago, barbershop harmony, lap steel, slide guitar, Appalachian dulcimer, and so on but I think 0.1% is very much an under-count.

Even if you're 100% focused on mainstream western music, guitarists will do things like tune their G string 15 cents flat or so because it sounds better for some chords. (I haven't tried that one. I prefer to just replace the fingerboard, re-arranging all the frets so I can play guitar in proper just intonation.)

> "and they wouldn't be using synthesizers for that task."

Well, that's the problem right there. Synthesizers should be the first choice for microtonal music, not the last one. There's no technical reason for synthesizers to be biased towards 12-EDO or any other specific tuning, it's just a historical accident that the protocol we use is one that wasn't designed with any other use case in mind.


>Notably absent are any ratios that involve a power of 7

Except the tritone that's 1% off 7/5.

>ratios that involve a power of 5 are noticeably out of tune

Depending on your definition of "tune". Regardless, pitch bends cover that if needed.

>Temperament differences are pretty significant.

And one's free to implement whatever temperament in midi, in fact even consumer pianos allow that. If there was any semblance of demand for that midi would spare an event for that.

>carnatic music

Show so much variability between players that it's safe to approximate their microtones in 12 notes, with bends if desired.

>barbershop harmony, lap steel, slide guitar, Appalachian dulcimer

All serviceable in the 12 note system.

Even early pianos were tempered for a particular key until common sense prevailed.

>it's just a historical accident that the protocol we use is one that wasn't designed with any other use case in mind

If entire countries cede their musical theory systems for a foreign one it's not a matter of an accident, it's an indication of superiority.

>There's no technical reason for synthesizers to be biased towards 12-EDO

Yes there is, it's exactly because near 100% of their users want just that. Most midi devices don't use anything past velocity and pitch bends, complicating them to include non-12 note systems would be a total flop.


> Except the tritone that's 1% off 7/5.

That's technically true. 7/5 is about 99% of the square root of 2, but in terms of pitch intervals, a difference between 582.52 cents and 600 cents is about 17.49 cents. That's not necessarily terrible -- it's not that much worse than the difference between a just major third and an equal tempered major third, but it's not great either.

Other useful intervals like 7/6 and 7/4 don't really have any close equivalent in 12-edo, though dominant seventh chords do sort of imply a 4:5:6:7 relationship even with the 7 being way off.

> Depending on your definition of "tune". Regardless, pitch bends cover that if needed.

Pitch bend isn't a general solution unless you go all the way to one-note-per-channel like MPE does. MIDI 1.0 has no individual note pitch bend -- pitch bend affects all notes in a channel at once, which makes it quite a bit less useful for correcting intonation issues than it would otherwise be. (MIDI 2.0 added per note pitch bend.)

> All serviceable in the 12 note system.

According to your definition of "serviceable". Some of the people who actually practice these forms of music might have other ideas.

> If entire countries cede their musical theory systems for a foreign one it's not a matter of an accident, it's an indication of superiority.

Bad ideas can persist as well as good ideas -- 12-EDO wouldn't have survived as long as it had if it didn't have some useful characteristics, but I think it's important to be aware that 12-EDO is a compromise. Tuning suffers, but you can play equally well in any key, instruments are simpler when you only have to care about 12 notes per octave, and 12-EDO instruments play together.

With electronic music, the barriers to using other tuning systems are largely conceptual. Instruments could have as many notes per octave as you want, you could transpose freely while staying in precise just intonation, and tuning instruments to each other is just changing a number in memory somewhere -- much easier than retuning, say, a piano. So maybe the old tradeoff isn't a good one anymore, and we can make a better one. Or at least make it easy for people to choose what tradeoffs they want to make rather than having their choices made for them.

> Yes there is, it's exactly because near 100% of their users want just that. Most midi devices don't use anything past velocity and pitch bends, complicating them to include non-12 note systems would be a total flop.

I will grant you that 12-EDO is commercially successful and that major music companies largely have no interest in microtonality. That is, however, a very different question than whether non-12-EDO music has artistic and cultural merit.

For what it's worth, I expect MIDI 2.0, which has some features that make it better suited to microtonal music than MIDI 1.0, to be a flop. The microtonal crowd is probably better served by MPE (as kludgy as it is, it does work reasonably well), and device manufactures seem to have absolutely no interest in supporting it. Maybe it's more popular for software synths?

Interestingly, modular synthesis uses a 1v/octave pitch standard that is agnostic of tuning system -- people are free to use whatever they like. That is as it should be. Most people stick with 12-EDO because that's what they're familiar with, but if you want to do something microtonal, the only roadblocks are the artificial limitations put into individual devices, and you can largely avoid those if it's a problem.


You could make the same argument against unicode. "Why do we need all these weird character sets? The latin alphabet works fine for me, and all the English-speakers I know."

Notes that deviate from exact 12-EDO aren't actually all that esoteric. Even in traditional western music where almost all musicians think in 12-EDO, it's not all that weird to bend notes a little to bring chords better in tune with themselves.


Carla (and maybe Cabbage?) uses it for control messages but there's the problem that it only works if you've got a big single host running a lot of subject plugins; the idea was supposed to be that your sequencer would send midi to your sampler and your tracker would send control messages to your sampler over OSC and all three of these would be peer programs. There's not a particular technical reason it doesn't work it's just that very few programmers built software to take advantage of it.


OSC still exists it just never became the defacto standard for the industry; primarily because there is no standardized device mapping for interoperability.

MIDI 2.0 fixes a number of issues that OSC was intended to fix, but imposes vendor limitations which lead to standardized adoption.

I still use OSC for music production, and it's my goto protocol for writing code that needs networking as it's a super simple message passing protocol that lets me quickly connect various devices and services :)


OSC is basically a serialisation format with a few niceties bolted on for batching and scheduling messages. The massive unsolved problem is discovery – discovery both of endpoints (servers, devices) and messages that can be sent to said endpoints. There have been efforts to solve this over the years, but are largely vendor-specific.

MIDI has OS-level support for discovering endpoints/devices, and there's enough standardisation of supported controllers that things largely "just work".


Serves a different purpose. A few things support it, but it isn't common from what I can tell


Too much overhead, too little benefit. No one ever really cared about it.




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

Search: