Inspiration

A few weeks ago, my brother got a Roland DJ-505, and I threw a house party with him. I was super excited, but it quickly became clear that I sucked at DJing. That night, I realized DJing and beat-making are tough—not because I lack creativity, but because there isn’t an easy way to get better.

What it does

GrooveChain is my AI mentor that listens to your beats, offers clear, personalized feedback, and tracks your progress with NFT-based skill tracking. It even generates lyrics based on the genre, mood, and section descriptions you provide. Plus, you can publish your finished tracks as NFTs for safekeeping, proof of ownership, or even to earn money.

How I built it

I started with a Next.js app enabled with TypeScript and app routing. I built the landing page first and then moved on to the audio upload feature. I explored several libraries—the Web Speech API, AudioAnalyser, Web-AudioAnalyser, and Essential—before Meyda turned out to be the best fit. I even considered Librosa (Python), but it would have cluttered my workspace and slowed me down with building and exposing REST APIs without much benefit.

Next, I integrated a digital audio workstation (DAW) into the site so users could experiment with different musical attributes. Once the track is set, users provide details like genre, mood, and section descriptions to generate lyrics using either the OpenAI API or SUNO AI.

To keep things fun, I added a gamified battle royale mode where you compete against an AI, with user votes keeping the game engaging. And finally, you can publish your music as an NFT—whether for safekeeping, proof of ownership, or to sell and earn money in today’s booming market.

Challenges I ran into

  • API Hurdles: SUNO AI was the biggest heartbreaker when they stopped API support, and another API, though good, took way too long to get running.
  • Integration Trials: Finding the right audio analysis library was a journey of trial and error.
  • Optimization: Debugging Next.js components (like those pesky dummy components causing shadow API calls) and fine-tuning API interactions was challenging.
  • Decentralized Storage: I encountered some issues early on, but a big shoutout to Pinata—my awesome sponsor—for their reliable product. Pinata proved much faster than MongoDB for storing binary data (its blob storage is excellent) and ultimately solidified my approach as my primary file storage system, while I used MongoDB to maintain transactions and IPFS URLs.

Accomplishments that I'm proud of

  • A fully functional AI mentor that listens, gives feedback, and tracks your progress.
  • An intuitive DAW system integrated right into the website.
  • NFT-based music publishing, opening new avenues for ownership and earning.
  • Engaging gamification features that keep users excited and involved.

What I learned

I learned a ton through this process—from mastering Next.js and TypeScript to handling API integrations and optimizing performance. Every challenge boosted my confidence and taught me that setbacks are just opportunities to innovate. I also discovered that I can code for 18 hours straight on an empty stomach fueled by 7 shots of espresso before I finally need a long vacation to my dreamland!

What's next for GrooveChain

Well, I'm just getting started! Next up, I’ll refine my AI feedback, add more creative features such as a fully integrated professional DAW and a chill online space where people can chat, play music together, and relax, and of course expand my gamification elements. I'm also thinking of exploring a platform-as-a-service model where you can create, discover, and even buy music from other creators.

Built With

Share this project:

Updates