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
- What you’ll learn in this lecture
- What you’ll make in this lecture
- Code examples
- Recommended parts
- 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
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.
Recommended parts
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:
Further reading
- Summary of MIDI messages from midi.org
- MIDI controller numbers from midi.org
- General MIDI sound sets (i.e. Program Change message meaning) from midi.org
- MIDI Polyphonic Expression (MPE) specification from midi.org
- Hexadecimal tutorial from SparkFun
- Changing pitch wheel range with RPN messages