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.
Overview
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
Requirements
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.
When you login first time using a Social Login button, we collect your account public profile information shared by Social Login provider, based on your privacy settings. We also get your email address to automatically create an account for you in our website. Once your account is created, you'll be logged-in to this account.
DisagreeAgree
I allow to create an account
When you login first time using a Social Login button, we collect your account public profile information shared by Social Login provider, based on your privacy settings. We also get your email address to automatically create an account for you in our website. Once your account is created, you'll be logged-in to this account.