Programming Digital Media

Digital sound synthesis

Digital sound synthesis

Digital sound synthesis

     Similar hierarchy to digital images
          Numerical sound samples
          Sound "events"
          Simulation of musical instruments
          Large-scale compositions

Models of digital sound

     Simulation of existing instruments
          MIDI
     Exploration of digital synthesis possibilities
          Hardware and software synthesizers
          CSound
     Analysis of acoustic and sonic phenomena
          Description of frequency components
     Combination of techniques
          Use of analytic information for synthesis
          Doug Barrett's compositional method

Csound

     Sound synthesis in software
     Metaphors of instruments and scores
     Descended from work at Bell Labs by Max Mathews in the 1950s

Csound's ancestry, descendants and cousins



     Max Mathews
          "Music 1", "Music II", "Music III", "Music IV", "Music V"
     John Chowning and James Moore - "Music 10"
     Barry Vercoe - "Music 360", "Music 11", "Csound"
     Miller Puckette (student of Vercoe) and David Vicarelli - "MAX"
     Miller Puckette - "PD"
     James McCartney - "Supercollider"

Csound

     An "instrument" is a function that produces data.

Csound

     You can define any number of instruments.

Csound

     A collection of instruments is called an "orchestra."

Csound

     A sound event is called a "note."

Csound

     You can define any number of notes.

Csound

     A collection of notes is called a "score."

Csound

     Synthesizing sound requires an orchestra and a score.

Csound

     Each note is "played" by one of the instruments.

Csound

     Global parameters control synthesis attributes.

Csound

     The "CSD" file contains the parameters, orchestra, and score.

Csound instrument definition

     Network and parameter connections implied by names

Csound note definition

     Note definition by parameters and lookup tables

Csound CSD file

     The CSD file in XML format

Csound tutorial

     Hand-editing of CSD files
     Python library to simplify CSD file generation