pyo-tools: ready-to-use audio classes for pyo
Description
The pyotools package is a collection of python classes for building audio fxs and synths with pyo. This package requires Python 3.7 or later and pyo. The pyotools wheel is pure Python and works across Linux distributions and CPU architectures, as well as other platforms supported by pyo. Pyo itself contains native code and must be installed with the audio libraries required by your platform.
Pyo is available on pypi.
Pyo also offers some GUI facilities to control or visualize the audio processing. To use pyo’s GUI features, install a compatible wxPython, available at:
Install
Install in a virtual environment:
python3 -m venv .venv . .venv/bin/activate python -m pip install pyotools
Pip installs the pyo dependency if needed. On Linux, building pyo may require system development packages; see pyo’s installation instructions. To install this checkout instead, use python -m pip install ..
Build and publish
Create release artifacts from a clean checkout in a virtual environment:
python -m pip install --upgrade build twine python -m build python -m twine check --strict dist/*
This produces dist/pyotools-0.1.0-py3-none-any.whl and dist/pyotools-0.1.0.tar.gz. The wheel contains no native binaries and does not need a manylinux build. Both archives include the package license.
After checking the version in pyproject.toml and pyotools.PYOTOOLS_VERSION, upload both artifacts using your PyPI account:
python -m twine upload dist/pyotools-0.1.0-py3-none-any.whl dist/pyotools-0.1.0.tar.gz
PyPI does not allow replacing an uploaded release file. For a subsequent release, update both version values and build into an empty dist/ directory before uploading. Keep PyPI credentials outside this repository.
Usage
In order to use the classes in pyotools package, you should import pyo first, and then import pyotools. The order is important especially in the case where the double precision version of pyo is to be used. The choice of precision is made when importing pyo (or pyo64). pyotools will then follow the choice made previously.
Typical program will look like this:
import pyo import pyotools s = pyo.Server().boot() # use pyo and pyotools objects to build a processing chain. s.gui(locals())
One can also run pyotools object’s example through the pyo example function:
import pyo import pyotools pyo.example(pyotools.PWM)
Classes
Available classes within the pyotools package are:
PWM: Pulse-Width-Modulation oscillator with optional linear-phase lowpass filter.
PWM(freq=100, phase=0, duty=0.5, damp=0, mul=1, add=0)
VCO: Voltage-controlled oscillator with optional linear-phase lowpass filter.
VCO(freq=100, phase=0, shape=0, damp=0, mul=1, add=0)
TB303: Simple emulation of the Roland TB-303 oscillator.
TB303(freq=100, duty=0.5, cutoff=1000, res=1, octave=-3, mul=1, add=0)
OscSync: A soft sync oscillator which is reset according to a master frequency.
OscSync(table, master=100, slave=110, xfade=0.5, mul=1, add=0)
FatBass: Modulated Pulse-Width-Modulation oscillator with resonant lowpass filter.
FatBass(freq=100, octave=0, duty=0.5, cutoff=5000, res=0, mul=1, add=0)
BLOsc: Band-limited oscillator that can crossfade between multiple waveforms.
BLOsc(freq=100, bright=1, shape=0, mul=1, add=0)
HarmoFilter: Filter that removes every nth harmonic of a fundamental frequency.
HarmoFilter(input, freq, harm=2, mul=1, add=0)
MatrixVerb: Delay-line rotating-matrix reverb inspired by Miller Puckette’s rev3~.
MatrixVerb(input, liveness=0.7, depth=0.7, crossover=3500, highdamp=0.75, balance=0.25, numechoes=8, quality=4, filtorder=2, echoesrange=[0.03, 0.08], echoesmode=”linmin”, matrixrange=[0.05, 0.15], matrixmode=”linmin”, mul=1, add=0)
To see the complete documentation of a specific class (PWM in this example), type in a python interpreter:
import pyotools help(pyotools.PWM)
Metadata
Release files for pyotools 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pyotools-0.1.0.tar.gz | 21.6 kB | Without provenance | Details for pyotools-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyotools-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for pyotools-0.1.0-py3-none-any.whl |
Total release size: 52.3 kB
Release files / pyotools-0.1.0.tar.gz
| Download URL | pyotools-0.1.0.tar.gz |
|---|---|
| Size | 21.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
878a74dc3905ac6119daf9c00de9903c45378167e46348157534416c0d606b03
|
|
BLAKE2b-256 checksum How to use checksums |
e09c97dc575cc4ae7ee48a3d1ad95dc7cc570af0b52fc1d1582e7d7f341b28cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyotools-0.1.0-py3-none-any.whl
| Download URL | pyotools-0.1.0-py3-none-any.whl |
|---|---|
| Size | 30.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6209299827d583890bc567baabe946268faded277d09b3fa65e90b8ea9caafc9
|
|
BLAKE2b-256 checksum How to use checksums |
252bd3fb18d3aca288e3dc44931fe4300e5188f38a40d243b4ce21f32d1aebd4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Security for pyotools 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.