Introduction
Welcome to this course, The Secrets of MIDI Programming. Today, 90% or even 100% of the sounds in my TV films come from the computer. This is possible because we now have sound banks and virtual instruments that have been greatly improved — but you still need to know how to use them properly: how to program them and sequence them inside our DAW (Digital Audio Workstation), in order to create tracks that sound good and realistic.
This course is focused specifically on MIDI techniques for handling virtual instruments. It will not cover mixing, effects or mastering, even though those play a big and important role in making tracks sound great. The entire point here is to break down all the MIDI techniques that let you better handle these virtual instruments.
What MIDI is
MIDI stands for Musical Instrument Digital Interface. It is a protocol invented in the 1980s — in 1983 — by Roland and Sequential Circuits, created to agree on a standard and allow the synths of the time to communicate with each other.
Remarkably, MIDI has survived since the 1980s — roughly 40 years later it is still alive — because of its core advantages:
- It is extremely lightweight.
- It is very flexible, which makes it simple for sequencing and easy to edit and correct.
- The MIDI standard does not contain the actual instrument sounds. This means you can change the sound freely: with the same MIDI file or MIDI recording, you can assign and trigger several different instruments.
Back in the 1980s, MIDI ran over big five-pin cables. Today we mostly use USB or Bluetooth — but the foundation of the DAWs and sequencers we use today still relies heavily on MIDI.
What the course will cover
Using a finished track as the through-line, you'll see how to turn a very simple chord progression in C major into a complete piece. That example lets us cover everything in this advanced MIDI and programming module:
- Understanding MIDI — how messages work: notes, continuous controllers, and modern connections.
- Sound libraries and the importance of sound banks — such as Spitfire, VSL (Vienna Symphonic Library), Complete, and others.
- My personal working strategy, which I call "happy accidents" — experimenting and finding things that inspire us, that we like, and that work by accident, starting from a sketch track (a draft).
The method: start from a chord progression to quickly lay the foundation, lean heavily on the copy-paste function, then develop the idea, arrange it, and make sure it sounds good — recording the parts and instruments cleanly in MIDI.
We'll also briefly touch on:
- The mono-timbral vs. multi-timbral aspect and channel management.
- The usefulness of creating a chord guide for yourself.
- MIDI editing — quantization, velocity, possible note shifting, and humanization.
- Articulations, careful layering, short and extended (sustained) patches, and more specific musical elements like expressive tremolo or smooth legato.
- Above all, meticulously layering diverse instruments — rich colors and intricate textures — to create a full and dynamic soundscape.
Two especially interesting points get dedicated attention:
- Programming instruments according to their nature — whether they are percussive, bowed, or blown — because the behavior of a note over time depends on how the real instrument is played (the attack of a bow vs. a breath, and how the note modulates over time).
- Continuous controllers, which you'll need as notes evolve over time. We'll focus mainly on CC1, CC11 and CC64, then cover and organize all the most useful ones.
A piece can be made interesting with simple things: ostinatos, changing time signatures to create a rubato effect, and small "ear candies" — like rolls — elements that reignite interest at key moments in the arrangement.
Walkthrough of the finished piece
The complete arrangement starts in C major on a very simple base of four chords, and develops a bit of every MIDI programming technique. The fundamental progression is C major → G major → D minor → A minor.
Step by step, the arrangement unfolds as follows:
- After the progression loops, the melody enters on the cello — already an opportunity to introduce layering (stacking different layers).
- A bar of fake rubato to take our time.
- The arrangement moves to the strings, using legatos to make them more realistic, together with continuous controllers.
- Ostinatos come in with short strings, while the long strings gradually build up.
- A bit of ear candy with timpani rolls (which could also have been done as runs).
- The progression keeps building with continuous controllers and more layering: the brass enters, the ostinatos build up, and we reach the climax, followed by a bar of silence — then it starts again.
- The restart brings in rhythm and percussion, with the melody returning — first in its original form, then in a high trombone for a slight variation — and finishing on the ostinato.
- After another bar of silence, we return to the simple progression C, G, D, A minor, bringing the melody back to conclude. This final time, instead of playing all four chords, I stop on the third and play a D minor 9 to keep things in suspense and add a bit of mystery.
- There's also layering with sound design in the synths to give it texture.
I hope this piece will inspire you — but above all it's a chance to explore all the MIDI programming techniques. Starting from a simple structure, we develop all the little details: layering, continuous controllers, and everything else covered throughout this course.
Let's get started.