pyo

Python DSP module

https://github.com/belangeo/pyo

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 29 committers (3.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.3%) to scientific vocabulary

Keywords

audio c dsp music pyo python radio-pyo signal-processing sound synthesis

Keywords from Contributors

kivy docstring shellcode data-mining rdflib semantic-web serializer sparql turtle turtle-rdf
Last synced: 6 months ago · JSON representation

Repository

Python DSP module

Basic Info
  • Host: GitHub
  • Owner: belangeo
  • License: lgpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 28.6 MB
Statistics
  • Stars: 1,384
  • Watchers: 63
  • Forks: 143
  • Open Issues: 41
  • Releases: 0
Topics
audio c dsp music pyo python radio-pyo signal-processing sound synthesis
Created over 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License

README.md

Pyo - Python DSP module

pyo is a Python module written in C to help digital signal processing script creation.

pyo is a Python module containing classes for a wide variety of audio signal processing types. With pyo, user 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 pyo module offer primitives, like mathematical operations on audio signal, basic signal processing (filters, delays, synthesis generators, etc.), but also complex algorithms to create sound granulation and others creative audio manipulations. pyo supports OSC protocol (Open Sound Control), to ease communications between softwares, 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 from Pypi:

  • python 3.9 (Windows amd64, MacOS arm64, linux x86_64)
  • python 3.10 (Windows amd64, MacOS x8664 et arm64, linux x8664)
  • python 3.11 (Windows amd64, MacOS x8664 et arm64, linux x8664)
  • python 3.12 (Windows amd64, MacOS x8664 et arm64, linux x8664)
  • python 3.13 (Windows amd64, MacOS x8664 et arm64, linux x8664)

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=.001, add=.1) g = Granulator(snd, env, [1, 1.001], pos, dur, 24, mul=.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=.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 it's future development please consider donating money. I only ask for a small donation, but of course I appreciate any amount.

Support via PayPal

Owner

  • Name: Olivier Bélanger
  • Login: belangeo
  • Kind: user
  • Location: ajaxsoundstudio.com
  • Company: AjaxSoundStudio

GitHub Events

Total
  • Issues event: 14
  • Watch event: 72
  • Issue comment event: 28
  • Push event: 45
  • Pull request event: 9
  • Fork event: 12
  • Create event: 2
Last Year
  • Issues event: 14
  • Watch event: 72
  • Issue comment event: 28
  • Push event: 45
  • Pull request event: 9
  • Fork event: 12
  • Create event: 2

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 2,276
  • Total Committers: 29
  • Avg Commits per committer: 78.483
  • Development Distribution Score (DDS): 0.493
Past Year
  • Commits: 42
  • Committers: 3
  • Avg Commits per committer: 14.0
  • Development Distribution Score (DDS): 0.095
Top Committers
Name Email Commits
belangeo b****o@a****b 1,153
Olivier Belanger b****o@g****m 1,017
Aron Granberg a****g@g****m 25
CristiFati f****j@y****m 13
mantaraya36 m****6@a****b 11
jm.dumas j****s@a****b 9
Hans-Jörg Bibiko h****o@e****e 8
DataTriny a****t@o****m 5
Tamas Levai l****t@t****u 4
guillaume.barrette g****e@g****m 4
lecaude l****e@g****m 3
Jean-Louis Fuchs s****7@r****h 3
JVanBuskirk J****k 3
Olivier Belanger o****r@a****m 2
Jean-Louis Fuchs g****l@f****h 2
patch a****o@g****m 1
giorgioguttilla 3****a 1
csaudiodesign c****r@g****m 1
Eduardo Mayorga Téllez m****x@f****g 1
Jeremy Van Buskirk j****b@y****m 1
Olivier o****r@1****n 1
Olivier Belanger o****r@O****n 1
oli o****i@M****l 1
Tim Gates t****s@i****m 1
Robinson Besson r****n@n****r 1
Jonas Schröder j****r@p****e 1
Colton Hill u****1@g****m 1
Christian Clauss c****s@m****m 1
Alexandre Detiste a****e@g****m 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 109
  • Total pull requests: 29
  • Average time to close issues: 11 months
  • Average time to close pull requests: 5 months
  • Total issue authors: 84
  • Total pull request authors: 15
  • Average comments per issue: 3.71
  • Average comments per pull request: 0.76
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 11
  • Pull requests: 8
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 1 month
  • Issue authors: 11
  • Pull request authors: 4
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.25
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • giorgioguttilla (4)
  • zappfinger (4)
  • Bibiko (4)
  • jacksongoode (3)
  • steeley (3)
  • chigkim (2)
  • dsholes (2)
  • Manu197-pn (2)
  • ultrasound1372 (2)
  • jsl303 (2)
  • JeremyKeenan (2)
  • luisArandas (2)
  • Daybreak2019 (2)
  • smojef (2)
  • glaubitz (2)
Pull Request Authors
  • cclauss (6)
  • CristiFati (5)
  • jorenham (2)
  • derbibiko (2)
  • mcepl (2)
  • smojef (2)
  • glaubitz (2)
  • a-detiste (2)
  • belangeo (1)
  • timgates42 (1)
  • ultrasound1372 (1)
  • rhizoome (1)
  • Bibiko (1)
  • levaitamas (1)
  • bdrung (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 23,011 last-month
  • Total docker downloads: 63
  • Total dependent packages: 7
  • Total dependent repositories: 68
  • Total versions: 6
  • Total maintainers: 1
  • Total advisories: 2
pypi.org: pyo

Python module to build digital signal processing program.

  • Versions: 6
  • Dependent Packages: 7
  • Dependent Repositories: 68
  • Downloads: 23,011 Last month
  • Docker Downloads: 63
Rankings
Dependent packages count: 1.6%
Dependent repos count: 1.8%
Stargazers count: 1.9%
Average: 3.1%
Docker downloads count: 4.0%
Forks count: 4.3%
Downloads: 4.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/build_manylinux_wheels.yml actions
  • RalfG/python-wheels-manylinux-build v0.5.0-manylinux2014_x86_64 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
setup.py pypi