Python synthesizer

- Virtual analog synthesizer.
Installation
$ pip install synthesizer
To play sounds with Player, install PyAudio as well.
$ pip install "synthesizer[audio]"
Install dependencies for PyAudio
Ubuntu
$ apt install portaudio19-dev
macOS
$ brew install portaudio
Basic usage
Play 440Hz sine wave
>>> from synthesizer import Player, Synthesizer, Waveform
>>> player = Player()
>>> player.open_stream()
>>> synthesizer = Synthesizer(osc1_waveform=Waveform.sine, osc1_volume=1.0, use_osc2=False)
# Play A4
>>> player.play_wave(synthesizer.generate_constant_wave(440.0, 3.0))
Play chord
# Play C major
>>> chord = ["C3", "E3", "G3"]
>>> player.play_wave(synthesizer.generate_chord(chord, 3.0))
# You can also specify frequencies to play just intonation
>>> chord = [440.0, 550.0, 660.0]
>>> player.play_wave(synthesizer.generate_chord(chord, 3.0))
You can use PyChord to handle chords easily.
>>> from pychord import Chord
>>> chord = Chord("Dm7/G")
>>> player.play_wave(synthesizer.generate_chord(chord.components_with_pitch(root_pitch=3), 3.0))
Specify audio device
>>> player.enumerate_device()
# index: 00, name: "Built-in Microphone", rate: 44100
# index: 01, name: "Built-in Output", rate: 44100
# index: 02, name: "UA-25EX 44.1kHz", rate: 44100
>>> player.open_stream(device_name="UA-25EX")
Write wav file
>>> from synthesizer import Writer
>>> writer = Writer()
>>> chord = ["C4", "E4", "G4"]
>>> wave = synthesizer.generate_chord(chord, 3.0)
>>> writer.write_wave("path/to/your.wav", wave)
Examples
play_pychord.py
Play chords using PyChord.
pip install pychord>=0.5.0
python example/play_pychord.py A C#m7 DM7 Bm7/E A
Supported OS
- macOS
- Linux
Supported versions
- Python 3.10 and above
Author
License
- GPL v3 License
Links
Metadata
Release files for synthesizer 0.3.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 | |
|---|---|---|---|
| synthesizer-0.3.0.tar.gz | 19.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| synthesizer-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.2 kB
Release files / synthesizer-0.3.0.tar.gz
| Download URL | synthesizer-0.3.0.tar.gz |
|---|---|
| Size | 19.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b7056632d4d04e34b78d1cd8c5f4eca83ea780cfaded65dd54ee1c150d05822
|
|
BLAKE2b-256 checksum How to use checksums |
c0edd79e5eb1995bec6ec2b9a675e9c4f2bf5cabba03a9a20daa0775c157e7e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / synthesizer-0.3.0-py3-none-any.whl
| Download URL | synthesizer-0.3.0-py3-none-any.whl |
|---|---|
| Size | 18.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
46107877934f5ca5170460bd0abbfdcc2f59147b13afe2652a9d873b75fccaad
|
|
BLAKE2b-256 checksum How to use checksums |
442b543c49b5496b3db6d55962fdf56e14767cccf3055e784b7e4e7318cfbfa6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|