Getting started with MIDI 2.0 development - On-demand



Share this product

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

Attendees should have experience building and debugging applications using Xcode (macOS) and Visual Studio (Windows).

Who is this workshop 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 workshop 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 workshop also includes automated testing as a tool to verify the implementation.

Session 1: Overview of MIDI 2, concepts

Session 2: Workspace setup, Basic MIDI 2.0 Discovery

Session 3: Advanced MIDI 2.0 discovery and tests

Session 4: Implementing Profiles. Outlook PE and UMP.

At the end of the workshop 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 


  • MIDI 2.0 concepts

  • MIDI 2.0 Discovery

  • MIDI 2.0 Profiles

  • Unit Testing

Session 1: Overview of MIDI 2

  • MIDI-CI, Profiles, protocol negotiation, PE, UMP

  • Concepts

  • Tools

  • MIDI-CI Message Layout

Session 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

Session 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

Session 4: Profiles implementation. Outlook PE and UMP

  • Use Cases

  • Sending and receiving Profile messages

  • Implementation and tests

  • Quick introduction to PE and to UMP


  • A computer and internet connection

  • Xcode (macOS)/Visual Studio (Windows)

  • JUCE workspace

About the workshop 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.