Hello everyone! I've just submitted my entry for the Kiroween Hackathon, and I wanted to share what I built. It's called Symphony.js, and it's a "Frankenstein" app that stitches a code editor to a generative music engine.
The idea was simple: What if you could hear your code's quality in real-time?
▶️ Live Demo: https://symphony-js.vercel.app/
📂 GitHub Repo: https://github.com/akashsahu54/Symphony-js
What It Does
Symphony.js analyzes your code (JavaScript, TypeScript, or Python) as you type and generates a live musical soundtrack based on its quality.
It features three distinct musical "moods":
🎼 HARMONIOUS: Clean, simple, and well-documented code plays pleasant, major-key music. This is your positive reinforcement for writing good code.

⚡ INTENSE: Complex algorithms, recursion, or deep-nested loops crank up the music's tempo and energy. This is a real-time warning that your code's complexity is increasing.

🎸 DISCORDANT: This is the magic. Syntax errors, typos, and broken logic instantly trigger a jarring, chaotic, minor-key sound. You can hear a bug the second you write it.

It also has a "Play Commit" button to generate a 15-second "song" for your entire file.
How I Built It (Using Kiro's Spec-Driven Development)
This project was built using Kiro's Spec-Driven Development (SDD) methodology. This was my core strategy.
My biggest challenge was: how do you make a creative AI's output talk to a logical audio engine (Tone.js)?
The answer was Steering Docs.
The "Brain" (The Spec): I first authored a steering file: /.kiro/steering/symphony_vibe.md. This spec defines the rules for analyzing code and, most importantly, steers the AI to only respond with a valid JSON object (e.g., { "mood": "HARMONIOUS", "key": "Cmajor" }).
The "Body" (The Code): I then used Kiro to "vibe code" and generate the core logic of my src/services/CodeAnalyzer.ts. This code was generated based on the strict rules from my steering file.
This spec-driven approach let me build the "brain" and the "body" separately, knowing they would fit together perfectly.
What's Next?
This is just the MVP. My vision is to turn this into a full VS Code Extension with custom instrument packs (like 'Lofi Beats' or '80s Synth').
This was an incredibly fun project to build. Thanks to Kiro for the powerful spec-driven tools!
Top comments (0)