Notes in addition to what's on the project web site.
v0.3.0 is the first version named saugns. The v0.3.x versions are based on the 2012 "sgensys" code (with extensive changes rebased down into newer, untagged sgensys v0.2.x versions). The v0.3.x tags can be used to reach down to snapshots for the obsolete 2012 versions released at Gna!.
Future versions after v0.3.x rework the code from a simpler 2011 "mgensys" starting point (re-using various smaller modules and debugged parts from the v0.3.x history).
The scripts in examples/ show how various things can be done. Some in devtests/ also do, but others have different purposes, e.g. parser tests, or sketching out ideas for further development.
Several main tracks of further development have been planned since the project was resumed in late 2017.
- Clean-up: Bugfixes, basic design improvements, and simple audio quality improvemets, done in v0.3.x. (Crudely anti-aliased square and sawtooth wave types done as of v0.3.3.)
- Further features: Supporting noise generation. A syntax for ADSR envelopes (instead of having to use several value ramps in succession). Abstractions for sound re-use in script after definitions.
- New language: The current parser and generator design is too limited for adding various features, and if more are to be added cleanly, complexity (handling of semantics) should be shifted into later phases of handling the input. A major redesign has sketchily been considered since 2012. Ideas gathered during the 2017-2019 clean-up can help bridge the gap.
- Interpreter and renderer: Replacing the current generator with an interpreter running e.g. a simple byte-code language, using modular generation of smaller types of audio blocks.