Getting started with MIDI 2.0 development – On-demand

If you’re looking to book multiple tickets, please contact us for an invoice at info@stagingmhs.local

Level: Intermediate, Some experience with C++ coding required, Experience with JUCE recommended

To make the most of this on-demand workshop, participants should have experience building and debugging applications using Xcode (macOS) and Visual Studio (Windows).

Who is this course for:

Developers wanting to learn how MIDI 2.0 works under the hood, and how to get started writing software for it right away

Overview of what participants will learn:

This course will provide developers with knowledge and code for starting MIDI 2.0 development. At first, the concepts of MIDI 2.0 are explained. Then, the participants will co-develop a first implementation of a MIDI-CI parser for robust device discovery, and for querying and offering profiles. For that, a stub workspace will be provided. Exercises will let the participants practice the newly learned concepts. Last, but not least, this course also includes automated testing as a tool to verify the implementation.

Part 1: Overview of MIDI 2, concepts

  • MIDI-CI, Profiles, protocol negotiation, PE, UMP
  • Concepts
  • Tools
  • MIDI-CI Message Layout

Part 2: Workspace setup, Basic MIDI 2.0 Discovery

  • Workspace setup
  • Starting with a unit test
  • Implementing a MIDI 2.0 message parser
  • Implement MIDI 2.0 discovery

Part 3: Advanced MIDI 2.0 discovery and tests

  • making the parser more robust
  • MUID collision handling
  • Multi-port and MIDI Thru issues
  • unit tests + implementation

Part 4: Implementing Profiles. Outlook PE and UMP.

  • Use Cases
  • Sending and receiving Profile messages
  • Implementation and tests
  • Quick introduction to PE and to UMP


At the end of the course series, the participants will:

  • Know the core concepts of MIDI 2.0
  • Understand the MIDI 2.0 discovery protocol
  • Be able to build products with MIDI 2.0 discovery
  • Be able to build products using MIDI 2.0 Profiles
  • Use an initial set of MIDI 2.0 unit tests


A computer and internet connection

Xcode (macOS)/Visual Studio (Windows)

JUCE workspace

About the course leaders

Brett Porter is Lead Software Engineer at Artiphon, member of the MIDI Association Executive Board, and chair of the MIDI 2 Prototyping and Testing Working Group. He is based in the New York City area.

Florian Bomers runs his own company Bome Software, creating MIDI tools and hardware. He has been an active MIDI 2.0 working group member since its inception. He serves on the Technical Standards Board of the MIDI Association and chairs the MIDI 2.0 Transports Working Group. He is based in Munich, Germany.