What is programming? And how can we use it to create music? In particular, how can we use programming to

  • compose music (in an abstract sense)
  • produce and manipulate sound (in real time)

This book tries to give answers to these questions. It's goal is to enable you −the composer− to use programming as a method and programming languages as tools to create music.

If we would have asked "What is woodworking?", we would end up talking about fundamental properties of wood, such as the direction of grain, hardness, moisture absorption and wood movement. We would also talk about joinery −the various tested and proper ways to join pieces of wood− and how your particular idea of a piece of furniture can be broken down into to a combination of joints. And when we learn particular techniques to work with wood, we would necessarily introduce specific tools (like saws, planes and chisels).

In the following chapters, you are like the woodworker, digital signal processing and the computer's audio capabilities is the wood, the furniture is the music you want to compose and the joinery is what we want to present here, using supercollider as the tools chest.