saugns is the Scriptable AUdio GeNeration System,
the implementation of the SAU (Scriptable AUdio) language.
SAU is a simple language for mathematical sound synthesis,
without support for the use of pre-recorded samples.
While the language is still primitive relative to the
goal (a useful language for writing electronic music),
it makes it simple to experiment with sounds.
A collection of basic wave types are supported, as well as
AM, FM, and PM (the "FM" of most commercial synthesizers).
An arbitrary number of oscillators can be used.
See 'doc/README.SAU' for a concise SAU language reference.
Example scripts under 'examples/' use the main features of
The program reads SAU (Scriptable AUdio) files or strings,
and can output to system audio and/or a 16-bit PCM WAV file.
Basic usage information is provided with the -h option. More
can be found in the man page and on the website,
Tested platforms include x86 and x86-64,
running DragonFly, FreeBSD, Linux, NetBSD, or OpenBSD.
Other systems are untested. The following audio systems are expected:
Linux ALSA or OSS
Building and installing
Building requires a C99 compiler toolchain and
running `make` (GNU or BSD). (There is no "configure" step.)
On Linux systems, the ALSA library (libasound2) must first be installed.
In the cases of the 4 major BSDs, the base systems have it all.
A simple test after building is the following, which should
play a sine wave at 444Hz for 1 second:
./saugns -e "Osin"
`make install` will by default copy 'saugns' to '/usr/local/bin/',
and the contents of 'doc/' and 'examples/' to
directories under '/usr/local/share/':
'doc/saugns/README.SAU' SAU language reference.
'examples/saugns/' Example and test scripts.
(`make uninstall` removes the saugns binary and share directories.)
After installation, the saugns(1) man page gives
basic usage information and points to these files.
saugns is distributed under the terms of the GNU Lesser General
Public License (LGPL), version 3 or later. See the file COPYING
for details, or <https://www.gnu.org/licenses/>.
Some files are licensed under more permissive terms, such as
the ISC license (2-clause-BSD-equivalent), or
the 0BSD license (public-domain-equivalent shorter version);
see the heading comment text of source files.
The example and test scripts included as input for the program
currently do not have any explicit licensing. If needed in the
future, some Creative Commons license will be used. Feel free
to copy from the current ones for your own scripts.