2 ms·
> 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
by 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.