MIDI 2.0 - Introduction to the Universal MIDI Packet - Workshop 1

Membership plan: Going Deeper | Topics: Creative Coding

Course overview

MIDI 2.0 is set to power the next generation of hardware and software with enhanced features for discovery, expression and faster communication. The Universal MIDI Packet (UMP) is a fundamental aspect of MIDI 2.0, which allows programs to negotiate and communicate with MIDI 1.0 and MIDI 2.0 products.

In this workshop, you will learn from a member of the MIDI 2.0 working group, which wrote the specifications, how to get started working with UMP, and write a simple C++ program that utilises UMP.


This workshop will provide developers with knowledge and code for starting MIDI 2.0 Universal MIDI Packet (UMP) development in C++. The concepts of UMP will be explained. Then, the participants will co-develop a first simple implementation of a generic UMP parser in plain C++. For that, a stub workspace will be provided. Exercises will let the participants practice the newly learned concepts.

What you'll learn

  • Understand the core concepts of UMP
  • Be able to build applications in C++ using UMP

Who is this course for?

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

Course content

  • Preparation links
  • Zip file to download
  • Exercises to download
  • Presentation slides
  • Introduction
  • MIDI 2.0 Recap
  • MIDI 2.0 vs. UMP
  • MIDI 2.0 Summary
  • Exercises 1
  • Examine the UMP Packet
  • UMP Message Layout Examples
  • Exercises 2
  • Designing a UMP C++ Class
  • The UMPacket Class
  • Words, Bytes, and Bits
  • Exercises 3
  • Translation MIDI 1.0 to and from MIDI 2.0
  • Translating MIDI 2.0 to MIDI 1.0
  • Translator class MIDI 1.0 to MIDI 2.0
  • Value Scaling
  • Translator class MIDI 2.0 to MIDI 1.0
  • Exercises 4
  • What's Next
  • Wrap-Up


  • Some experience with C++ coding
  • Have a development environment set up and ready with Xcode (macOS) or Visual Studio (Windows).
  • Working knowledge of MIDI 1.0
  • A computer and internet connection
  • Xcode (macOS) / Visual Studio (Windows)

Meet your instructor

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.

Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x