Skip to main content

A simple virtual analog synthesizer.

Project description

  • Virtual analog synthesizer.

Installation

$ pip install synthesizer

Install dependencies

Ubuntu

$ apt install portaudio19-dev
$ pip install pyaudio

macOS

$ brew install portaudio
$ pip install pyaudio

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 = [261.626,  329.628, 391.996]
>>> player.play_wave(synthesizer.generate_chord(chord, 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 = [261.626,  329.628, 391.996]
>>> wave = synthesizer.generate_chord(chord, 3.0)
>>> writer.write_wave("path/to/your.wav", wave)

Supported OS

  • macOS Sierra

  • Ubuntu 16.04

Supported versions

  • Python 2.7

  • Python 3.4 and above

Author

License

  • GPL v3 License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synthesizer-0.1.4.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

synthesizer-0.1.4-py2.py3-none-any.whl (7.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file synthesizer-0.1.4.tar.gz.

File metadata

File hashes

Hashes for synthesizer-0.1.4.tar.gz
Algorithm Hash digest
SHA256 fdc011702cd7a405705ff55d1698ad7cd3110dec57b64a16f2c76f4c174939c9
MD5 4b6280fbc04c69e74930194c07671a4b
BLAKE2b-256 79fb01f7f30ea2f7dd8111fbe26e2ee2cdc3707a0d0714348fba7b6fb33e878a

See more details on using hashes here.

File details

Details for the file synthesizer-0.1.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for synthesizer-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bdf6c7a406e4129bbf92dbf039938c3af7175c799cf5c431b6d888b66b61f548
MD5 144951ebc96ba621845a67163b4eff98
BLAKE2b-256 48a3dd4583add309c73e615649925f42058be203276ea1e5bff16c2ec480d75d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page