synthesizer

Virtual analog synthesizer for Python

https://github.com/yuma-m/synthesizer

Science Score: 13.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
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.5%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

Virtual analog synthesizer for Python

Basic Info
Statistics
  • Stars: 124
  • Watchers: 6
  • Forks: 18
  • Open Issues: 0
  • Releases: 3
Created over 8 years ago · Last pushed over 2 years ago
Metadata Files
Readme Changelog License

README.md

Python synthesizer Build Status Documentation Status

  • Virtual analog synthesizer.

Installation

bash $ pip install synthesizer

Install dependencies

Ubuntu

bash $ apt install portaudio19-dev $ pip install pyaudio

macOS

bash $ brew install portaudio $ pip install pyaudio

Basic usage

Play 440Hz sine wave

```python

from synthesizer import Player, Synthesizer, Waveform

player = Player() player.openstream() synthesizer = Synthesizer(osc1waveform=Waveform.sine, osc1volume=1.0, useosc2=False)

Play A4

player.playwave(synthesizer.generateconstant_wave(440.0, 3.0)) ```

Play chord

```python

Play C major

chord = ["C3", "E3", "G3"] player.playwave(synthesizer.generatechord(chord, 3.0))

You can also specify frequencies to play just intonation

chord = [440.0, 550.0, 660.0] player.playwave(synthesizer.generatechord(chord, 3.0)) ```

You can use PyChord to handle chords easily.

```python

from pychord import Chord chord = Chord("Dm7/G") player.playwave(synthesizer.generatechord(chord.componentswithpitch(root_pitch=3), 3.0)) ```

Specify audio device

```python

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.openstream(devicename="UA-25EX") ```

Write wav file

```python

from synthesizer import Writer writer = Writer()

chord = ["C4", "E4", "G4"] wave = synthesizer.generatechord(chord, 3.0) writer.writewave("path/to/your.wav", wave) ```

Examples

play_pychord.py

Play chords using PyChord.

bash pip install pychord>=0.5.0 python example/play_pychord.py A C#m7 DM7 Bm7/E A

Supported OS

  • macOS 10.12 and above
  • Ubuntu 16.04

Supported versions

  • Python 2.7
  • Python 3.5 and above

Author

License

  • GPL v3 License

Links

  • PyPI: https://pypi.python.org/pypi/synthesizer
  • GitHub: https://github.com/yuma-m/synthesizer
  • Document: https://synthesizer.readthedocs.io

Owner

  • Name: Yuma Mihira
  • Login: yuma-m
  • Kind: user
  • Location: Tokyo, Japan
  • Company: Amazon Web Services Japan

IoT & robot engineer in Japan. Enhance the power of music with technologies!

GitHub Events

Total
  • Watch event: 6
Last Year
  • Watch event: 6

Committers

Last synced: over 3 years ago

All Time
  • Total Commits: 34
  • Total Committers: 3
  • Avg Commits per committer: 11.333
  • Development Distribution Score (DDS): 0.059
Top Committers
Name Email Commits
Yuma.M y****m@u****m 32
Riedler d****r@g****t 1
dependabot[bot] 4****]@u****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 12 months ago

All Time
  • Total issues: 1
  • Total pull requests: 8
  • Average time to close issues: about 19 hours
  • Average time to close pull requests: 1 day
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.25
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • pazooki (1)
Pull Request Authors
  • yuma-m (6)
  • AntiMatterAMA (1)
  • dependabot[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
enhancement (1) dependencies (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 282 last-month
  • Total docker downloads: 25
  • Total dependent packages: 0
  • Total dependent repositories: 6
  • Total versions: 7
  • Total maintainers: 1
pypi.org: synthesizer

A simple virtual analog synthesizer.

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 6
  • Downloads: 282 Last month
  • Docker Downloads: 25
Rankings
Docker downloads count: 4.1%
Dependent repos count: 6.0%
Stargazers count: 6.9%
Average: 8.2%
Forks count: 8.9%
Dependent packages count: 10.1%
Downloads: 13.2%
Maintainers (1)
Last synced: 12 months ago

Dependencies

docs/requirements.txt pypi
  • enum34 >=1.1.6
  • numpy >=1.13.3
  • scipy >=0.19.1
requirements.txt pypi
  • PyAudio >=0.2.11
  • enum34 >=1.1.6
  • numpy >=1.13.3
  • scipy >=0.19.1
setup.py pypi
  • PyAudio >=0.2.11
  • TODO *
  • enum34 >=1.1.6
  • numpy >=1.13.3
  • scipy >=0.19.1
.github/workflows/build.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/deploy.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite