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

* Sonic Flow version >= 0.1.3
* Gtk-- version >= 1.1.8
* libaudiohw version >= 0.2.0
* libsoundfile version >= 1.0.0
* libpbd version >= 1.0.0
* libsigc++ version >= 0.8.5
* GTK+/Glib version >= 1.2.5
* POSIX threading (libpthread; comes with Linux for example)
* C++ Standard Template Library (comes with GCC 2.95 for example)


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.

(1) selecting between RT audio output and file output
    - file src/, 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/, 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 

Speakershots: number one and number two.