04-04-2020, 05:24 AM
An old project of mine, resumed in late 2017, is saugns, which parses, plays, and/or writes WAV files for SAU scripts (SAU is the audio script language defined by the program).
It's a command-line audio program for Linux and *BSD. Apart from timed tone sequences (with various wave types), the program supports amplitude, frequency, and phase modulation. (PM is what is actually at the heart of the 16-bit video game era "FM synth" sound; in the 80's, Yamaha changed FM into PM but called it FM.)
(For somewhat less technical Linux users, a C compiler, e.g. "gcc", and the "make" program, and the ALSA "libasound2" library, need to already be installed on your system to, well, be able to make the program from the downloaded source by running "make" in the directory. On Ubuntu and similar, "libasound2-dev" is needed, as needed files are split into that package.)
There's actually two related programs, temporarily. The current main version is saugns v0.3.6e, and what you get when it's downloaded. It has the most features, except being all about wave oscillators and what can be done with them. A partial rewrite, with a white noise generator just added, is based on an older version and still lacks "ramps" (smooth, timed parameter changes). The redesign-in-progress is in the "mgs0.1" git branch; if the program is downloaded with "git clone", then a "git checkout mgs0.1" afterwards in the directory will switch to that version.
The main version is described on the web page, along with the included documentation and example scripts. The redesign-in-progress version only has its README file for now, along with a smaller set of example scripts.
I have the vague hope that the new version will lead to a scripting language actually suitable for writing music in, though neither version is there yet. The current versions make for easy experimenting with sounds, but any repetition requires full copy-pasting.
It's a command-line audio program for Linux and *BSD. Apart from timed tone sequences (with various wave types), the program supports amplitude, frequency, and phase modulation. (PM is what is actually at the heart of the 16-bit video game era "FM synth" sound; in the 80's, Yamaha changed FM into PM but called it FM.)
(For somewhat less technical Linux users, a C compiler, e.g. "gcc", and the "make" program, and the ALSA "libasound2" library, need to already be installed on your system to, well, be able to make the program from the downloaded source by running "make" in the directory. On Ubuntu and similar, "libasound2-dev" is needed, as needed files are split into that package.)
There's actually two related programs, temporarily. The current main version is saugns v0.3.6e, and what you get when it's downloaded. It has the most features, except being all about wave oscillators and what can be done with them. A partial rewrite, with a white noise generator just added, is based on an older version and still lacks "ramps" (smooth, timed parameter changes). The redesign-in-progress is in the "mgs0.1" git branch; if the program is downloaded with "git clone", then a "git checkout mgs0.1" afterwards in the directory will switch to that version.
The main version is described on the web page, along with the included documentation and example scripts. The redesign-in-progress version only has its README file for now, along with a smaller set of example scripts.
I have the vague hope that the new version will lead to a scripting language actually suitable for writing music in, though neither version is there yet. The current versions make for easy experimenting with sounds, but any repetition requires full copy-pasting.