Giter VIP home page Giter VIP logo

sinethesizer's Introduction

Build Status codecov Maintainability PyPI version

[Sine]thesizer

Overview

It is a digital synthesizer that is based on some design principles:

  • Control via text files facilitates automation and boosts reproducibility, so GUI is absent.
  • Although low-level and OS-specific dependencies improve performance, they reduce reliability, portability, and transparency, so they are avoided here. This standalone synth depends only on Python and some its packages.
  • Since performance is not a merit of this synth, it is better to trade off speedups for sound quality. In particular, wavetables are not used at all and full waves are generated. Also, noise is generated from scratch every time it is needed.

The list of implemented and planned features is as follows:

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

Installation

To install a stable version, run:

pip install sinethesizer

Usage

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 \  # Or -p path/to/dir_with_presets
    -m path/to/midi_config.yml \
    -o path/to/output.wav

However, MIDI files are binary and, therefore, quite opaque. Also, integration between them and this synth is not complete: for example, control changes are ignored and event-level effects can not be applied. Here, TSV (Tab-Separated Values) files of special schema can be used as a native and more transparent alternative to MIDI. To process such a file, run:

python -m sinethesizer \
    -i path/to/track.tsv \
    -p path/to/presets.yml \  # Or -p path/to/dir_with_presets
    -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/midi_config.yml Settings of MIDI file interpretation Demo MIDI config

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

See also

To turn Jupyter notebook into a simple DAW, PyMixer can be used. It is a Python library having good integration with [Sine]thesizer. Together they form a small ecosystem of audio tools which are oriented to text-based control.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.