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.