Download right now on https://talemaskinen.dk/

Inspiration

Our team has spent years dabbling at the intersection of music production and software development, and we've always dreamed of building a truly unique and aesthetically compelling audio plugin. However, the world of C++ and audio engineering---specifically using frameworks like JUCE---is notoriously challenging. The Kiroween Hackathon was the perfect catalyst to revisit this ambitious idea, allowing us to test a crucial hypothesis: could AI assistance in the Kiro IDE help us solve these complex C++ and digital signal processing (DSP) problems without requiring us to become full-time audio engineering experts?

What it does

Ghost N Da Cell is our entry into the "Costume Contest" category and is designed to inject haunted, spooky, and atmospheric textures directly into music productions. Our core concept is simple and thematic: we've trapped a spectral entity inside the plugin, and its movements and mood are what generate the unique, unsettling sounds. The goal is to provide music producers with an instantly recognizable sonic signature that they can use to set a truly unique mood in their tracks.

How we built it

We started by leveraging pamplejuce to quickly establish a boilerplate project, giving us cross-platform compilation capabilities for Windows and Mac and built-in GitHub Actions for smooth deployment. The true acceleration and realization of our ambitious scope began when we moved into the Kiro IDE. We essentially treated Kiro as our pair programmer and audio engineering consultant, breaking down the complex JUCE and DSP development process.

Accelerating UI Development

The first major hurdle was the highly specific syntax and API of the JUCE framework's graphical elements. We first tackled the UI, generating AI assets and integrating various custom controls like large, stylized knobs and toggles. Kiro made this process exceptionally fast. For example, instead of manually looking up how to instantiate and link a Slider object, set its look-and-feel, and attach it to an AudioProcessorValueTreeState, we could simply instruct Kiro: "Generate the C++ code to create a vertical slider named 'Spectral Density' and link it to the APVTS parameter ID 'DENSITY'." Kiro's high degree of familiarity with the JUCE API for graphical elements allowed us to achieve a polished, custom layout in hours rather than days.

Generating Core DSP Logic

Once the UI was solid, we began experimenting with audio processing. We initially built a simple subtractive synthesizer where the UI controls could modify an effect. We then got serious, leveraging Kiro to write detailed feature specs in Markdown that described the desired behavior of our spectral engine. This enabled us to systematically generate the complex C++ code for both the main synthesis engine and sophisticated effects. For instance, to create our signature 'haunted' sound, we worked with Kiro to implement a bespoke, atmospheric reverb by feeding it the general structure and mathematical principles of a Schroeder-Moorer reverb model. Kiro generated the initial classes and the bulk of the sample-by-sample processing code, significantly lowering the barrier to entry for complex DSP implementation and allowing us to focus on tweaking the parameters for the perfect spooky sound.

Challenges we ran into

The primary challenge was not just writing C++ code, but figuring out how to digitally construct the exact sounds we wanted. Translating the abstract concept of a specific synthesizer patch---say, a warped, bowed string sound---into the mathematics of audio code was genuinely difficult. Our breakthrough was a conversational, iterative approach with Kiro. Instead of asking for the whole engine at once, we engaged in careful, feature-by-feature conversations on how to code individual components, first building a foundation synth and then moving methodically through each effect, like the custom reverb unit, one step at a time.

Accomplishments that we're proud of

We are incredibly proud of the final sound quality. Frankly, we didn't expect our first foray into DSP development to yield results this compelling and unique. The ability to quickly prototype and integrate multiple engine types means Ghost N Da Cell ships with a wide array of sonic starting points. Furthermore, the extensive range of tweakable parameters means the sound can be radically modified, moving far beyond a simple preset and making the plugin a powerful sound design tool.

What we learned

This project provided a profound crash course in audio engineering. When you're making music, turning a knob on a VST is simple; you find something that sounds good and move on. When you're coding an audio plugin, you have to confront the reality of DSP: thinking about the physics of sound and manipulating every single sample in the stereo stream. This deep dive into the code behind the sound was challenging, but ultimately the most rewarding and insightful part of the entire hackathon experience.

What's next for Ghost N Da Cell

We are excited to share Ghost N Da Cell with the world by publishing it as a free, open-source plugin. We've poured significant effort into the visual design, aiming for a look that stands out in a crowded market---a visually good-looking audio plugin is rare, and we hope the aesthetic helps make it trendy. Our ultimate hope is to see Ghost N Da Cell adopted by the producer community and, perhaps, hear its distinct haunted texture featured in some future chart-topping track!

Built With

  • juce
Share this project:

Updates