Back to working with the genetic synth-def programming in #Negatum ; I will try to integrate that soon into mainline Mellite. Now trying to automatically reduce the redundant graphs (replace constants, replace duplicate UGen signals). Here is a nice one:
(should I use mp3 directly now in mastodon or stick to funkwhale?)
Been hacking on a fully modulatable convolution UGen for #FScape (2). Seems to be working finally, allowing some funky things like quasi-continuous brickwall frequency filtering using dynamic windowed-sinc kernels 🤓 .
Next I want to try this as anti-aliasing filters for synchronous frequency shifting.
Making a postcard series for combo xCoAx 2020 / Almat 2020 conference and symposium (they will be available week after next at xCoAx 2019). I split the Almat motif set into two, using different parametrisation of the Neural Gas algorithm to trace my handwriting. I like both qualities, one is perhaps the gothic variant (gloomy like a Murnau), the other is more constructivist.
Status: rendering a series of images for an upcoming #Almat2020 postcard. The sequence is - tablet/hand writing -> growing neural gas -> DSP compositing.
We're very happy with our three day workshop result - protoype #Enantiomorph Study (Nayarí Castillo, Emma Luke, Hanns Holger Rutz)
Good night fediverse. Tomorrow with interpolation and composite rules.
val w = 640
val h = 480
val len = 8000
val x = SinOsc(7.2/len).linLin(-1,+1,0,w-1).roundTo(1)
val y = LFSaw (7.5/len).linLin(-1,+1,0,h-1).roundTo(1)
val sig = PenImage(
width = w,
height = h,
src = WhiteNoise(1.0).take(len),
x = x,
y = y,
next = Metro(len),
wrap = 0
I'll be using #FScape for materials of a workshop in April. Realising that I usually use static conditionals when running FScape graphs directly, I'm now implementing a runtime variant If-Then-ElseIf-Else so the predicate can depend on anything in the graph. That's the same syntax as in ScalaCollider which also has this little known If-Then-ElseIf-Else extension (it will partition the graph into different synths which are paused and resumed, while here we partially launch Akka Stream nodes).