Show more

Finishing the widget elements for UI programming in , slowly popowly starting to move modules from classical to the new embedded version. The UI looks more or less the same.

red and green lights refracted through droplets on glass

If you understand German, Traumarsenal is a very intriguing series by Justin Winkler around artistic ways of interpreting dreams (sent in anonymously), with references to Robert Desnos' works of the 1930s.

You can listen to all episodes in the Cultural Broadcasting Archive:

2.33.0 is published now. It contains various improvements to FScape (mostly the addition of `If` `Then` `Else`; this caused a lot of changes to the Akka Stream layer, so expect this to have some bugs not found yet), as well as some improvements to building GUIs using the Widget object. This is an "intermediate" release, because I'm going to work more on FScape and Widget in the next two weeks, and another release is likely.

I'll be using 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).

Talking of which... a new version v2.32.0 has been released.

The first one to drive new mini-IDE Dotterweide. Now you have diagnostics in code editors (red squiggles for errors in the code), you can highlight occurrences of a symbol (ctrl-shift F7; doesn't work always but in many cases), auto-completion is now full-document based and not line based as in the REPL (still needs polishing), and you can look up API docs via ctrl-alt-D. Tutorial to follow.

Excited that the programme of our research seminar 'Simulation and Computer in Music and ' is online now:

Registration is open till March 18!

Looking forward to meeting these people in Ghent at in two weeks.

After long time not attending (London 2012), I will be going again this year to - taking place at EPFL in Lausanne. I will be presenting my work on the computer music IDE :


My photo of the river from the train window got photobombed by another passing train, and I quite like the result!

actually made a translation "mistake" but very beautiful.

here is a gcd version:

play {
val mx =, 200)
val my =, 200)
val freq = ( * 20).gcd(GESeq(mx, my)) * 30 + 500 * 0.1

Working on documenting the GE operators in , translating some examples from SC. This is just a beautiful use of the lcm (least common multiple)

play {
val mx =, 20)
val my =, 20) * 20) lcm (GESeq(mx, my) * 30 + 500)) * 0.1

Show more

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!