Sova

SOVA: POLYGLOT LIVE CODING

AGPL-3.0 · R. Forment, L. Jezequel, T. Dubois · 2026 · v0.1.0

Sova desktop application

Download

Platform Desktop
macOS (ARM) zip
macOS (Intel) zip
Linux (x86_64) zip
Linux (ARM) zip
Windows (x86_64) zip

Source code and issue tracker on GitHub. You can also compile the software yourself from source!

About

Sova is a music programming environment designed as part of a research/creation project supported by Athénor CNCM and the LS2N laboratory at the University of Nantes. Sova is developed since 2025 by a small team with the goal of providing a flexible, robust and extensible tool for musical live coding.

Our goal is to make a musical instrument that is both accessible to beginners and children, while being powerful and flexible enough for experienced musicians and artists. Most of the core internals of Sova are written in Rust: engine, scheduler, compilers and interpreters, I/O, etc. Sova also provides friendly clients making the tool easier to use. No knowledge of Rust is required to use or extend Sova. The software is designed to be extended by the community. New programming languages, I/O devices or synthesis options can be added without modifying the core itself.

Sova is designed as a vessel for experimentation. Sova is a runtime made to experiment with various programming languages specialized in music performance and improvisation. Sova tries to encourage musicians towards a performative and expressive approach to computer programming. We encourage musicians to perceive the computer as a musical instrument: an object both technical and poetical.

Sova architecture diagram

Sova can be considered as a step sequencer where the behavior for each step is defined by computer code. Each step is associated with a script written in some bespoke programming language. Each script can generate an arbitrary amount of musical events. Each script can also be of any arbitrary complexity. It can play a single note or deal with arcane musical processes. Unlike conventional step sequencers, the duration of a step is not fixed. Any step can be very short or infinitely long. For each step, one can choose a different programming language, most likely the one that best suits the task at hand. This approach allows for a high degree of flexibility and creativity in musical expression. Scripts can be interrupted, modified, and reprogrammed in real-time, allowing for dynamic and spontaneous musical performances.

Sova is a polyglot programming environment. The environment can host multiple programming languages, both interpreted and compiled. All these languages get access to the same virtual machine, scheduler and I/O provided by the environment. You can be creative with syntax and semantics without having to implement all the boilerplate needed to get your language running and doing anything useful!

Our goal is to provide a growing collection of music programming languages that all do things differently. Each language is free to follow a specific paradigm, to use peculiar data structures, to expose different abstractions for the musician to play with! Live coders are known to be creative with programming languages. They hack their way in order to get a language that feels nice to play with. We hope that Sova will foster experimentation around programming languages for immediate musical expression.

Sova's core and server are handling the transformation of all submitted scripts written in high-level languages to an intermediate machine representation close to assembly. Scripts written in very different languages can coexist and be executed concurrently. New languages can be added provided they can be compiled/interpreted into the intermediate representation used by Sova. At the foundation of Sova is a generic and powerful language for abstractly describing musical programs in a synchronous/imperative form. Interpreted languages can also be added to Sova.

Sova is designed to support students learning programming and/or computer music. The software is therefore accessible to any musician. No prerequisites are necessary to get started. The most dedicated users will soon feel the call to modify the tool itself as a way to extend their practice. Sova is free and open source: it can be freely modified. Sova is an environment designed to evolve with the musician. This software can also be interesting for experienced musicians, artists and researchers. Sova is a tool allowing for precise control of musical and audiovisual performances. Sova is all at once: an extensible and open source platform, a collaborative and real-time musical sequencer, an algorithmic and reactive musical instrument.

Features (click to learn more!)

Team

Sova is developed by a small team of researchers and musicians in collaboration thanks to the support of partner institutions in the Pays de la Loire French region. As a free and open source project, all kinds of contributions are welcome. The more the merrier! Development takes place on GitHub. Send us your ideas, feedback, bug reports and feature proposals, etc.

Live Coding

Live coding is a technique where a programmer writes code in real-time in front of an audience. It is a way to experiment with code, to share openly, to express yourself through code. It can be technical, poetical, weird, preferably all at once. Live coding can be used to create music, visual art, and other forms of media. Live coding is an autotelic activity: doing it is its own reward. There are no errors, only fun. Learn more at TOPLAP or livecoding.fr.

BuboBubo · GitHub · AGPL-3.0 · TOPLAP · Athénor CNCM · LS2N · livecoding.fr