Real-time Audio, Buffers, and Waveforms

Music 256a Homework 1

In this assignment the real-time generation of various periodic waveforms was implemented using the RtAudio library. The project's source files include: In order to build the project, download the individual files from above or download them all in this .zip file. Makefiles are provided to compile the code for either Mac OS X or Linux by specifying the correct makefile to use. Typing 'make' at a command line in the source directory will output the correct syntax for specifying which of these makefiles to use.


The goal of constructing this program was to gain experience using RtAudio to stream real-time audio input and output and to implement a few different waveform generators. I originally implemented this using a large amount of if-then logic to process the different waveform cases, but ultimately ended up implementing the different waveform generators as individual classes, each of which inherit from a general UGen class. Approaching the implementation in this enabled me to take advantage of polymorphism, resulting in much more readable code and enabling good organization of functionality.

Back to 256a main page