This sweep and modulator list syntax unification is in #saugns v0.4.2, released today.
The idea for this change was simple, but it took years before it popped into mind. It's done and that's great, but sometimes I wish I found somewhere to discuss such language ideas, it could lead to more sooner. Usually no one has had anything at all to say beyond either indifference or simply finding my program a bit interesting to play with.
I've experimented with making further kinds of simple musical scripts for my #saugns program, mainly one-liners shorter than 80 characters.
It's easy to make algorithmic music that may fit 90s-style video games. Here's a one-liner background #music track, remarkably complex for having one voice and 3 ops only, using randomness for both timbre and "note" variation.
/seed(2) Rlin f2 t60*4 p[Wmto r8.r64[Ruwh f1] a2]
A new git repository for extra scripts for my #saugns program.
The very simple Makefile uses saugns and sox to "build" MP3s from any new/updated scripts placed in any new/updated first-level subdirectory:
https://codeberg.org/sau/extra-scripts
A list of any (re)written MP3s is printed when running `make`, nothing if none.
Done to clear out my old local files, and put them somewhere sensible, And to make it easier to make MP3s to add to the website. Maybe later, it will have nicer scripts.
I've added a third part to my online blog/articles about this audio value #noise stuff. Recently expanded to cover random sawtooth (mainly interesting as #LFO), and a different random jagged waveform with inharmonic distortion.
Those are now in the #saugns stable branch, additional flags for R which can be combined with the other options.
Implementing the new modes just requires handling pairs of noise values a little differently, for slope polarity and/or jaggedness.
@ho Experimenting with making a DSL is easy, if kept simple. It's a complex field concerning complex things, but there's no academic wisdom on the simplest and on purer matters of taste. Simple unusual things can be difficult to even classify academically.
I've toyed with the idea of a Rust #saugns or similar, but for now C works.
I'm interested in non-Turing complete DSLs. Pre-calculable script durations, like normal audio files.
But my stuff still isn't good for writing music. More to try.
Recently, I've finally made good-sounding drumbeats using my #saugns program. Some new ones which sound good enough they could be used as-is in EDM. As drum examples are growing, I gave them their own example page...
https://sau.frama.io/examples/r-drums.html
The new drums use amplitude modulation for simplistic envelopes. It's trivial to make beat-pairs where the 2nd fades in rather than out, familiar from music I listened to in the past, without using a real dynamics compressor.
I'm reworking the named #waveforms available in my #saugns program/#SAUlang.
Inspired by Donald Tillman's suggested waveform palette ( https://till.com/articles/wavepalette/index.html ), I made a set of 3 waveforms in-between his mellow and bright, too.
My "catear" waveform adding even harmonics happens to look like stylized cat ears on a cat's head. It's made by adding sine and the all-harmonics type, then subtracting the all-odd-harmonics type (blue, square root of sine, below).
I've played around more with this violet binary noise pattern, and I think it's generally catchy for drumming.
I used the #noise tag before, but then wondered if my #drum sound may have been too un-noisy for that. So here is a much noisier drum. (This can now be ran using the stable branch version of #saugns.)
Rsah mt3 f200/5 p[Rxpe mvb f5 a200/4] t30
Imagine you're in an alternative universe in which, when you flip a coin, if you get the same outcome twice, it's a certainty that the next time, it will be different. But if it differed, then you don't know if the last outcome will repeat or not. There are also runs of single and pair outcomes.
This is violet binary #noise.
Here's random drumming using it for the pattern. This will be added to the next #saugns version.
Wsin f200/5 p[Rxpe mvb f5 a200/5] t30
Here's a #soundscape script showing roughly how complex the sounds are which can be made using < 80 characters, with #saugns v0.4.0.
'f=10/3
Rcos mg f$f t60 p[
Wsin r10 a4 p[Wsin r-2.r+2[Rlin mt p0/4 f20*$f]]
]
(In the previous post, the user 'm' was 'mentioned' by accident -- due to the '@' in the script. On another note, this time I set an image.)
I've now released v0.3.12 of #saugns (https://sau.frama.io), which fixes old bugs and refines old features. It's meant to be the last version with only normal oscillators.
Following another insane git rebase marathon, the new version does away with some code, and splits out a static C library for the #SAUlang implemented.
Next, to add the new signal generators from the (otherwise less usable) "mgs0.1" branch mentioned earlier.
#saugns #saulang #scriptingLanguage #audioprogramming