AmeNote ProtoZOA and USB MIDI 2.0 Device
The AmeNote ProtoZOA hardware platform is a flexible prototyping tool for MIDI 2.0 and is the standard testing device chosen by and funded in part by the MIDI Association. Open source firmware provides MIDI 2.0 interfaces and functions for developers to use in their own hardware and software products. ProtoZOA provides a USB MIDI 2.0 Class Compliant Device on a Raspberry Pico, designed specifically to jump-start prototyping and validation of Universal MIDI Packet (UMP) functions and fuel the MIDI 2.0 revolution. ProtoZOA integrates closely with the MIDI 2.0 Workbench.
Tiny USB MIDI 2.0 Device
This is a Tiny USB Device driver for USB MIDI 1.0 and USB MIDI 2.0 as a unified device. Allows implementor to create hardware MIDI devices which are fully compliant with USB Device Class specifications. Includes the fallback mechanism from 2.0 to 1.0 as defined in USB MIDI 2.0.
USB MIDI 2.0 Descriptor Builder
This is tool for easily creating valid descriptors for USB MIDI 2.0 Devices, which are so easy to get wrong. Fill in properties in a form to generate an output of the necessary descriptors. Supports the tusb_ump library, a USB Device used in the ProtoZOA, and the Linux MIDI2 Gadget Driver.
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.
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.
*Note: This MIDI2 Developer Collaboration is not a project of the The MIDI Association, but was founded by key participants in the development of MIDI 2.0, working as members of the MIDI Association. The MIDI 2.0 Logo is a registered trademark of the MIDI Association, used under license. The M2 Logo is a trademark of the MIDI2 Developer Collaboration at MIDI2.dev.