Getting started with MIDI 2.0 development - On-demand

Membership plan: Getting Started | Topics: Creative Coding

Course overview

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.

What you'll learn

  • Session 1: MIDI-CI, Profiles, protocol negotiation, PE, UMP, Concepts, Tools and MIDI-CI Message Layout
  • Session 2: Workspace setup, Starting with a unit test, Implementing a MIDI 2.0 message parser and Implement MIDI 2.0 discovery
  • Session 3: Making the parser more robust, MUID collision handling, Multi-port and MIDI Thru issues and unit tests + implementation
  • Session 4: Use CasesSending and receiving Profile messages, Implementation and tests and Quick introduction to PE and to UMP

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

Course content

  • Part 1 - Background and MIDI-CI
  • Session 1 presentation slides
  • Quiz 1 + Answers
  • Validate your learning with an exercise
  • MIDI 2.0 Specification collection download
  • Property Exchange Foundational Resources download
  • Part 2 - Profiles
  • Quiz 2 + Answers
  • Part 3 - Property Exchange
  • Quiz 3 + Answers
  • Part 4 - UMP
  • Quiz 4 + Answers
  • Part 5 - Closing slides & Small talk
  • Session 2 presentation
  • Session 2 zip file to download
  • Session 2 breakout room activities - updated
  • Profile: Default Control Change Mapping download
  • Part 1 - Test-driven development
  • Exercise 1 - Testing
  • Exercise 1 - Solutions
  • Part 2 - MIDI-CI Parser
  • Exercise 2 - “Project” Workspace Setup
  • Exercise 2 - Solutions
  • Part 3 - Unit Tests - Discovery
  • Exercise 3 - Coverage
  • Exercise 3 - Solutions
  • Part 4 - Implementing Discovery + Exercise 4 (Discovery) & Solutions
  • Week 3 presentation slides
  • Download file and links
  • Test program to download
  • Week 3 exercises
  • Part 1 - Profiles Introduction
  • Part 2 - Exercise 1 + Solutions
  • Part 3 - Addendum to Previous Session
  • Part 4 - Profiles implementation
  • Exercise 2 + Solutions
  • Part 5 - Class Design
  • Part 6 - Unit Testing - Profiles
  • Part 7 - Exercise 3 + Solutions
  • Part 8 - Profile Handler Implementation
  • Exercise 4 +Solutions
  • Session 4 zip file to download
  • Breakout room activities
  • Week 4 presentation slides
  • Part 1 - Property Exchange
  • Exercise 1 + Solutions
  • Part 2 - PE Implementation
  • Exercise 2 + Solutions
  • Part 3 - Protocol Negotiation and UMP
  • Exercise 3 + Solutions
  • Part 4 - MIDI 2 Channel Voice Messages
  • Exercise 4 + Solutions

Requirements

  • A computer and internet connection
  • Xcode (macOS)/Visual Studio (Windows)
  • JUCE workspace

Meet your instructor

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.

Subscribe
Notify of
guest

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