CSc 637: Software Techniques for Computer Music

CSc 637 (formerly 635)
Software Techniques for Computer Music

Instructor: Dr. William Hsu
Fall 2007 M 1610-1855
Office: Thornton Hall 930 Phone: 415-338-2289

  • Description

    This is a practical, hands-on course on programming for audio and music applications. We will study the basic theory, mathematics and physics behind sound production, perception, and digital audio, and apply them to a number of software projects. Assignments include work with raw digital audio (writing classic effects), analysis/resynthesis data (compression, sound morphing), and real-time control (interactive MIDI tools). The emphasis is on open-source, cross-platform tools and libraries such as Audacity, libsndfile, portmidi and portaudio.
  • An Irreverent Listening List of Unusual and Electronic Music
  • Sample Project Descriptions

  • Project 1: Digital audio effects

    create special effects to transform digital audio data

    original speech fragment
    speech fragment with echos
    "robotized" speech fragment

  • Project 2: Spectrum analysis/resynthesis

    perform spectral analysis of instrument tones
    use analysis data to resynthesize new instruments
    example: create a tone that morphs from a violin to a tenor saxophone

    original violin tone
    original tenor saxophone tone
    violin morphs to tenor sax

  • Project 3: Real-time interaction

    control and communicate with MIDI instruments in real-time

    examples: automatic accompaniment programs for tango, blues etc

  • Examples of Final Student Projects
  • Helpful Links