/WaveDream

WaveDream is an experimental c++ made python module for virtual analog synth. https://soundcloud.com/yliess-hati/wavedream-demo

Primary LanguageC++

WaveDream

WaveDream is an experimental Virtual Analog Synthetizer. It is developped using C++ for performance and compiled as a python module using the pybind11 library for easy usage.

Here is a list of the features already developed or in developement for the project:

  • Audio libsoundio Wrapper
  • Oscilators
    • Sin
    • Square
    • Triangle
    • Analog Sawtooth (Preserve harmonics)
    • White Noise
  • Formant
  • Timbre
  • ADSR Enveloppe
  • LFO modulation
  • Note
  • Scales
    • Major [x]
    • Minor [x]
    • Pentatonic [ ]
  • Instrument
  • FXs
    • Reverb
    • Delay
    • Distortion
    • Filters
      • All Pass Filter
      • Low Pass Single Pole Filter
      • Low Pass Filter
      • High Pass Filter
      • Band Pass Filter
  • Modules
    • Arpegiator
    • Sequencer
    • Random Seed
  • Inputs
    • Keyboard Inputs
    • MIDI Controller

Known issues:

  • Python module does not always quite when audio.stop() is called
  • May Initialize callback after audio.Init() to get sample rate
  • Need better filter implementation

Install

Install all requirements (may require sudo):

$ pip3 install cython pybind11 cppimport
$
$ git clone https://github.com/andrewrk/libsoundio
$ cd libsoundio
$ mkdir build
$ cd build
$ cmake ..
$ make
$ (sudo) make install

Install library (may require sudo):

$ # Install inplace
$ pyton3 setup.py build_ext --inplace
$
$ # Install
$ (sudo) python3 setup.py install
$
$ # Uninstall
$ (sudo) pip3 remove wavedream

Usage

After install and compiling the python module you'll find some example usage of the library in the examples folder. Example from the example.py can be listent at soundcloud.

Dependencies