5 ms·
Midi 1.0: 127 steps Midi 2.0: 4,294,967,296 steps https://www.midi.org/midi-articles/details-about-midi-2-0-midi-ci-profiles-and-property-exchange https://www
by sova 5y ago
Midi 1.0: 127 steps
Midi 2.0: 4,294,967,296 steps
https://www.midi.org/midi-articles/details-about-midi-2-0-midi-ci-profiles-and-property-exchange https://www.midi.org/midi-articles/details-about-midi-2-0-mi...
- romwell 5y agoNumber big, protocol better! Ever heard of NRPN, my friend? There's a reason why this part of the MIDI spec is rarely used. And the reason is that the musicians don't need it. If you can hear stepping on your pitch bend or filter, it's not because MIDI, it's because the implementation on your device is stupid.
- jmull 5y agoYup. MIDI 2: solving problems musicians don't have and creating new problems! (Excessive complexity -- MIDI 1 was hard enough to implement. MIDI 2 is telling everyone to jump 10ft high -- good luck with that.)
- mrandish 5y agoI agree that many of the things in MIDI 2.0 don't seem directly relevant to the bread-and-butter musicians, composers, mixers, producers and DJs who are the ultimate users. The numeric bumps in resolution, data and packets are all conceptually fine but it's not like they are addressing the standards gaps most holding back users and forward innovation. Personally, I was disappointed they didn't even make a stab toward addressing higher layers in the stack like standardizing multi-channel mixing control beyond the ancient 'defacto' Mackie HUI format or some attempt at a framework for software plugins running on hosts to display GUI on controllers (even something very open/extensible ala HTML/CSS). That could have unleashed waves of innovation from indie and smaller developers.
- capableweb 5y ago> MIDI 1 was hard enough to implement MIDI 1 is one of the easiest protocols I've ever interfaced with myself. Getting started on any platform is easy, the API is not that large and it's relatively straightforward. You can on Linux write bytes directly to /dev/midi and get up and running really quickly, and the specification is not that big. See https://ccrma.stanford.edu/~craig/articles/linuxmidi/ https://ccrma.stanford.edu/~craig/articles/linuxmidi/ for some examples. What did you find hard in implementing MIDI 1? Would be nice to hear the opinion for something I haven't heard in real life (yet?).
- PaulDavisThe1st 5y agoParsing running status + sysex + system RT messages is non-trivial. A full state machine for MIDI is much more complex than it tends to initially appear. But yeah, it's not rocket science. It's not even as hard as grappling with std::move()
- md8z 5y agoMaybe the core specification isn't that big a deal if you're just trying to get started writing some note on/off messages, but the full set of specifications with all the controllers and sysex messages and extensions and supplements is pretty long: https://www.midi.org/specifications-old/item/the-midi-1-0-specification https://www.midi.org/specifications-old/item/the-midi-1-0-sp... And you can add in that vendors also have weird proprietary sysex messages a lot of the time. Also I second a sibling comment here, there are a decent number of gotchas with the state machine.
- nitrogen 5y agoIf you're using only one 7-bit CC (and not an MSB/LSB pair) to control a filter cutoff parameter that can range from 20Hz to 20kHz, it's not possible to dial in the exact frequency you want to match a particular harmonic.
- atoav 5y ago> If you can hear stepping on your pitch bend or filter, it's not because MIDI, it's because the implementation on your device is stupid. Or because you are stepping across 5 octaves instead of just one.
- sova 5y agoI have not heard of NRPN until now. Thanks for the pointer. Adding frequency support for any frequency and adding whole-number ratio harmonizing would have been preferable to me personally.
- em3rgent0rdr 5y agoOn this matter I must say for playing music live that the 127 steps provides a great deal of resolution. Good enough for me that I have never felt like my EWI's breath sensor was not fine enough or that my piano's touch sensor was not fine enough or that a CC knob didn't give enough resolution when turning slowly. Though if I listen closely to an isolated note I could tell there was a difference in loudness between two neighboring velocity steps, but probably couldn't tell in a live performance setting, and I would challenge listeners to see if they could tell the difference. I would say 127 steps is "good enough" or almost is for practical purposes...But that is just my datapoint and opinion. (For comparison, the most common video format is YUV420, and that averages to 12-bits per pixel, and most screen monitors use 8-bits for each color.) Had MIDI used the top bit to flag an optional extra byte for resolution, then that would have been great.
- NateEag 5y agoI trained as a classical pianist before moving to the world of synthesizers ...and rock 'n' roll. The very few electric pianos I've played that didn't feel painfully limiting in dynamic expression were high-end instruments with a whole lot more than 127 velocity values. Similarly, I have the obscure but magnificent Nord G2X, which mostly uses MIDI for mapping physical knobs to parameters in patches, but its mod wheels are much higher resolution. I strongly prefer the mod wheels for params that cover a wide span, like filter cutoff frequency, because I can feel and hear the stair-stepping when using knobs.