Build a MIDI 2.0 program using the Apple UMP API – Workshop 2 / December 6th
Date & Time: Monday 6th December 2021 6pm UK / 7pm Berlin / 10am LA / 1pm NYC
This workshop builds on the first UMP Workshop, and focuses on C++ development using the new Apple UMP API. Automatic 20% discount will be applied at checkout to this workshop if purchased at the same time as the first workshop.
2-hours
Difficulty level: Advanced
- Inspect the new Apple UMP API
- What can be done with the API, where are limitations?
- Build a simple UMP program in C++
Overview
This workshop builds on Workshop 1, and will provide developers with knowledge and code for implementing MIDI 2.0 Universal MIDI Packet (UMP) development using the Apple UMP API in C++. The Apple UMP API will be presented and explained. Then, the participants will co-develop a simple implementation in C++ using the Apple UMP API. For that, a stub workspace will be provided. Exercises will let the participants practice the newly learned concepts. Xcode on MacOS 11 required for building the workshop code.
Learning outcomes
At the end of the workshop the participants will:
- Be able to build MIDI 2.0 products using UMP using the Apple UMP API
Study Topics
- Looking at the Apple UMP API
- Extending the code from Workshop 1 with Apple i/o
- Presenting fragments of the code in the stub workspace
- Testing and interoperability with MIDI 1.0
Level of experience required
- Attendees who joined workshop 1 <add link>
- Some experience with C++ coding required
- Attendees should be familiar with MIDI 1.0; they should have experience building and debugging applications using Xcode (macOS)
Any technical requirements for participants
- A computer and internet connection
- A webcam and mic
- A Zoom account
- for development: Xcode on MacOS 11
About the workshop leader
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.
MIDI 2.0 – Introduction to the Universal MIDI Packet – Workshop 1 / November 29th
Date & Time: Monday 29th November 2021 6pm UK / 7pm Berlin / 10am LA / 1pm NYC
This workshop is followed by two more workshops exploring the specific implementations with Apple UMP API and the JUCE UMP API (cross-platform). Automatic 20% discount on workshop 2 and/or 3 will be applied when purchased with this workshop.
2- hours
Difficulty level: Advanced
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 Association Technology Standard Board, who 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.
Who is this workshop 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.
Learning outcomes
At the end of the workshop the participants will:
- Understand the core concepts of UMP
- Be able to build applications in C++ using UMP
Study Topics
- UMP Basics
- packet format
- MIDI 1.0 in UMP
- MIDI 2.0 in UMP
- Translation
- Protocol Negotiation in MIDI-CI
- Inspecting the UMP C++ class in the stub workspace
- A simple UMP parser in C++
- Unit Testing the UMP class
Level of experience required:
- 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
Any technical requirements for participants
- A computer and internet connection
- A webcam and mic
- A Zoom account
- Xcode (macOS) / Visual Studio (Windows)
About the workshop leader
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.
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
Requirements
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.