ursund is my music software for improvisation and live performance of music. It is a minimal DAW based around live looping and real-time composition. It features an effect system and interactive user interface allowing fine-grained control of recorded loops.
ursund is still in the early phases but has been my main musical tool for the past year. some key features:
- retroactive looping (i.e having the choice to create a loop AFTER it has been played - instead of the classic way of having to trigger both in and out)
- a cluster-based user interface for interacting with recorded sounds in an intuitive and truly nonlinear fashion.
- dynamic and automatic/random mapping of effect parameters
- individual control of each recorded loop
- randomized effects on a per-loop basis
- portable & controllable remotely via a web interface
- osc/midi compatible
- audio effects and dsp chains pre/post looper - with FAUST based audio effects featuring many presets (reverbs, delays, flangers, distortion, .. etc)
- ripple-like effect systems, where changes can echo throughout the system
- a meta-structure allowing the exploration of playing with your own body of work .. and more !

some demos so far:
an EP recorded using ursund in a portable setup and walking around in a forest singing songs and playing trees
an ambient sound bath session I hosted in Stockholm using the system, along with a circular speaker setup.
it is designed to be portable as well, running on a Raspberry pi. Here I am sitting in the forest and doing some vocal loops.
By using a 3D depth camera I made it possible to control the effects in the audio system with my body movements in real-time. How I move my arm can for example be connected to the amount of reverb.
stack:
- All built using Rust, with a separated architecture that allows for remote control of the real-time parts of the audio engine
- Rust frontend that can be run natively or in the browser through WASM, controlling the audio engine via websockets
- Audio system was previously done using SuperCollider, but due to latency and performance issues I decided to build my own engine.
- a previous version of the frontend was built in svelte / typescript, with d3.js.
even more previously I used React.
neither of them were suitable because of the fast updates required, so Rust+WASM was chosen instead.