Mono
Hello. This is an excercise in subtractive synthesis. My intent is to write a bandlimited oscillator, a 4-pole low-pass filter and an envelope generator that run in real-time, and to have a TB-303- inspired graphical user interface on top of that.
Current features:
[yes] oscillator (though not yet properly bandlimited)
[yes] 4-pole all-pole low-pass filter
[yes] ADR envelope generator
[yes] single pattern sequencer
[yes] butt-ugly GUI
[yes] real-time audio output on Linux, IRIX and Solaris
Current problems:
- oscillator is not properly bandlimited
- sliders aren't quite calibrated
- butt-ugly GUI :)
- minor malfunctions (bugs? features?)
- there is no sequencer button feedback during playback
- there are no tones synthesized during sequencer programming
- audio hardware configuration is selected at compile time
- sound file write is selected at compile time and doesn't work with
RT audio output
- Requirements
- Sonic Flow version >= 0.1.3; requires
- libsoundfile version >= 1.0.0
- Gtk-- version >= 1.1.8; requires
- GTK+/Glib version >= 1.2.5
- libsigc++ version >= 0.8.5
- libaudiohw version >= 0.2.0; requires
- libsoundfile version >= 1.0.0
- libpbd version >= 1.0.0
- libsigc++ version >= 0.8.5
- POSIX threading (libpthread)
- C++ Standard Template Library
Configuring audio output a.k.a. What to do after downloading:
As of now, the audio configuration process is not that nice; you have to be a nerd in order to succeed.
Namely,
(1) selecting between RT audio output and file output
- file src/engine.cc, at end of function Msyn_Engine::build_network()
- output file is "mono_out.wav" (see Msyn_Engine) (2) selection of RT audio driver
- file src/audio_output.cc, function Msyn_Audio_Output::open_audio()
- I've tested ALSA and OSS output so far (3) run configure and make (4) run src/mono (5) thumbs up!
Enjoy and send feedback and collaboration requests to:
Jarno Seppänen <jams@users.sourceforge.net>
