fbpx
Skip to main content

MIDI Forum

What is best method...
 
Notifications
Clear all

What is best method to get USB MIDI 2.0 running on MCU

7 Posts
5 Users
0 Reactions
239 Views
Posts: 2
New Member
Topic starter
 

Hi,

I know MIDI 1 quite well. But I'm new to MIDI 2.0. And I know a little but about USB. But I have no clue how to get USB MIDI 2.0 running on a MCU like:
NXP: iMXRT 10xx or 11xx
MicroChip: SAM S7x or E7x

I search the internet and this forum. I learned a lot from that. But still I have no idea what would be the best way to get this working.

First learn USB and get MIDI 1.0 working over MIDI? Then work on MIDI 2.0?
Searching for examples and try to port to the correct MCU?
Search for a library that has the MCU already supported?

Any advise is welcome!

 
Posted : 22/10/2024 11:33 am
Clemens Ladisch
Posts: 324
 

Implementing USB is not easy. If you do not have experience with this, you should indeed start with USB MIDI 1.0.

Note that such libraries always depend on the specific USB implementation in the MCU. As far as I know, libraries exist for Teensy, some Arduinos, and STM32.

 
Posted : 23/10/2024 10:18 pm
Mike Kent
Posts: 86
Trusted Member
 

You should start with the open-source libraries from leading MIDI Association members which are available at www.midi2.dev. You will find a USB MIDI 2.0 device implementation which runs on the AmeNote ProtoZOA development platform, using a Raspberry Pico. It supports USB MIDI 2.0 with a fallback to USB MIDI 1.0 when connected to a legacy system which is not MIDI 2.0 ready. That reasonably is ported to other MCUs. USB Descriptors are easy to get wrong, even for USB experts, so also use the USB MIDI 2.0 Descriptor Builder at the same site. It integrates directly with the code for the ProtoZOA.

Chair of MIDI 2.0 Working Group

 
Posted : 26/10/2024 9:39 pm
Posts: 1
New Member
 

Implementing USB is not easy. If you do not have experience with this, you should indeed start with USB MIDI 1.0. . It integrates directly with the code for the ProtoZOA. 

This post was modified 2 months ago by KIMS School
 
Posted : 03/11/2024 10:42 pm
Muzak
Posts: 86
Estimable Member
 

1. Buy a $2 Pico.

2. Build/Load the Protozoa code.

3. Read the MIDI UMP spec

4. Experiment (and learn).

5. Understand USB low level code of another platform (USB requests)

6. Port the legacy code with MIDI 2.0 support (you may need still support legacy MIDI USB packets as well)

Join discord for MIDI 2.0, such the one for Microsoft MIDI and (link) as such for a lot of good discussions that may help you understand more of the details.

This post was modified 2 months ago 4 times by Muzak
 
Posted : 04/11/2024 4:18 am
Posts: 2
New Member
Topic starter
 

Hi @Muzak, What do you mean by number 5?

 
Posted : 04/11/2024 4:39 am
Muzak
Posts: 86
Estimable Member
 

Beside the protozoa code, a reference can be other platforms MIDI implementations to understand USB transactions, that may help to understand how to implement UMP .

Without understanding USB requests, descriptor etc.. it will be a steep learning curve to implement UMP.  UMP is not that different from MIDI 1.0 just the packet format is different.

There is a bunch of open source MIDI 1.0 code on the web for several MCU's from Microchip, NXP, and STM.

 
Posted : 27/11/2024 4:42 am
Share: