Answers to questions about saugns

The below compiles some basic questions and other feedback to also cover some other possible questions.

As of 2022, I haven't had much feedback on the program and its language, and practically no in-depth discussion for the last decade on how it works. Ideas and suggestions are welcome as I rethink what to develop it all into.


Platforms & modifications

saugns is mainly developed on x86/x86-64, because currently, such are the computers I've used. However, there's no architecture-specific code in the program, and it reportedly works fine on Raspberry Pi 3, i.e. ARM. Generally, little-endian 32-bit and 64-bit architectures can work fine with the current code unless something has been missed.

For big-endian, not knowing more yet, at a minimum WAV file output code must change so that output bytes are still little-endian.

Operating systems

Tested operating systems include the four major BSDs (FreeBSD, OpenBSD, NetBSD, DragonFly), and various GNU/Linux distros. *nix, in general, may be the easiest to further port the program to.

Written in C99, the program still works on 2010-ish 32-bit x86 DragonFly with GCC 4, and other similar-ish *nix systems of that age.

Re-using smaller parts

Small parts of saugns, e.g. the oscillator code (for producing the audio at one "end" of what the program does), low-level "text file" buffer code (for parsing input at the other "end"), utility code at the lowest level (for example the mempool), do not depend on the bigger things which use them, and can be copied for re-use in other software fairly simply. Note that smaller components are usually written to fit how saugns uses them, and may turn out too simple or too specific for other needs.

Specific questions

Can it be used with real-time control?

Currently no. There is no scheduling of input to allow control while the program is running. It can only be started and stopped. A main goal has been for the script files to be like audio files.

What main alternatives exist?

The most well-known among more full-featured alternatives are: csound, RTcmix, SuperCollider, and ChucK. While saugns is simpler to use as a tone generator, those programs are designed to be used more as musicians tend to use software.

Note that even the most minimalistic of these, ChucK, is much larger in lines of code than saugns.