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 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 installInstall library (may require sudo):
$ # Install inplace
$ pyton3 setup.py build_ext --inplace
$
$ # Install
$ (sudo) python3 setup.py install
$
$ # Uninstall
$ (sudo) pip3 remove wavedreamAfter 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.