MIDI 2.0 Specifications Available for Download
ask.audio
ask.audio
Well that sentence could've been straight from a music/computer mag from early/mid 1980s - that's how old MIDI is, using DIN jackets and all.
Source: owned an Atari ST using Steinberg 24 track sequencing software to control Yamaha DX-7 (every New Wave band had one of those on stage), early digital drum machines, digital reverbs/echoes, and other devices around 1985.
My dad was a music teacher and a big proponent of getting the school to purchase Ataris for this reason.
He in later years also decided to build an electric organ with complete foot pedals and all.
MIDI never says die.
there lies the rub. MIDI is quite simple. if MIDI 2.0 is error-prone to implement, it will fail as literally no one has time for that
But it is always required MIDI 1.0 compatibility, so if your device need the extra bits, it activate the MIDI 2.0 protocol. IIRC it is possible to use other parts of the MIDI 2.0 as MIDI CI with the old MIDI protocol.
Also things like MPE I think are really improved, as current MPE is an ugly hack using channels. Time wise MIDI 2.0 should be easier to implement than MPE, IMHO.
The most difficult part would be the MIDI CI (Capability Inquiry) to first set up the MIDI 2.0 protocol, and then to send information about current device. But the info about the current device is actually a JSON file, so not really difficult.
CV being effectively monoplexed meant a lot of connections to control a lot of parameters on one or more instruments.
Of course, the modular crowd is still happy to live in this world, but that's more an aesthetic choice, imo.
What's the alternative?
Don't worry about sound issues, though. Old hybrid synths (analog generators with digital control and parameters storage) were very recognizable from fully analog ones (purely CV controlled) just because say a pitch bend mapped to a 8 bit sampling of a potentiometer, which translates to 7 bit up and 7 bit down, wouldn't have the minimum quantization to let the listener perceive it as an analog control. Today cheap MCUs allow adding digital control to analog generators, filters, envelopes etc. to a granularity level (16+ bit) so that any realtime variation would be identical sound wise to a fully analog controlled synth. Latency wouldn'b an issue as we're talking about control and not sound generation: MCUs with no or minimal (realtime) OSes would never impose such higher latencies as in virtual instruments etc. Having an ADSR kick like two milliseconds after the key is pressed would hardly be a problem.
Yeah, but at that point, you're already giving up the "analog purity" that analog synth fans love so much. Might as well just use midi; and then you might as well just use soft-synths; and then you might as well just use Propellerhead Reason, so you can have all the flexibility of gate/CV fully virtualized.
As I know Roger Linn however he is probably already in the process of writing Midi 2.0 support for the Linnstrument firmware
I think it could mark a resurgence in midi guitars, where things like bends tend to quantize a bit too much.
This could be a musical revolution in the making, some 10-20 years from now. Huge, huge implications for the entire industry and craftmanship of "instruments". At the bottom of the market, this could be the proverbial end of the 'cheap' analog stuff for the masses, a world of fantastically sounding budget intruments). At the state of the art, a whole new category of instruments with potentially crazy original software-defined features.
MIDI 2.0 would have been sci-fi not so long ago. It's fantastic that we are here.
It is indeed great news but I do not hear a lot of subtlety in most music, particularly electric genres that believe loud loud square and triangle waves are the future, given the amount I hear.
I must be getting old.
You mean AM radio? ;)
Keep in mind, MIDI is also used for live performances—and not just in raucous club concert venues, but also in pin-drop quiet orchestral performance halls (if the genre isn’t classical.)
Also, more than ever, people are releasing music in high-bitrate lossless formats, making even a compresssed soundstage not particularly lossy.
EDM in particular is full of sonic subtleties that MIDI 1.0 did not really support. I don't think you're really listening to it if you think it's all triangle waves, those aren't even particularly popular in contemporary sound design.
I really don't follow you on this "EDM full of sonic subtleties that MIDI 1.0 didn't support" ? 1) EDM full of sonic subtleties? pray tell. 2) how does a control protocol support sonic obtusities or subtleties in any way shape or form?
MIDI = note numbers, note ON, note OFF (or you need to hit reset as the note will hang) CC or continuous controller, velocity, modulation, pitch-bend... https://www.midi.org/specifications-old/item/table-1-summary...
you can sniff MIDI messages... there's not much to them.
I'm trying to understand how the control protocol would influence the sonic subtleties? It's my distinct experience to note that most EDM features little to no velocity variance nor any mapping of that to volume of oscillators etc. I've also noted a distinct lack of anything resembling subtlety in EDM, but call me biased as I produced dance music for about 30 years and lived touring as a performing act from it for over a decade, but I digress, as I am wont to do from time to time...
triangle waves? do you mean square waves? aka the artifact of ridulously over-compressed music?
Regarding the former point you made: let's not confuse a simple low-level means of remotely issuing continuous controllers with a limited bit value (MIDI CC's) with how you map it in your synthesizer or effect. Smoothing, ramping, interpolating, filtering... You are essentially mapping a coarse range to a finer range and you can apply acceleration curves, etc. there's no limit here, and there hasn't been in software synths/fx for 20 years on this. zipper noise is amateur.
MIDI is essentially a very simply synchronous wire, a stream of events in which the transport timing is THE timing framework, leaving mtc aside for the moment.
to call this protocol MIDI 2.0 is not accurate, as it's more like a meta-MIDI protocol much more like OSC.
all are physical transport agnostic, it's just that MIDI and its 5 pin DIN connector are ubiquitous, present on old gear (old gear is valued with music people...)
and you can connect 1 of those wire, pin 2 or 3 IIRC, directly to your microcontroller and be toggling your sound thingy faster than you can say "debounce"... it's stupidly simple, and the notion of "protocol negotiation" runs counter to the spirit of the original entity.
call this OSC ALT 2 or something...
Filter cutoffs are another example where 7 bits aren't enough, and if they linearly map to 20..20kHz, then even 14 bits isn't enough.
As for conscious piano velocities, there are ppp, pp, p, mp, mf, f, ff, fff, and you could maybe add pppp and ffff for 10. But those are velocity ranges, and you definitely will notice if every note within a passage is quantized to one of 12 or 13 velocity levels.
First of all there's the accent pattern of each measure where in 6/8 time you'd want 6 velocities. There's also expression within a chord and from note to note on a melodic sequence, where e.g. a note struck by the pinky might be expected to be just a little bit quieter. There are gradual crescendos that might last for more than 12 notes as well. And finally there's just the subtle randomness of the player and the instrument that makes things sound natural instead of artificial.
So for a piano piece to sound natural, you absolutely must have more than 128 velocity levels. Maybe 4096 would get you by. Boesendorfer's older CEUS computer piano system used more, but I never used it and it looks like they have switched to Yamaha's Disklavier.
----
All that said, I think you do have a fair point that the jump in complexity is significant from MIDI1 to MIDI2. Each protocol seems to have been designed near the state of the art of its respective time period. Maybe in another 30 years it will be just as easy to drop a $1 microcontroller on a board and talk MIDI2.
you could always do what you described since at least 20 years now, as MIDI need not describe your synths parameters controls
the issues with MIDI are not so much dynamics as timing resolution. 7 bits of dynamics might not sound like much but I'm not confident in any known musicians ability to express dynamics with more than 127 discrete levels lol...
timing resolution of MIDI is great for more quantized musical styles, but for accurately capturing nuanced rubato performances this is the area that needs to be improved.
the primary issue with timing in physical MIDI interfaces is timing STABILITY. this is arguably worse on a modern Mac with CoreMIDI than on an Atari 1020ST... This is directly a product of scheduler vagaries and even firmware. MIDI should be locked to the sample clock, perhaps updating as often as once a buffer or even less... (there was even a recent Macbook Pro that had it's audio clock jittering all over the place due to a power-management IC hardware rev, aka you can't download an update to fix THAT one, but I digress...)
Think one step further: when I hit a key on the piano, or a fret on a guitar, virtually all other strings resonate to some degree, however minutely, and this has to do with harmonic resonances, the geometry of the piano, etc. (Fourier + chaos). Now the only way to convey that kind of subtlety currently is either to digitize "as a whole" (microphone) or discretely (e.g. individual string sensors); but each has its tradeoff that you don't get from the other (no discreteness in your microphone, and the discrete approach probably won't render any accoustic feel, let alone room shape, etc.
Basically, at a mathematical level, it seems like we should be able to get both worlds — a discrete yet complete description of an "instrument", which obviously has to be designed for the purpose. It's really breaking wide open the barrier between the physics of real-world tangible objects and the mathematics of software objects, computation for music. You may thus simulate analog stuff 'perfectly' (good enough to human ear), or quantize real analog also 'perfectly' (enough).
Obviously you could do all of that now building your own stuff, instruments and software and protocols. But having it baked in MIDI is a game changer in terms of actual mainstream use, thus products to market.
In the past year, I got fairly deep into Open Sound Control ², which has so much fun potential and can practically be a superset of MIDI. In fact, I implemented encode/decode from OSC <-> MIDI in C++ and Node.js for a hobby project.
So I wonder, could MIDI and OSC converge in the future?
It seems to me that the latter being a generic protocol for any kind of message, including musical data, that it could supercede depending on industry adoption (like MIDI+OSC instruments)..
---
¹ https://www.midi.org/articles-old/details-about-midi-2-0-mid...
I think I had heard that from an interesting youtube lecture on how MIDI works, which I'll link to just in case anyone is interested: https://www.youtube.com/watch?v=ZPteB_LpHoM
See, MIDI has an elegant simplicity in that you can connect 1 stupid wire (either pin 2 or 3, IIRC) to your micro-controller and before you can even say "debounce" you can be triggering envelopes...
MIDI, as in normal old-assed MIDI is low-level.
Look, I get it! if ONLY we had the full 8 bits for CC's instead of only 7, etc...
The temptation to "improve and update everything" results in the crap 2020 software engineering artifacts that we leave as our legacy: firmly reminding eternity about just how far we believed that modern trendy habits are always the best for everyone always in everything...
I would have joked about making your "profiles" in XML, but then as we know it's 2020 so that would be JSON, lol...
Any big actor did already commit to it (Abelton, Cubase)?
This will also help with WiFi + rtpmidi and bluetooth.
From the (oldish) midi.org article[1]:
> The Universal MIDI Packet format adds a Jitter Reduction Timestamp mechanism. A Timestamp can be prepended to any MIDI 1.0 Protocol message or MIDI 2.0 Protocol message for improved timing accuracy.
1: https://www.midi.org/articles-old/details-about-midi-2-0-mid...
make sense?