***************************************************
- SATAN - Signal Applications To Audio Networks
- (C) 2003 by Anton Persson & Johan Thim *
- Released under the GPL - GNU General Public License
- See COPYING for more information about this license.
- INSTALLATION
The file INSTALL contains a more detailed description of how to install this application, but here is a brief instruction. Write the following sequence of instructions in your shell:
% make
% make install
- USAGE
SATAN accepts the following parameters:
-f <filename> : Name of a .lcf input file,
default is to read from STDIN.
-b <bytes> : Buffer size to use, defaults
44100. This Can also be set in
the .lcf file, which then
overides all.
-p : Display a progress bar.
-m : Interval used to display a
"am alive" message, and statistics.
-h : Print a small help message.
To invoke SATAN:
% satan -f my_soul.lcf -p
LCF-files:
SATAN uses special text-files called .lcf-files that describe a network of units that process different audio signals. SATAN supports c-style comments in the .lcf-file, so a basic file looks something like this:
begin
/* Load different modules */
/* Soundcard support */
dynmod( satan/plugins/dynao.so, dynao);
/* Demo synth */
dynmod( satan/plugins/ssynth.so, ssynth);
/* Some parameters */
time_limit = 60; /* Run the net for 60 secs */
buffer_size = 4096; /* Data buffers of 4k */
bpm = 100; /* Tell the ssynth module to run at
100 beats per minute */
/* Describe some unit */
unit bassU {
signal y : out;
begin
/* This unit just calls
* the ssynth module to
* generate a bassline
*/
func ssynth(bass) => <y>;
end
}
/* The main part of the .lcf-file, this
- is where the network is described.
*/
main {
b : unit bassU; /* An instance of the
- bass line unit. */
destination : unit audioU; /* some output */
begin
b@y => destination@x;
end
}
end
The audioU-unit wasn't described here, see the example's directory for a working example.
WRITING YOUR OWN MODULES:
SATAN can dynamically load different modules
to process signals. Examples of different modules can
be found in the dynlib directory.
<DOCUMENTATION PENDING>
