In lecture, we learned about creating a tone with a basic sine wave. This assignment asked us to write a program that could specify pitches instead of frequencies, allow multiple simultaneous tones, specify a duration for each note as well as an amplitude shape (ie, an envelope), and allow for notes of differing timbres. The class assignments were all written in Python 2.7 with Kivy and PyAudio libraries.

I created a very simple synthesizer, which can be played by mapping keys on the keyboard to “play note” commands. As part of this assignment (and each assignment in the class), we were also asked to create something fun. For the creative portion of the PSET, I chose to explore duty cycles and their effect on the various timbres I created.

Video Demo