Let’s make a simple drum machine and learn how to generate a drum pattern, add swing, reuse knobs to control different parameters and use classes to organize the code.
Case study: a simple drum machine
…with bass drum, snare and hihats! We’ll be able to change pattern for every drum, speed and swing.
Generating rhythms
We will look at a simple yet efficient algorithm for generating euclidean-like rhythms and explore the famous LM-1’s shuffle aka swing.
Multi-functional knobs
Even with a limited number of knobs it’s possible to build a fully functional instrument. We will look at how to route a knob output to different parameters.
Organizing the program code into modules/classes and communicating between them.
As the complexity of an instrument grows we need to organize the code in a way that helps us design and reason about our software. And the classes are perfect vehicle for doing this. We will look at how we can structure a drum machine.
Other topics
Will go further into C/C++ programming topics
We will touch on simple templates, arrays and other topics.
All you need is a computer. If you have the Daisy Seed you can install the toolchain on your machine beforehand. You can also check out the code we will be working with on this Github page.