JuliaCon 2026

Building Playable Virtual Instruments in Julia: A Real-Time Saxophone Model Controlled by Sensors
2026-08-13 , Room 2

Following the initial presentation of the package RealTimeAudioDiffEq.jl, we present a use case demonstrating how the package is used to control a saxophone model in real time with a custom interface. This interface consists of a regular saxophone mouthpiece instrumented with sensors, and the whole setup serves as a basis for virtual instrument design in Julia, as well as for studying instrument behavior and/or player actions in performance situations.


At JuliaCon 2024 we presented a small package for sound synthesis from ordinary differential equations, named RealTimeAudioDiffEq.jl. The aim was to render the solution of continuous dynamical systems audible –in addition to traditional visualization– and to explore the potential of dynamical systems for sound synthesis and virtual (musical) instrument design.
Continuing this work, we present a use case using a custom hardware interface for controlling a saxophone model in real time. The model is composed of a system of ordinary differential equations of which we are interested in studying two parameters controlled by the player in the real instrument: blowing pressure and force applied to the reed.
The interface consists of a regular saxophone mouthpiece instrumented with a pressure sensor, for measuring blowing pressure and a force sensor, for measuring orce applied to the reed. The resulting signals are read by an ADC and sent to the computer through a serial port using an Arduino board. This stream is then read in Julia using LibSerialPort.jl and used to control those parameters in the saxophone model in real time.
Because the model is explicitly dynamical and the performer controls physically meaningful parameters, this interface provides a direct way to investigate the dynamical origin of complex sonorities such as multiphonics (or bichords), where multiple oscillatory regimes may coexist or compete. In particular, the system offers a concrete experimental handle for exploring transitions between regimes as the control parameters vary, and for relating these transitions to candidate bifurcation scenarios, underlying mode onsets, octave jumps, and the emergence of simultaneous partials.
We will show how the real-time loop is organized, how serial I/O and buffering are handled robustly, and how calibration and parameter mapping are implemented so that the model becomes a responsive musical interface. The intent is to provide a concrete template that generalizes beyond the saxophone model, illustrating how RealTimeAudioDiffEq.jl can support a broader family of playable dynamical instruments controlled by sensors in real time.

See also: The `RealTimeAudioDiffEq` package

Composer, programmer, and performer with a degree in Electroacoustic Music. PhD candidate in Science and Technology, studying the acoustics of wind instrument multiphonics and sound synthesis based on Dynamical Systems.
- https://github.com/antonioortegabrook/RealTimeAudioDiffEq.jl

Saxophonist, composer. Researcher. Interested in acoustic and physical modeling of musical wind instruments. Member of the Laboratory of Acoustics and Sound Perception (UNQ), researcher in the project Sonoridades Híbridas.