MIDI Part 2

Delving deeper into MIDI

This lecture is the second of a two-part series on MIDI, the industry standard protocol for communicating between musical devices such as keyboards and synths. It picks up where Lecture 15 left off, implementing pitch wheel, modulation wheel and control change messages in a basic MIDI synth. In the process it covers low-frequency oscillators (LFOs) for vibrato and portamento.

Table of contents

  1. What you’ll learn in this lecture
  2. What you’ll make in this lecture
  3. Code examples
  4. Recommended parts
  5. Further reading

Lecture 16: MIDI Part 2

What you’ll learn in this lecture

  • Handling MIDI pitch wheel messages
  • Handling MIDI control change messages
  • Low-frequency oscillators (LFOs)
  • Portamento

What you’ll make in this lecture

  • Monophonic MIDI synth with detuning and continuous pitch control

Code examples

Find the code examples here

midi-pitchwheel: This project forms the basis of four coding exercises in the lecture, progressively adding features to the MIDI synth completed in Lecture 15.

Running the examples in this course assumes that you have a Bela Starter Kit or Bela Mini Starter Kit.

This lecture requires a source of MIDI input, either a keyboard attached to the USB port of Bela or virtual keyboard software which can send MIDI messages to Bela from the host computer. The following software MIDI generators will work:

  • MidiKeys for MacOS X
  • vmpk, a cross-platform MIDI generator

Further reading