fbpx
Skip to main content

MIDI2.dev: Open-Source Resources for MIDI 2.0 Developers


We recently sent out a survey about our NAMM plans and one of the interesting comments came from a developer.

I’ve been following up with the development of MIDI 2.0 for a long time as an open source developer. Not having open tooling to validate the development is really sad and delays adoption by the community. Why didn’t you open the MIDI workbench or some other tooling to help developers simulate devices, inspect communications and validate our software/hardware yet?

from the recent MIDI Association survey

The MIDI Association and our members agree. After much internal discussion, we decided the best way to accomplish this goal was to have a number of our members create a website specifically for open source resources.

Key contributors to the MIDI 2.0 specification open a new website and github with open source resources for developing MIDI 2.0 products.

Mike Kent, chair of the MIDI 2 Working Group, his partner Michael Loh, chair of the OS API Working Group, Andrew Mee, recently elected Technical Standard Board member and Chair of the Developer Support Working group, and Franz Detro of Native Instruments formed a consortium of individuals whose aim is to promote the adoption of MIDI 2.0 by providing tools and libraries useful to developers. Resources include C++ Libraries, USB helpers, testing applications, and more from leading contributors to the MIDI 2.0 specifications.

Here is an overview of the resources available at https://midi2.dev/. These are available under permissive open-source licenses. 


MIDI WORKBENCH MIDI 2.0 TESTING AND COMPLIANCE TOOL

The MIDI Workbench MIDI 2.0 is a Standalone Electron Application for complete MIDI 2.0 environment. This workbench uses UMP internally and translates MIDI 1.0 (including MPE) to and from MIDI 2.0. 


...

GitHub – midi2-dev/MIDI2.0Workbench: MIDI 2.0 Testing Tool

MIDI 2.0 Testing Tool. Contribute to midi2-dev/MIDI2.0Workbench development by creating an account on GitHub.

This Project aims to follow the current public MIDI specifications. This project is supported and copyrighted by Yamaha Corporation 2020 and provided under an MIT license. 


AmeNote ProtoZOA

AmeNote ProtoZOA is a flexible prototyping tool for MIDI 2.0. Open source firmware provides MIDI 2.0 interfaces and functions for developers to use in their own hardware and software products.

  • MIDI 2.0 with MIDI-CI Discovery
  • USB MIDI 2.0 Class Compliant Device
  • Universal MIDI Packet Data Format
  • MIDI 1.0 <-> MIDI 2.0 Translation
  • MIDI 1.0 Input / Output Ports
  • Expansions for MIDI 2.0 UMP Network, A2B Network, CME BLE MIDI, SPI, UART
  • Open-Source Code on Raspberry Pico
  • PicoProbe for integrated debugging

AmeNote developed and provides a USB MIDI 2.0 Class Compliant Device on ProtoZOA, designed specifically to jump-start prototyping and validation of UMP functions and fuel the MIDI 2.0 revolution. ProtoZOA encourages speedier adoption of MIDI 2.0 by:

  • Providing an affordable, flexible prototyping platform to enable software and hardware developers to start testing and prototyping MIDI 2.0.
  • Providing a testing platform which connects via the USB MIDI 2.0 drivers recently released by Apple and Google and a test tool for Microsoft as AmeNote develops Windows host drivers.
  • Provide USB MIDI 2.0 source code that other hardware developers can use under a no-charge permissive license.

The MIDI Association helped to fund the development of the Protozoa and made it available to dues-paying members of the MIDI Association and the Association of Musical Electronics Industry. Some 60+ member companies have been using ProtoZOA for over a year. Now AmeNote is making ProtoZOA available to all non-member developers. The Protozoa is available for purchase on the Amenote website in a variety of configurations.


AM_MIDI2.0Lib

This is a general purposes Library for building MIDI 2.0 Devices and Applications. This library is targeted to work on everything from Arduinos through to large scale applications. It provides foundational building blocks, processing, and translations needed for most MIDI 2.0 Devices and Applications. 


ni-midi2

The library provides the basic functionality of UMP 1.1 and MIDI-CI 1.2 by providing base classes for all UMP 1.1 packet types, (Universal) System Exclusive messages and MIDI-CI messages. There are concrete types for controllers, velocity and pitch, plus type aliases for common message field types. Mathematical operators allow to do integer / fixed point math on pitches and controllers, type constructors allow initialization with values of different resolution. Conrete instances of packets or messages are created using factory functions. Incoming packets and messages are inspected using data views. The library is completed by a number of helper functionalities dealing with conversion from / to MIDI 1 byte stream data format, collecting sysex messages and more.


AmeNote tusb_ump Device Driver for tinyUSB

AmeNote Universal MIDI Packet (UMP) USB MIDI 2.0 / USB MIDI 1.0 Class Driver for tinyUSB Device

As part of the midi2.dev community and with the intention of contributing back to tinyUSB, AmeNote is providing a class driver for USB MIDI (either 1.0 or 2.0) for tinyUSB USDB Device integrations. With the correct descriptors and configuration, the driver will enable embedded devices using the tinyUSB embedded library.

The driver is compatible with hosts selecting either USB MIDI 2.0 or USB MIDI 1.0 standard. If USB MIDI 1.0, the driver will translate between USB MIDI 1.0 and UMP packets. All embedded applications will interface using UMP packet data structure as a series of 32-bit words.

TODO: Example code and integration guide will be provided


usbMIDI2DescriptorBuilder

Andrew Mee has created a tool to help correctly build USB descriptors. USB descriptors can be quite difficult for developers to get right and this tool will create USB MIDI 2.0 Descriptors for the tinyUSB and Linux MIDI2 Gadget Driver.


These MIDI 2.0 developer resource efforts highlight what is truly unique about the MIDI Association.

Since MIDI’s genesis, companies that are traditionally fierce competitors have chosen cooperation as the best way to solve difficult problems—and to contribute those solutions at no charge back to the global community, for the benefit of musicians, artists, and engineers everywhere.

by MIDI Association president, Athan Billias.