Stereo Sound Processing

Daniel Zingaro - University of Toronto

In 2010, I presented a nifty assignment that has students write a program to create music from a small notational language. That one works as a second assignment in CS1. Here is another sound-based assignment: this one is an assignment 1, with a focus on processing stereo sound files in interesting ways.

At the University of Toronto, our CS1 course is taught using Python. We use Pygraphics, a locally modified media library derived from Mark Guzdial's Introduction to computing and programming with Python: A Multimedia Approach.

In this assignment, students learn how to remove vocals from music, apply various fades to sound files, and cause sounds to move across the stereo field.

Summary Removing vocals, fading, and panning.
Topics
Composing functions, if-statements, and working with sound data.
Audience
Early CS1.
Difficulty
Intermediate difficulty.
Strengths
Students get a kick out of the vocal-removal algorithm. Also, the fade functions give a realistic example of why function composition is useful.
Weaknesses
The assignment does not require much code; and the code that it does require can be tricky.
Dependencies
Requires a sounds package that gives access to individual samples of sounds.
Variants
Other types of fades (e.g. log, quadratic, cubic) and pans (e.g. right-to-left) are possible.


Assignment Handout

Dependencies

Installation instructions for Pygraphics and its dependencies can be found on the Installing Pygraphics page.

Last modified: 2011-12-29