PYO : A Dedicated Module For Digital Signal Processing

Olivier Bélanger

Audience level:


Presentation of the Python digital signal processing module "pyo", written by the author. An overview of possibilities for Python to make sound with pyo. Examples will be provided to illustrate simple generation of sound, algorithmic music composition and audio software development.


Pyo is a Python module containing classes for a wide variety of audio signal processing types. With pyo, user will be able to include signal processing chains directly in Python scripts or projects, and to manipulate them in real time through the interpreter. Tools in pyo module offer primitives, like mathematical operations on audio signal, basic signal processing (filters, delays, synthesis generators, etc.), but also complex algorithms to create sound granulation and others creative sound manipulations. Pyo supports OSC protocol (Open Sound Control), to ease communications between softwares, and MIDI protocol, for generating sound events and controlling process parameters. Pyo allows creation of sophisticated signal processing chains with all the benefits of a mature, and widely used, general programming language. This poster will show the internal structure of the library, the principal classes and how they communicate with external devices (audio, MIDI, OSC). It will explain the basic paradigms for audio programming, whatsoever for the simple sound generation, the algorithmic music composition or for creating audio software. There will be a reflexion on different strategies for implementing expressive and efficient musical algorithms and controls. It will demonstrate why a general purpose programming language like Python is so powerful for music programming. Example scripts, with a lot of comments, will be exposed and a computer, with headphones, will be available for everyone who wants to try some real-time examples of sound manipulation.