| Source Code for a system of interconnectable modules for the recording, processing, and playback of real-time audio. What does it do? Anything you want, provided you write modules Modules with the following functionality are included: - soundcardio -- recording/playback with an off-the-shelf soundcard. Supports oversampling and oversampling anti-alias/anti-image filtering.
- spectr -- real time spectrogram and oscilloscope display
- bits -- increase the amount of quantization (decrease the number of bits) of a signal.
- rawread -- read unformatted sample data
- rawwrite -- read unformatted sample data
- mp3gate -- gateway to an MP3 compressor/decompressor
- splitter -- generate two outputs from one input
- syncswitch -- switches between two inputs. Supports 'blind test' mode.
- upsamplefilter -- upsample and then filter a signal
- filterdownsample -- filter and then downsample a signal
- adder -- add two signals together
These can be connected in any way you please. A typical connection might be: soundcardio(record) -> bits -> spectr -\ (play)\- <- <- <- <--/ Writing additional modules If the modules included with the Agalophone distribution don't do what you need, go ahead and write more! There is a utility library in the lib/ directory which is full of convenient routines. You can also use pre-existing modules as examples. For a signal processing module, "bits" is probably the best example. If you do write additional modules, I request (but do not require) that you do the following things: - Use portable API's when possible. Especially, use Java over a pipe to build GUI's (see Bits for an example), and use OpenGL with Glut for graphics (see spectr for an example).
- Avoid C++ unless you get a real benefit from its capabilities. It usually adds unneeded complexity and makes porting difficult because of differences between compilers. To make matters worse, the C++ standards committee has Pentagon syndrome.
- Send me a copy (preferably GPL Licensed) so I can include it with the distribution.
|