Midi 2.0

I'm eagerly awaiting MIDI 2.0 on a Teensy someday, though I fully understand Paul's request for certain prerequisites.

Right now I've got a Teensy-based MIDI controller that works great but only with 1/4 of its capabilities enabled at any given time. It will only realize its full potential once 2.0 is more widely available. Until then, I will keep refining other aspects like the UI, ergonomics, etc... patiently (could be a couple more years before 2.0 really matters, who knows).

I appreciate the effort both past and future on MIDI support.
 
reading Paul's p#23 - it seems it needs to be established and commonly available to use an off the shelf device with support of a common OS.

Until then following the spec might get something technically correct - with lots of work to verify - and then have an audience of ONE person testing on some specific hardware.
 
Right. Like I said I'll wait patiently. Eventually though this will trickle down into most electronic music gear, I hope, instead of this going the way of Super Audio CDs. MIDI 1.0 has been incredibly useful and has a lot of room to improve so I am optimistic.
 
Any update on a library for MIDI 2.0 for Teensy? I see the new Teensy 4.1 has easy Ethernet hookup with the added header, so it would be a great match.
 
There still aren’t many MIDI 2.0 compliant devices to test with. The USB spec was released, so we may see Apple and Microsoft build it into future OS updates, which would help get things started.

If you’re looking for more expression Or resolution you might check out MPE, or OSC, which are already established. You can also accomplish a lot of the MIDI 2.0 parameter exchange using standard sysex and following the spec, which would make your code forward compatible (in theory).
 
Just to repeat what I said on msg #23:

I'm not going to actually *do* anything until at least one operating system has a driver and at least some sort of software we can use for testing. I might also wait until at least 1 moderately priced product is available implementing MIDI 2.0 as a USB device, so I can watch what it actually does with my USB protocol analyzer.

If anyone wants me to implement MIDI 2.0 on Teensy, please be prepared to point to where I can get those 3 things.

Pointing to the spec isn't enough. Please point to driver support (Linux preferred), software, and at least 1 reasonably MIDI 2.0 product.
 
Getting closer!

Just to repeat what I said on msg #23:



Pointing to the spec isn't enough. Please point to driver support (Linux preferred), software, and at least 1 reasonably MIDI 2.0 product.

https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.5 (released 2023/08/27)

ALSA and ASoC Core:
- Support of MIDI 2.0 devices: rawmidi and sequencer API have been
extended for the support of the new UMP (Universal MIDI Packet)
protocol, USB audio driver got the USB MIDI 2.0 interface support
- Continued refactoring around ASoC DAI links and the ordering of
trigger callbacks
- PCM ABI extension for better drain support

Now we just need some software and a product. Given how many instruments are now linux machines, this driver might help enable that.
 
The MIDI org has development boards (RP2040 based) available to members ($600/yr) that have functioning USB MIDI 2.0 drivers and are currently working with macOS CoreMIDI, which now supports MIDI 2.0. Logic also supports MIDI 2. These boards are running firmware that is currently only available to org members, but will be released as open source, likely as a fork or update to tinyUSB.

Some of this code can be found at this github link, although this repo is out of date compared to what is in develolment by the org. But it will give you some idea of the complexity of what is going on in midi 2.

https://github.com/starfishmod/MIDI2_CPP

There is also an electron based MIDI 2.0 workbench application, available to members as source code, developed by the org which may also be released to the public in the future.

You’ll likely see more Midi 2.0 devices on the market next year that were developed and tested against these dev boards with the workbench software.

There’s been a push within the org towards open source and we are slowly getting there. Developers that are eager to get to work with MIDI 2.0 should consider if $600/yr (and a sysex id) are within your budget, as you do get access to more of these tools earlier.

You can also see what Microsoft is currently working on for their MIDI 2.0 driver and API here:

https://github.com/microsoft/MIDI

They have a somewhat active discord, although be warned it is not a tech support resource.
 
I've received the occasional notification of activity on this thread for the past few years now, and for what it's worth I still follow up every time just in case. The day MIDI 2.0 finally becomes feasible in the Teensy/Arduino world I'm going to celebrate by restarting a huge project I burnt myself out building for 4 years, with renewed determination... :D
 
Just to repeat what I said on msg #23:



Pointing to the spec isn't enough. Please point to driver support (Linux preferred), software, and at least 1 reasonably MIDI 2.0 product.
But now devices use the standard "TSMIDI2.0" since a while, supported by the microsoft windows and driver implementation is the same used by Teensy midi devices (I checked all the kernel drivers used in both cases (T4 midi and my midi2 device), which are the exactly same standard ms windows drivers).

All that seems needed is to make T4's comply to the UMP protocol?
Am I missing something?

I'm very interested by this because I'm currently developing fairly complex control surfaces with Teensies (4.x) ATM, and I can put down a DAW easily when the control surface gets quite verbose in terms of communication and events, but maybe I'm making another assumption which is that the DAW software running on windows would then use the midi2.0 protocol if I would make my device midi2.0 compliant anyway which seems true but I'm not sure about that (windows will use the protocol when it detects UMP comm transparently) ?

Another interesting resource i found is tusb_ump (reusing tinyUSB), tinyUSB seems to list T4's as compatible devices, how hard would it be to try these?
For reference, TinyUSB lib here
 
