The ALMAT residency was in many ways very productive for me. The collaborations and conversations with David, Hanns Holger and Daniele have spawned a number of technical, aesthetic and conceptual developments in my work.
From the outset, we (David and I) had rather clearly defined goals and starting points: We sought to explore synchronization phenomena, and in particular the Kuramoto model and its computational form, in a series of implementations and â€œformats.â€ I implemented visualizations of the Kuramoto model in Elm and Haskell, a webassembly version using Rust, and the Hopf oscillator as SynthDefs in and as UGens for SuperCollider. Besides the multiplicity of implementations, we also sought to develop a multiplicity of formats or media, including a sound installation, visualizations, live performances and a version for an ensemble of musicians. During the course of the residency we ended up focusing on a few of these strands, but each of these still gave rise to different aesthetic ideas and technical questions.
Two principles guided our work: the necessity of contingency and the difference between (mathematical) model and computational algorithm. In my work, I'm generally interested in algorithms that extend into a physical and performative realm and which are open to the contingencies of the "outside". I'm interested in form as a contingently emergent necessity. In the installation we presented at the symposium in Ghent as well as in other works developed during the residency, I tried to see the synchronization algorithms as models of being affected by contingency and thereby as means of deriving form from something "formless". During the presentation in Ghent the necessity of contingency became particularly tangible as the phases of six oscillators did not synchronize due to their equally distributed initial phases. In a way they were not random enough leading to steady state. The difference between model and algorithms, or between mathematical and computational formulation, which David often stressed, shows the performative aspect of algorithms as processes whose execution has its own reality.
The discussions we had on computational contingency have been of particular relevance for my work. The notion of algorithmic contingency developed by Yuk Hui and our experiences with dynamical systems and their procedural and potentially unpredictable nature have suggested a concept of materiality of computation, which I seek to elaborate further. This is closely connected to the distinction between the organic and the mechanic, as well as between the algorithmic as recursion and as recipe, as proposed by Hui. The idea of recursion has been a central concept during the residency and has also been crucial to the idea of wreck, a small functional sound synthesis language I developed as part of the residency (see below). David and I sought to formalize the relation of recursivity, "recipe-ness", openness and closure. The curious dialectic of the algorithmic elimination of contingency and the emergence of new types of (computational) contingency, as described by Hui, has been particularly striking. This also led me to reflect on the nature of recursion in purely functional programming languages. While recursion appears as the organic emergence of "auto-finality" and "the infinite in finite form" programs written in functional languages are often much less "systemic" and "performative" due to referential transparency and their atemporal, stateless and non-procedural nature.
David, Daniele and I met three times for collective improvisations using some of the algorithms and ideas we had developed in the course of my residency. These rather spontaneous improvisations, which we had hardly prepared, turned out to be surprisingly impressive. The sensitivity of synchronization algorithms, such as the adaptive Hopf oscillator, created complex musical and sonorous situations with emergent forms on different temporal level. Particularly impressive was the interaction between the systems. The closure and openness or coupling of the systems become a principle musical parameter and strong coupling between the systems made non-linearity and emergence tangible, as small parameter changes in one system often led to complex repercussions throughout the network. This type of musical and sonorous interdependence is of course an ideal for many improvisational musical practices. Moreover, these improvisations involved interesting modes of performance and listening as the role of us three performers was not so much the causation of sound(s) but rather the navigation within a vast space of possibilities.
wreck is a small functional sound synthesis language, which I developed during the residency. I built a prototype compiler using OCaml's llvm bindings. The language is based on the idea of recursive continuations to represent state. Each process is formulated in terms of a function that returns a value and a delayed process function call encapsulating updates to the state. After the implementation of a first working prototype compiler, I encountered major difficulties with the typing of the return values, which were a result of the hierarchy of float values, functions, processes and delayed values. After further study of the faust dsp language, I have come to the conclusion that this hierarchy should be abandoned in favor of a simpler and more radical model based solely on the notion of processes.
The residency has given rise to a number of new strands of research and musical practice, which require further development:
- Performance/Improvisation with the trio Daniele, David and me
- Further development of wreck
- 2d coupling of oscillators using the Kuramoto model
- Kuramoto model with a series of â€œharmonicsâ€ whose strengths are derived from analyses of audio recordings
- A version of the installations for musical performers
- A theoretical articulation and summary of the notions developed and references during the residency (recursivity, computational contingency, model/implementation, coupling, synchronization)