News for hackers. Stuff that matters.
Re:MIDI 2.0 Prototyping announced by MrBuddyCasino on Saturday January 19, 2019 @07:03AM (#18946584)
Its solid as in "it works and has aged well", but the spec has accumulated lots of cruft and is not straightforward at all. I once upgraded a Rust midi parser to learn Nom, thinking that midi should be an easy format. I was very wrong.
Re:MIDI 2.0 Prototyping announced by TheRealPomax on Saturday January 19, 2019 @12:57PM (#18948214)
It's the simplest spec I know of, except for the sysex part, which due to basically being "whatever a vendor wants it to be", you can basically ignore entirely. Anything that has to work with sysex is basically an independent parser that you write in additional to your MIDI parser.

Getting it cleaned up, though, will be wonderful. It's about a decade late, but hey. Music industry. It moves at a speed parallel to us, just at a 10 year delay. Looking forward to machine learning synths in 2030!

Re:MIDI 2.0 Prototyping announced by boomlinde on Saturday January 19, 2019 @02:33PM (#18948732)
I think the only thing I wish they'd done differently, considering the limitations of the time, is to disambiguate how you turn a note off. I don't know why you would release 1.0 of a spec with specifying that Note off and Note on with velocity 0 are interchangeable.
Re:MIDI 2.0 Prototyping announced by droithomme on Saturday January 19, 2019 @06:48PM (#18950001)
It's because of running status. If your status byte doesn't change you don't have to retransmit it. This cuts the latency down by 1/3ms when you're just playing notes which is the most common case. You should only send note off messages (instead of note on velocity 0) when your instrument actually supports release velocity, which few do.
Re:MIDI 2.0 Prototyping announced by boomlinde on Saturday January 19, 2019 @09:13PM (#18950502)
Ah, that makes sense. I'd have said that note on velocity 0 would have made most sense as a single choice because of running status, but I didn't know that release velocity had any practical significance.

That said, I'm sure I've seen cheap controllers send note off messages though I doubt they supported release velocity.

Re:MIDI 2.0 Prototyping announced by sramsay on Saturday January 19, 2019 @09:11AM (#18947128)
Yeah, I think you're describing a very common experience for developers hoping to work with MIDI. "Hey, a standardized format! How hard can it be? Oh . . ."

Even without achieving all the things outlined above, just clearing away ambiguity in the spec would be a huge leap forward.

Re:MIDI 2.0 Prototyping announced by boomlinde on Saturday January 19, 2019 @01:56PM (#18948534)
Are you sure that you aren't confusing MIDI with SMF? With MIDI my experience was that it was very simple to implement and understand the standard. It took me <100 lines of C. SMF on the other hand looks quite a bit messier.
Re:MIDI 2.0 Prototyping announced by MrBuddyCasino on Wednesday January 23, 2019 @11:15AM (#18979512)
Ah yes, its about parsing a midi SMF file. Wasn't aware there is such a large difference between that and midi-the-wire-protocol.