Audio plugins are a demanding kind of software. They run inside someone else's application (a DAW such as FL Studio, Ableton Live or Reaper), they have to process sound in real time without a single glitch, and musicians expect them to work on Windows, Mac and Linux alike.
Over the past few weeks our software development team here in Mallow, Cork built two of them: deSIDuous, a synthesizer, and Choirvoyant, a vocal harmonizer. Both were developed with an AI coding assistant working alongside us, and both were built the same way: start small, test everything automatically, listen to the results, and improve in short cycles.
Here's how that worked, and why the same approach applies to business software.
The two plugins
deSIDuous: a Commodore 64 synth
deSIDuous is a VST3 instrument built around an exact emulation of the SID chip, the sound chip inside the Commodore 64. Every sound comes from the emulated chip itself, quirks included, which is what gives it that unmistakable 1980s character.
It ships with 256 factory presets, a full user manual, and builds for Windows, macOS (Apple Silicon and Intel) and Linux. It's open source and free to download.
Choirvoyant: a lookahead vocal harmonizer
Choirvoyant listens to a singer and adds up to three harmony voices. Most harmonizers have to guess, because they only know the note being sung right now. Choirvoyant holds the audio back by a short "lookahead" (a quarter of a second to two seconds), so every decision about key, chord and note length is made knowing what comes next. A live mode cuts that delay to 30 ms for use on stage.
Under the hood it tracks pitch, works out the key and the singer's own tuning, chooses chords that suit the melody, and voices the harmonies so they move smoothly, the way a real backing singer would. It also works with guitar and other single-note instruments.
Cross-platform from day one
Both plugins are built on JUCE, the industry-standard C++ framework for audio software, with CMake handling the build. That combination lets one codebase produce plugins for every major platform.
For deSIDuous, every change is built automatically by GitHub Actions on three machines at once: Windows, macOS and Linux. When a new version is tagged, the finished plugins are packaged and attached to a public release, ready to download. Nobody has to remember to build the Mac version, and a change that breaks one platform shows up straight away rather than weeks later.
Choirvoyant uses the same cross-platform foundations. So far it has been built and tested on Windows, with Mac and Linux builds the next step.
Developed iteratively, with AI as a pair programmer
We worked with an AI coding assistant throughout, and every change in both projects was written together with it. The AI is fast at the heavy lifting: writing digital signal processing code, building test tools, and digging through detail when something sounds wrong. We set the direction, judged the results by ear, and made the calls on what mattered.
That direction comes from experience. Our lead developer has almost four decades of software development experience, going back to COBOL and Z80 assembly. Someone who has squeezed code into 8-bit machines knows what to ask an AI for, and, just as importantly, what to check when it answers. AI makes an experienced developer much faster; it doesn't replace the experience.
The pace this allows is striking. deSIDuous went from first version to its fourth release in four days. Choirvoyant went from a working first version to chord-aware harmonies, MIDI control, a live mode and guitar support in three.
That speed only works because of the next part.
Testing: measure everything, then listen
AI-assisted development makes writing code much faster. It doesn't make code correct by itself. The answer is to make testing just as fast, by automating it.
A test host that behaves like a DAW
For deSIDuous we built RenderTest, a small program that loads the finished plugin exactly the way a DAW would. It plays every one of the 256 presets, saves the audio, and measures each one: peak level, loudness, brightness, how long the sound rings on, and how much CPU it uses. It also checks that saving and reloading a project restores every setting.
Because every preset is measured, the presets could also be level-matched automatically. A script reads the measurements and writes a gain correction for each one, so switching presets doesn't suddenly blast or whisper. 253 of the 256 ended up within 1.5 dB of their target.
Synthetic singers with known answers
For Choirvoyant we built EngineTest, which generates sung melodies whose correct answers are already known (the key, the notes, the chords) and checks the harmonizer gets them right. It covers key detection, chord choice, MIDI control, the different harmony modes, live mode and CPU use.
It also renders real recordings through the plugin, so we could listen to the results, and has diagnostic modes that print exactly when each harmony voice enters and what note it chose. When something sounded wrong, those tools showed why.
Iterating on real problems
Each release fixed something found by listening or by the tests:
- Clicks at the start of notes in deSIDuous were traced to the way volume was being changed on the emulated chip, and fixed.
- Harmonies entering at random in Choirvoyant were traced to how notes were being split and labelled, and fixed with new checks to make sure it stays fixed.
- Shaky voices and cut-off consonants in Choirvoyant led to better handling of the sounds at the edges of words.
A real bug report, solved with data
The best example came from a user. They were building a drum track in FL Studio on a Mac with four copies of deSIDuous (kick, two hi-hats and a bass) and reported that the sound "changed tone and seemed to drift".
The first suspicion was that four copies were interfering with each other. Rather than guess, we added a test that runs four copies on four threads for a full minute and compares the result with running them one at a time. They matched, so that wasn't it.
The measurements told the real story. The drum hits were starting anywhere from 0.1 ms to 34 ms late, and the kick's pitch was wandering between 67 and 92 Hz. The cause was a famous flaw in the original Commodore 64 chip, known as the "ADSR delay bug", which deSIDuous faithfully reproduces. Under certain conditions the chip's envelope timer overshoots its target and has to count all the way round before the note can start.
C64 musicians worked around it in the 1980s with a trick called "hard restart". We were able to do better: when a new note gets a chip that has gone completely silent, the plugin now resets it first. After the fix, all 118 kick hits in the one-minute test started within 0.1 ms of their notes, with identical pitch. The full story is in the release notes.
That's the value of good test tooling: a vague report ("it sounds like it drifts") became a precise measurement, a root cause and a verified fix in the same day.
What this means for business software
Synths and harmonizers might seem a long way from stock systems, booking tools or customer portals. The approach is exactly the same:
- Start with a small working version and improve it in short cycles, rather than disappearing for months.
- Automate the testing so every change is checked, and problems show up the day they're introduced.
- Measure instead of guessing, especially when a user reports something odd.
- Build for every platform you need from the start, with automated builds so nothing gets forgotten.
- Use AI to move faster, with experienced developers directing it and checking the results.
This is a big part of why custom software development is now within reach for small and medium businesses across Cork and Ireland. Work that once took a team months can now be done by a small, senior team in a fraction of the time, without cutting corners on quality.
As a software development and AI services company based in Mallow, Cork, we use the same tools and the same discipline on business software. If you have a process that off-the-shelf software doesn't quite fit, or you're curious about what AI services could do for your business, get in touch for a free 30-minute call.