Skip to main content

A standalone synthesizer that is controlled through text files in an extendable way.

Project description

Build Status codecov Maintainability PyPI version



It is a digital synthesizer that has no GUI and is controlled through text files instead. Thus, some things might be done much faster and some things might be completely automated.

The list of implemented and planned features is as follows:

  • <input type="checkbox" checked="" disabled="" /> Balance between freedom for user and simplicity of input formats
  • <input type="checkbox" checked="" disabled="" /> Support of additive synthesis, subtractive synthesis, and AM/PM synthesis
  • <input type="checkbox" checked="" disabled="" /> Sound effects (e.g., phaser, overdrive, reverb, etc)
  • <input type="checkbox" checked="" disabled="" /> Custom envelopes
  • <input type="checkbox" checked="" disabled="" /> Noises and drums
  • <input type="checkbox" disabled="" /> Rich collection of presets


To install a stable version, run:

pip install sinethesizer


This synthesizer converts MIDI files and special text files to WAV files with resulting audio tracks.

For a MIDI file, it can be done with the following command:

python -m sinethesizer \
    -i path/to/track.midi \
    -p path/to/presets.yml \
    -m path/to/mapping.yml \
    -o path/to/output.wav

However, MIDI files do not carry information about source location and event-level effects. Here, TSV (Tab-Separated Values) files of special schema can be used as a more self-contained alternative to MIDI. To process such a file, run:

python -m sinethesizer \
    -i path/to/track.tsv \
    -p path/to/presets.yml \
    -o path/to/output.wav

Below table provides links to detailed information about input files that are required from a user.

Option Description Example
-i path/to/track.tsv Track definition Scale
-p path/to/presets.yml Instruments definition Demo instruments
-m path/to/mapping.yml Mapping from MIDI instrument IDs to instruments from the presets Demo mapping

If something is still unclear, you can read the source code — it is structured and has built-in documentation. Also your questions are welcome.

Project details

Download files

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

Files for sinethesizer, version 0.5.2
Filename, size File type Python version Upload date Hashes
Filename, size sinethesizer-0.5.2.tar.gz (43.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page