Cameron Roberts

saxophonist | programmer | educator

Introduction to Digital Music with Python Programming


Introduction to Digital Music with Python Programming provides a foundation in music and code for the beginner. It shows how coding empowers new forms of creative expression while simplifying and automating many of the tedious aspects of production and composition.

With the help of online, interactive examples, this book covers the fundamentals of rhythm, chord structure, and melodic composition alongside the basics of digital production. Each new concept is anchored in a real-world musical example that will have you making beats in a matter of minutes.


See more...




TunePad is a tool for creating music using the Python programming language. Participants will gain valuable computer programming skills while learning about the foundations of digital music production. They will also gain communication skills and confidence as they participate in coached team events featuring live music creation and coding. TunePad was created by the Tangible Interaction Design and Learning (TIDAL) Lab at Northwestern University in collaboration with the EarSketch team at the Georgia Institute of Technology and with funding from the National Science Foundation.


I have contributed to TunePad since 2020, both through extending the functionality of the software and through authoring curricula for teaching music and coding to K12 students.


See more...




The Accordia is a digital musical instrument that combines the aural aesthetic of early experimental electronic music with the tactile experience of an IBM Selectric II typewriter.

The primary analogy utilized for the interface is that of the accordion. The usage of this analogy is partially homage to Pauline Oliveros and Gerard Grisey—both accordion players. A soft potentiometer serves as the treble keyboard and controls a fixed set of continuous single pitches. A sliding potentiometer controls the timbre of these pitches by controlling the floating-point values of the five partials above the fundamental—analogous to the reed rank of an accordion. An air pressure sensor attached to a rubber tube to be blown in by the user serves as the bellows. The bass keyboard of an accordion is replaced by the tactile keyboard of the typewriter wherein key presses are interpolated as signal distortion. Sensor readings are read with an Arduino and processed using Max 8.


See more...

Music Blox


Music Blox was designed as an interactive exhibit experience that allows both children and adults to explore sounds and create music in an accessible, collaborative, and engaging manner. Participants can compose their own musical masterpieces in a tangible, non-traditional way, simply by playing with blocks within an interactive space. Using computer vision, it correlates the color and position of the blocks with a few key musical elements: pitch, duration, volume, and timbre to the movement of different-colored blocks along the x, y, and z axes of a tabletop. Through this interaction, users can begin to make analogies, manipulate sounds, and work together to create new melodies.



The algoRhythm system was designed as a pedagogical tool to teach rhythm to developing musicians. he user provides the system with a .wav file of their performance, tempo, XML reference sheet music, and a leniency value. The system extracts timesteps of onsets from both the user's performance and the reference sheet music. The system outputs an accuracy grade and timestamps of mistakes in the user’s performance. When creating an accuracy evaluation, a leniency is be used. If the onset is within the leniency range, the onset is considered correct. The final evaluation is the fraction of correct notes over total notes.


See more...