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 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
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.