Skip to main content

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:

https://wxpython.org

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)

Source distribution for pyotools 0.1.0
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)

Table of built distributions (wheels) for pyotools 0.1.0
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page