Microsoft opens MIDI 2.0 repo
devblogs.microsoft.com
devblogs.microsoft.com
Edit: I don't want to make out that I spearheaded the project or anything. I just spent several years politely bothering people at music industry trade shows and on industry forums. All the heavy lifting was done by other people.
"This is something I've been wanting for 22 years."
In the system exclusive message section you can find references to Fairlight, Kurzweil, etc.
1:https://www.recordingblogs.com/wiki/midi-system-exclusive-me...
Sounds like MIDI 2.0 will help with some of this, at least.
The ability to create analog waves naturally is something that I thought software would struggle with, or at a minimum, be too difficult/time consuming.
It hasnt turned into anything useful, never ended up making any public music, but as far as I can tell, I can create weird sounding music faster than anyone with software.
I'm happily waiting for AI Music to turn my blah into fab.
But RS232 dates back to the 60s https://en.wikipedia.org/wiki/RS-232
> In telecommunications, RS-232 or Recommended Standard 232[1] is a standard originally introduced in 1960[2] for serial communication transmission of data. It formally defines signals connecting between a DTE (data terminal equipment) such as a computer terminal, and a DCE (data circuit-terminating equipment or data communication equipment), such as a modem.
One of my very first experiences with coding was communicating with devices over serial with RS232. 25 years later it's mostly usb-adapters and 5v TTL converters instead of the old school (in my day) db9 connectors. But I still use it all the time for hobby projects.
It wouldn't be wrong to say MIDI is protocol running on top of RS232 (of specific config and bitrate)
In fact easiest way to get MIDI IN/OUT is using UART on microcontroller + an optocoupler
MIDI physical layer is pretty much unique to MIDI and a kind of an ugly, but cheap and reliable (when done correctly), hack.
Edit: technically you can wire RS232 transmitter to MIDI receiver and if both follow the respective specification the Tx should not source enough current to blow the Rx optocoupler. But it will generally not work the other way around because in absence of said optocoupler the relationship of the MIDI signal (which is a current loop referenced to more or less unspecified potential) to receiver ground matters.
There likely are way older protocols in telephone networks.
SS7 is newer than TCP
Yes, but 1974 TCP is completely incompatible with the current TCP. In the original 1974 version of TCP – https://datatracker.ietf.org/doc/html/rfc675 – they hadn't yet split TCP and IP out into the separate protocols. I'm not sure what is the earliest version which is interoperable with contemporary TCP/IPv4 – probably either the 1981 version – https://datatracker.ietf.org/doc/html/rfc793 – or the 1980 version – https://datatracker.ietf.org/doc/html/rfc761
TCP/IP first entered into widespread production use on 1 January 1983, when ARPANET switched over to it from the earlier (incompatible) NCP protocol. The version of it adopted at the start of 1983 had been finalised in 1981/1982. Prior to that, it was only used on a research/experimental basis, which meant that incompatible changes were frequent.
Does MIDI 2 have broad vendor buy-in? We all know about Microsoft's history here.
Is MIDI 2 a good thing overall?
"What Musicians & Artists need to know about MIDI 2.0": https://www.midi.org/midi-articles/what-musicians-and-artist...
But the big difference is that MIDI 2 is duplex (devices can send and receive messages from each other, rather than just broadcasting them into the void). This allows for discovery (devices can find each other on the same connection/network), capability inquiry (devices can get metadata about each other) and the super power: property exchange (get/set properties as JSON).
The reason the last bit is so big is because it fixes some giant issues with MIDI, like being unable to control the tuning system used by all the connected devices. With some conventions and the new protocol we should see MIDI 2 open up a lot of room for non-western and microtonalities without resorting to tedium or hacks.
But that's just an example. It's kind of like a binary protocol for hardware and software music devices that goes beyond basic performance controls.
Biggest promises on top of better data types is actual device discovery, so for example after connecting control keyboard to a synth you can have the knob names automatically populated. And no hacks needed to get MPE
Eh...integrating yes, support? And effectively declaring themselves in charge of MIDI specs, hmmm ("...no longer under NDA etc").
Maybe you’ve heard of it.
In all seriousness, I would say that today Microsoft does a better job supporting open source projects than most of their peers.
Not sure if this is genuinely important, but always happy to see humanity make a solid step forward with almost no chance of regression.
https://www.midi.org/midi-articles/midi-polyphonic-expressio...
AMEI themselves wrote a clean Windows interfacing portion of the driver. But they copy and pasted a MIDI driver meant for Arduinos for message parsing
The code formatting is awful. you can't even follow nesting of if statements properly in some places
https://github.com/microsoft/MIDI/blob/main/src/usb-driver/U... https://github.com/microsoft/MIDI/blob/main/src/usb-driver/U... https://github.com/microsoft/MIDI/blob/main/src/usb-driver/U... https://github.com/microsoft/MIDI/blob/main/src/usb-driver/U...
Not something I ever want to see in a OS Vendor endorsed and probably soon distributed by default USB Driver lol
I think the reason why you might get banned is because your tone comes across as harsh and non-constructive.
If instead of saying "The code formatting is awful", you said "I noticed the code formatting is a bit inconsistent and I'm not sure what (if any) code style it is following. Is there any way I can help improve this? Do you have a standard code formatting you follow, or any tools you've used to enforce code formatting? I've used X in the past, and I could contribute a PR to set you up with that, if that's something you are interested in" – nobody is going to ban you for putting it that way
They make it sound that way: "We’re opening the repo!"
They couldn't legally open it until now due to the MIDI Association's NDA.