Pyo - Python DSP module
pyo is a Python module written in C to facilitate the creation of digital signal processing scripts.
pyo is a Python module containing classes for a wide variety of audio signal processing types. With pyo, users 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 the pyo module offers primitives, like mathematical operations on audio signals, basic signal processing (filters, delays, synthesis generators, etc.), but also complex algorithms to create sound granulation and other creative audio manipulations. pyo supports OSC protocol (Open Sound Control), to ease communications between software, 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.
Available on Pypi: Download wheels.
For more information and documentation, visit the PYO DOCUMENTATION.
How to install pre-built packages on any platform using pip: INSTALL Instructions.
How to get pyo running from sources on macOS and linux: COMPILE Instructions.
pyo was awarded second prize in the Lomus 2012 Free Software Competition.
You want to help the development of pyo ? Go to the pyo features market and make a donation for the feature you want to promote. You can also submit new features on the mailing-list ( https://github.com/belangeo/pyo/discussions ).
Radio Pyo
If you want to listen to scripts rendered in real-time, just connect to Radio Pyo !
You want to have your script played on the radio ? Download the template radiopyo_template.py, follow the rules and post it on the mailing-list !
Software using Pyo as audio engine
Cecilia 5 : An audio signal processing environment.
PsychoPy : An open-source application to allow the presentation of stimuli and collection of data for a wide range of neuroscience, psychology and psychophysics experiments.
Soundgrain : A graphical interface where users can draw and edit trajectories to control granular sound synthesis.
Zyne : A modular soft synthesizer.
Pyo Synth : Pyo Synth is an open source application that makes the manipulation of pyo scripts easier by letting you control it with a midi keyboard.
Examples
pyo is fully integrated to Python and very simple to use.
Play a sound:
>>> from pyo import *
>>> s = Server().boot()
>>> s.start()
>>> sf = SfPlayer("path/to/your/sound.aif", speed=1, loop=True).out()
Granulate an audio buffer:
>>> s = Server().boot()
>>> s.start()
>>> snd = SndTable("path/to/your/sound.aif")
>>> env = HannTable()
>>> pos = Phasor(freq=snd.getRate()*.25, mul=snd.getSize())
>>> dur = Noise(mul=0.001, add=0.1)
>>> g = Granulator(snd, env, [1, 1.001], pos, dur, 24, mul=0.1).out()
Generate melodies:
>>> s = Server().boot()
>>> s.start()
>>> wav = SquareTable()
>>> env = CosTable([(0,0), (100,1), (500,.3), (8191,0)])
>>> met = Metro(.125, 12).play()
>>> amp = TrigEnv(met, table=env, mul=0.1)
>>> pit = TrigXnoiseMidi(met, dist='loopseg', x1=20, scale=1, mrange=(48,84))
>>> out = Osc(table=wav, freq=pit, mul=amp).out()
Donation
This project is developed by Olivier Bélanger on his free time to provide a fully integrated Python dsp module for sound exploration and music composition. If you feel this project is useful to you and want to support it and its future development please consider donating money. I only ask for a small donation, but of course I appreciate any amount.
Metadata
Release files for pyo 1.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 | |
|---|---|---|---|
| pyo-1.1.0.tar.gz | 8.7 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pyo-1.1.0-cp315-cp315-win_amd64.whl | CPython 3.15 | CPython 3.15 | Windows x86-64 | Details |
| pyo-1.1.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.15 | CPython 3.15 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| pyo-1.1.0-cp315-cp315-macosx_13_0_arm64.whl | CPython 3.15 | CPython 3.15 | macOS 13.0+ ARM64 | Details |
| pyo-1.1.0-cp314-cp314-win_amd64.whl | CPython 3.14 | CPython 3.14 | Windows x86-64 | Details |
| pyo-1.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| pyo-1.1.0-cp314-cp314-macosx_13_0_arm64.whl | CPython 3.14 | CPython 3.14 | macOS 13.0+ ARM64 | Details |
| pyo-1.1.0-cp313-cp313-win_amd64.whl | CPython 3.13 | CPython 3.13 | Windows x86-64 | Details |
| pyo-1.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| pyo-1.1.0-cp313-cp313-macosx_13_0_arm64.whl | CPython 3.13 | CPython 3.13 | macOS 13.0+ ARM64 | Details |
| pyo-1.1.0-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| pyo-1.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| pyo-1.1.0-cp312-cp312-macosx_13_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 13.0+ ARM64 | Details |
| pyo-1.1.0-cp311-cp311-win_amd64.whl | CPython 3.11 | CPython 3.11 | Windows x86-64 | Details |
| pyo-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| pyo-1.1.0-cp311-cp311-macosx_13_0_arm64.whl | CPython 3.11 | CPython 3.11 | macOS 13.0+ ARM64 | Details |
Total release size: 144.3 MB
Release files / pyo-1.1.0.tar.gz
| Download URL | pyo-1.1.0.tar.gz |
|---|---|
| Size | 8.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
297dfc7464be3dae0bc8d2b7a8850942577cde5785b0f197ede2eb43f3d84181
|
|
BLAKE2b-256 checksum How to use checksums |
4052088e5420b6588d475ae9850cb744dcb37c6cb2597b95e7c50b33766bff5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp315-cp315-win_amd64.whl
| Download URL | pyo-1.1.0-cp315-cp315-win_amd64.whl |
|---|---|
| Size | 8.8 MB |
| Tags | CPython 3.15 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a05bc63af10503c39a6cf38ea3abb5b94ea9c8c48a6989bc31943f1fcb0ba0c3
|
|
BLAKE2b-256 checksum How to use checksums |
eaa2ecebf36badd675e3fe2e095dba759331f3781751c6f12b1a7d87410b1c47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyo-1.1.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.15 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0578129cd8b67e6a8700f1eafe61ceb1362b9377c44e147c0cdd56f5313b58a2
|
|
BLAKE2b-256 checksum How to use checksums |
111f68d65d793dd2dfb8f52c1113e7be6935b641865d962bca801cb7144d25e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp315-cp315-macosx_13_0_arm64.whl
| Download URL | pyo-1.1.0-cp315-cp315-macosx_13_0_arm64.whl |
|---|---|
| Size | 10.0 MB |
| Tags | CPython 3.15 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
dbd448a29603be49897641d15790f515185892ba39d6ac3d0b3dfa1699ec4e22
|
|
BLAKE2b-256 checksum How to use checksums |
e5e0906bb7d52325546192f5641490850c3dbdeb14869349eb2c09f1ae5a540d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp314-cp314-win_amd64.whl
| Download URL | pyo-1.1.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 8.8 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
90630d7d935552bd6b12cb187994d0c3ef8444edc8a893369444892c0600d8f7
|
|
BLAKE2b-256 checksum How to use checksums |
82c0259bcd801392043922fa663f671d4599fe9992246969cc88440ac926128f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyo-1.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2df0061fa815e93e4f051c0bf412a0b5dee13845925e29b502f34573e3733ef6
|
|
BLAKE2b-256 checksum How to use checksums |
2feb17b67b434c098c8c5916d6d994d3738fb0a7e13ca97fefe074890a5e5fca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp314-cp314-macosx_13_0_arm64.whl
| Download URL | pyo-1.1.0-cp314-cp314-macosx_13_0_arm64.whl |
|---|---|
| Size | 10.0 MB |
| Tags | CPython 3.14 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
98d94f1ad9390e49953fec54833b074a37bee1138a922edbcfbfafdd40f0174b
|
|
BLAKE2b-256 checksum How to use checksums |
6349ae8721c986d88cb01023bb23b9c9c5190490c48e560bb76452e6f7e89983
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp313-cp313-win_amd64.whl
| Download URL | pyo-1.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
152e18c7a1d1c46d785b6221c43ca2aee147dace9382a59610f9dda56d208917
|
|
BLAKE2b-256 checksum How to use checksums |
f30483db43b2944d4f5db7aa215974eea6022ba16360f02c101c4a79a2b8ace0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyo-1.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5a40430887aa044cde931237e12e4a5cd851b4c1276687f7ab00f641482a4fa7
|
|
BLAKE2b-256 checksum How to use checksums |
5a9243da2ecde4f8f1775e06a2bde611870b21bf251a5d4a39af3d2efa352b8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp313-cp313-macosx_13_0_arm64.whl
| Download URL | pyo-1.1.0-cp313-cp313-macosx_13_0_arm64.whl |
|---|---|
| Size | 10.0 MB |
| Tags | CPython 3.13 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
35e4cbee13927171464f3c66a8f4553e1ab5e9a48b477587d10538cd9672f711
|
|
BLAKE2b-256 checksum How to use checksums |
3a398163d66fd4ba39a60763632053ab160a9cb0683d0540ef05935f5d24ff51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp312-cp312-win_amd64.whl
| Download URL | pyo-1.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c74a0a66e90fed35c202b553d82dc3a5a687353e9a46187841f71ef7eea12105
|
|
BLAKE2b-256 checksum How to use checksums |
5262a9d406f21910aa2ffdf830315ce9313bc7d6ee4458d76300fbcf6f3b3370
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyo-1.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5372be9bbff6b81e7028e316ac41580281a5233112420f5073273d5cf64d5589
|
|
BLAKE2b-256 checksum How to use checksums |
f840fe4fd6a9a1d1b3d83187dbd3f4bd310cf1772dd8368a11582edf0da715f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp312-cp312-macosx_13_0_arm64.whl
| Download URL | pyo-1.1.0-cp312-cp312-macosx_13_0_arm64.whl |
|---|---|
| Size | 10.0 MB |
| Tags | CPython 3.12 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a1612d22650ca125130e116c580ddbf9971e48941c1529b92501fb03c47e868a
|
|
BLAKE2b-256 checksum How to use checksums |
5608fec359870416791641285790353277b3454b306f86655eabb13e16b42eab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp311-cp311-win_amd64.whl
| Download URL | pyo-1.1.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
3f5d36890df8a573f02c9aff5b835f454d852f4783cd68a5af9cc526b13e9fab
|
|
BLAKE2b-256 checksum How to use checksums |
3aa324a0139b5648d3978b366f4ee45cfd2a79f840cccbf791f85ba49099c720
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyo-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9ddf088e449ad9a8369c5c4a3b50f5806e02312382bc01fb92509bd050149d42
|
|
BLAKE2b-256 checksum How to use checksums |
ae4e9724684bc4a4f32ce5876e4c7edf4f900424039604114327ec025f3cd0b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / pyo-1.1.0-cp311-cp311-macosx_13_0_arm64.whl
| Download URL | pyo-1.1.0-cp311-cp311-macosx_13_0_arm64.whl |
|---|---|
| Size | 10.1 MB |
| Tags | CPython 3.11 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5dd52cfc708235eae682b109a0d5a5d9a9af668027ac871a38d83f73e450a4b6
|
|
BLAKE2b-256 checksum How to use checksums |
07c9a6bef4a8c9d427ad7f7ff4cb3b8e4c968f7081d3e1d02225c19a3072b0e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|