Skip to main content

Python synthesizer Build Status Documentation Status

  • 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

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)

Source distribution for synthesizer 0.3.0
File Size Uploaded
synthesizer-0.3.0.tar.gz 19.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for synthesizer 0.3.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.1

2 release files

This release

0.3.0 This release

2 release files

0.2.0

1 release file

0.1.5

1 release file

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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