Last edited:
But I'm not going to actually *do* anything until at least one operating system has a driver and at least some sort of software we can use for testing. I might also wait until at least 1 moderately priced product is available implementing MIDI 2.0 as a USB device, so I can watch what it actually does with my USB protocol analyzer.

If anyone wants me to implement MIDI 2.0 on Teensy, please be prepared to point to where I can get those 3 things.

I guess these 3 things are present now.
@PaulStoffregen: doet this mean you are working on MIDI 2.0 for Teensy now? I really really hope so.
 
Pointing to the spec isn't enough. Please point to driver support (Linux preferred), software, and at least 1 reasonably MIDI 2.0 product.
There is now at least one MIDI 2.0 product (Roland A-88MKII, with revision 2 firmware). However this is a high-end product (hammer-action 88-key keyboard, for example) at a correspondingly high-end price ($1,266.99 at Sweetwater).

(I do periodically look for other controllers).

Thus, the entirely reasonable criteria listed by Paul are getting there, but have not been met.

Notice too that the only MIDI 2.0 transport defined so far is for USB-C.
 
There is now at least one MIDI 2.0 product (Roland A-88MKII, with revision 2 firmware).

The KORG Keystage (49-key) comes in at about half the price: $600 USD, new.

What I'm looking forward to with MIDI 2.0 support is much-improved resolution beyond the mere 127 steps provided in old-fashioned MIDI. I'd love to use my Teensy as a high-resolution MIDI to CV device to control my modular synths. It would add flexibility to my setup to be able to do this using MIDI channels instead of audio channels. This is especially useful on platforms (like iOS/iPadOS) that support connectivity to multiple simultaneous MIDI devices but limit audio connectivity to one device at a time.
 
In theory MIDI 1.0 supports 14-bit data (MSB/LSB paired change controllers, High Resolution Velocity prefix, NRPN) but in practice most controllers don't take advantage of it. My long-term project to make an MPE-compatible Eurorack MIDI to CV converter does use 14-bit DACs though, because sometimes I live in hope. (Also it helps to do smoothing of 7-bit values).

The initial draft of MPE did, too, but as I noted at the time the final spec removed this.
 
While waiting on response, I'm curious if the Teensy ADC will be able to support MIDI 2.0, or will an external higher resolution 14 or 16-bit ADC be required?

I'm especially interested because I make fader products with the Teensy, and I'd love to know if existing products will be upgradeable via software update, or if new hardware has to be developed...

Thanks for any insights from anyone.
 
While waiting on response, I'm curious if the Teensy ADC will be able to support MIDI 2.0, or will an external higher resolution 14 or 16-bit ADC be required?
MIDI 1.0 already allows for up to 14-bit (2x 7bits) MSB/LSB resolution for many controls, I think that unless you need more than 16384 steps, that should be plenty for your fader hardware. You don't need to wait for MIDI 2.0 for that.
 
MIDI 1.0 already allows for up to 14-bit (2x 7bits) MSB/LSB resolution for many controls, I think that unless you need more than 16384 steps, that should be plenty for your fader hardware. You don't need to wait for MIDI 2.0 for that.
Thanks. It is my understanding the Teenys go to 12-bit resolution and are noisy at 12-bit, and work best at 10-bit. That's why I'm asking about it...
 
14-bit resolution in MSB/LSB CC pairs is just an artefact of how MIDI transmits data. The question then is not "do I need more than 16k steps" it is "do I need more than 128 steps". 10-bit fader value is 8 times more precise than a 7 bit one.
 
14-bit resolution in MSB/LSB CC pairs is just an artefact of how MIDI transmits data. The question then is not "do I need more than 16k steps" it is "do I need more than 128 steps". 10-bit fader value is 8 times more precise than a 7 bit one.
Thank you. Perhaps I'm not understanding responses, apologies, but I am asking if the Teensy hardware will support MIDI 2.0, which requires 16K steps for high resolution controls. My understanding is you can always interpolate/upscale 10-bit values, but how effective is this? How smooth? Is this how manufacturers will do it, or will they opt for higher resolution ADCs?

And yes I do need more than 128 steps to support high resolution MIDI 2.0 output. And even 10-bit values, although yes, 8X higher than current MIDI output, is not the same as 16K steps...

MIDI 2.0 will support legacy units, so it's not a question of compatibility. It's a question of being able to utilize the capabilities it offers.
 
but I am asking if the Teensy hardware will support MIDI 2.0, which requires 16K steps for high resolution controls. My understanding is you can always interpolate/upscale 10-bit values, but how effective is this? How smooth? Is this how manufacturers will do it, or will they opt for higher resolution ADCs?
I think you might want to ask yourself a better question first: what is the maximal real resolution my faders can meaningfully deliver ? (maybe use a simple test jig and and i2c analog external multiplexer with high resolution ADC and/or a scope for that). It's probable that you'll find that the analog resolution you need is actually below or same as what most 10/12bit ADC's can handle. Interpolation and (also averaging) is also commonly used anyway for a proper embedded design.
 
I think you might want to ask yourself a better question first: what is the maximal real resolution my faders can meaningfully deliver ? (maybe use a simple test jig and and i2c analog external multiplexer with high resolution ADC and/or a scope for that). It's probable that you'll find that the analog resolution you need is actually below or same as what most 10/12bit ADC's can handle. Interpolation and (also averaging) is also commonly used anyway for a proper embedded design.
Makes total sense. Thank you so much for your thoughtful response.
 
Back
Top