Playing the model for the first time from a WARBL, November 7, 2026.
This is a work in progress, not a finished project. Today the pieces came together for the first time and I could play it, so here is where it stands.
What it is
The WARBL is a wind controller for electronic music. For finger holes it has optical sensors, and a pressure sensor measures your breath, making it unique in the world of woodwind controllers. Normally the firmware on the WARBL translates the fingering patterns on the instrument into MIDI control signals and you send that signal to a synthesizer, which translates that signal back into sound.
This project does something different. Instead of picking a note, it hands the raw sensor readings, how far each hole is covered and how hard you are blowing, to a physical model: a simulation of the air inside a real whistle. The pitch and tone come out of the simulated tube, the way they do in a real instrument. Shading a hole bends the note, overblowing breaks to the octave, and cross fingerings and half-holes behave the way they do on a real whistle, because nothing is choosing notes.
This is notable for a couple of reasons: by cutting out the MIDI conversion and transmission, it runs faster, and it does a smoother job of processing pitch bends between notes and interpreting complex or transitory fingerings just like an acoustical instrument would.
The whistle is a proving ground for this approach. The real goal is a virtual Renaissance recorder, modeled from measurements of historical instruments, and after that perhaps reed pipes, bagpipes, the duduk and the shehnai.

The reference instrument: an ordinary Generation D whistle, measured with calipers and recorded note by note.
Built from a real whistle
The model started from my own inexpensive Generation D whistle. I measured its bore and every hole, and recorded audio of two octaves of scales, forked fingerings, half-holes and breath sweeps. This data was then used to create an acoustical simulation, which was tuned until its pitches matched those recordings. Surprisingly, it also got most of the forked fingerings right without being tuned for them.
The aim isn’t to copy that whistle’s modest sound. It is a yardstick for getting the physics right; a better-playing “ideal whistle” built on the same physics may come next.
Today: playing it for the first time
- The WARBL now streams everything. I changed the WARBL’s firmware so it sends the raw readings of every hole and the breath sensor about 500 times a second. In a minute of playing, not one reading was lost. Slow slides across a hole bend the pitch smoothly, so the model sees the finger, not just “open” or “closed.” The creator of the WARBL has graciously made his own firmware open source, so this was pretty simple, and can be reverted at any time.
- It plays in a web browser. The model was created based on academic research and was trained with the help of Claude Code. It runs in Chrome on the Mac and reads the WARBL directly. My first impression: pretty close to playing a real whistle.
What’s next
- Notes that start and stop like a real whistle, with the physics doing the work instead of a stopgap.
- The thumb hole as an octave vent, and a seventh hole for the right little finger, a tone below the bottom note.
- The “ideal whistle”: the same physics with hole sizes and positions chosen for even tone and good tuning in both octaves. I like bagpipe fingerings and will probably follow the fingering patterns used by the great pipe maker, Jon Swayne.
- Moving the model off the computer onto a small audio board (Daisy Seed), and finally sending its pitch out as control voltage or MIDI to drive other synthesizers.
- Then the Renaissance recorders, based on measurements from European instrument collections.
Inside
The WARBL2 with modified firmware, sending its readings over USB MIDI. The model is a digital waveguide, a standard way of simulating air columns in real time, written in C++ with a matching JavaScript version for the browser, and tuned against my recordings in Python. The firmware changes are released under the same GPL-3 license as the WARBL’s own.
Links
- WARBL: warbl.xyz
- Measured Renaissance recorders (where this is heading): Renaissance recorders
- Source code, measurements and results: github.com/NormSohl/Virtual-whistle