belangeo/pyo logo

belangeo/pyo

Free

Python DSP module

FreeFree tier
Type
Open Source

About belangeo/pyo

pyo is a Python module written in C that facilitates the creation of digital signal processing scripts. It contains classes for a wide variety of audio signal processing types, allowing users to include signal processing chains directly in Python scripts and manipulate them in real time through the interpreter. The module offers primitives such as mathematical operations on audio signals, basic signal processing (filters, delays, synthesis generators), and complex algorithms for sound granulation and other creative audio manipulations. It supports OSC (Open Sound Control) and MIDI protocols for communication between software and control of sound events and parameters. pyo enables sophisticated signal processing chains with the benefits of a general programming language. It is available on PyPI for Python 3.9–3.13 on Windows amd64, macOS x86_64/arm64, and Linux x86_64.

Key Features

Wide variety of audio signal processing classes (filters, delays, synthesis generators)
Real-time signal chain manipulation through Python interpreter
Complex algorithms for sound granulation and creative audio manipulations
Support for OSC (Open Sound Control) protocol
Support for MIDI protocol for sound events and control
Written in C for high performance
Cross-platform support (Windows, macOS, Linux)
Available via PyPI for Python 3.9 through 3.13

Pros & Cons

Pros
  • Comprehensive collection of DSP primitives and advanced algorithms
  • Real-time interactivity via Python interpreter
  • Supports industry-standard protocols (OSC, MIDI)
  • Awarded second prize in Lomus 2012 Free Software Competition
  • Used as audio engine in several established applications (Cecilia, PsychoPy, Soundgrain, Zyne)
  • Open source with permissive license
  • Easy installation via pip on multiple platforms
Cons
  • Requires programming knowledge in Python
  • Primarily a library, not a standalone audio application
  • Documentation may be less extensive than commercial alternatives

Best For

Building custom audio signal processing chains in PythonReal-time sound synthesis and manipulation for music and artGranular synthesis and experimental audio effectsAudio engine for scientific research and psychology experiments (e.g., PsychoPy)Educational tool for learning digital signal processingIntegration into larger Python applications for audio generation and effects

FAQ

What is pyo?
pyo is a Python module written in C for digital signal processing, offering classes for audio manipulation, synthesis, and real-time control.
How do I install pyo?
You can install pyo via pip. It is available on PyPI for Python 3.9–3.13 on Windows amd64, macOS x86_64/arm64, and Linux x86_64. See the install instructions on the GitHub repository.
What platforms does pyo support?
pyo supports Windows (amd64), macOS (x86_64 and arm64), and Linux (x86_64).
Does pyo support MIDI and OSC?
Yes, pyo supports both MIDI protocol for sound events and control, and OSC (Open Sound Control) for communication between software.