After almost a year of hard work, I'm very glad to announce the release of
available for python 2.7, 3.5, 3.6 and 3.7.
Pyo is a Python module written in C to help real-time digital signal
script creation. It provides a complete set of classes to build audio
compose algorithmic musics or simply explore audio processing.It is
Windows, macOS and linux. It is released under the LGPL 3 license.
The main change in this release is the installation process. The package is
uploaded to pypi.org and can be installed (for 32-bit or 64-bit) under
Windows and linux with pip. Just run the command:
python -m pip install pyo
For all the details and how to uninstall version prior to 1.0.0, see this
in the documentation:
- Fixed phase of sawtooth and ramp waveforms in the LFO object.
- Embedded: Fixed crash on first load when embedding pyo in a juce plugin.
- Embedded: Remove the wx import before importing pyo to prevent a crash on
- Embedded: Added a BPM variable in the embedded interpreter and a function
PyoClass to change it according to the BPM of a DAW, for instance.
- Embedded: Better handling of bad code when reading file in embedded pyo.
- Fixed bug in OscDataSend.addAddress().
- Fixed BPF tables (LinTable, ExpTable, ...) memory allocation corruption.
- Fixed SIGSEGV when multiplying a plain number and a base object.
- Jack audio backend does not ignore duplex value anymore.
- Added PYO_SERVER_MIDI and PYO_SERVER_WINHOST environment variables to set
default values for the audio server (user can also define
- Added one-sample delay function and sr constant to the Expr api.
- Added complex numbers (and complex one-pole/one-zero filters) to the Expr
- Added a new object: PyoGuiKeyboard, a virtual MIDI keyboard.
- Added keyboard() method to the Notein object (opens a virtual midi
- Added computer keyboard bindings when the Notein's keyboard widget has
- Added a getPyoExamples() function and changed example function to be able
execute one of the example.
- Added a new object: SVF2, a 2-pole state variable filter with many filter
- Added two arithmetic objects: Div and Sub.
- CallAfter's time and arg arguments can be changed dynamically.
- Fader and Adsr now send a trigger at the end of the envelope.
- Added a clear() method to Linseg and Expseg objects.
- Fixed crash when trying to read a faulty preferences file.
- Added auto complete for cpp file (from corresponding header file).
- Added a 'Reload Current File' menu command.
- Added zoomin/zoomout function in the documentation window (Ctrl-- and
- Added multiple views (splitted windows) functionnality.
- Fix search ctrl behaviour in the documentation window.
Auto Start Children (new feature):
These changes offer the possibility to control start/stop of all objects in
processing chain at once. See the documentation of the following methods