Inspiration

Learning guitar from the internet can feel chaotic. You jump between YouTube videos, tabs that don’t match what you’re hearing, and constant rewinding just to catch a chord change. We wanted to build something that feels more like a patient tutor. The goal was to let someone upload any song and immediately get a clear, practice-friendly path to playing it, with visuals that make timing and progression easy to follow.

What it does

GuitarBob is an AI guitar tutor that turns a song into something you can practice with. You upload an audio file, and the app analyzes it to find the chords and their timing. Then you can practice along with the actual song while the interface shows you what to play and when. In chord mode, it displays a Guitar Hero style chord highway so you can anticipate the next chord change and stay on beat. In note highway mode, it acts more like tabs by showing string and fret style notes moving through time, synced to the song playback.

How we built it

We built the frontend in React with a simple flow that goes from upload to processing to results and then into a practice screen. The practice screen includes a media player, and we sync the visualizers directly to the audio playback time so the animations stay aligned with the song. The backend is a FastAPI server that handles uploading and converting audio, runs the analysis in background jobs, and lets the frontend poll for results. It also serves the uploaded audio back through a static route so the practice page can play the exact file the user uploaded. For audio analysis, we extract chord segments with timestamps, and we generate note events using a transcription pipeline that outputs pitch information that we then map into guitar-friendly string and fret positions.

Challenges we ran into

The hardest part was getting everything to stay in sync. Visual timers drift quickly, so we had to tie the UI to the audio element’s real playback clock. We also hit a lot of friction turning raw model output into something that looks like guitar practice material, especially for the note highway, because there are multiple valid ways to play the same pitch on a guitar. Dependency issues were another big challenge since music ML tools can be picky about versions and installations, especially on Windows. We also had to make sure the backend returned results in the exact format the frontend visual components expected, or nothing would show up.

Accomplishments that we're proud of

We got a full end to end workflow working where you can upload a song, get chord timing back, and practice with a live synced practice UI. The chord highway is functional and makes it much easier to follow a song in real time. We also built the note highway direction so the app can evolve from chord practice into tab style practice, which is a big step toward real teaching instead of just analysis.

What we learned

We learned that the hardest part isn’t just extracting information from audio, it’s turning that information into something that’s actually helpful to a player in the moment. We learned how to run long tasks reliably in a web backend, how to keep a front-end visual system locked to real audio playback, and how to represent notes and chords in a way that fits how guitarists think. We also got a lot better at debugging setup issues and making the whole system more resilient.

What's next for GuitarBob

Next we want to make practice interactive instead of just visual. The big step is listening to the student’s guitar input through an audio interface and checking whether they hit the right note or chord in time. We also want better tab generation with smarter fingerings, difficulty modes, and the ability to slow down and loop tricky sections. On the product side, we want GuitarBob to feel more like an actual tutor by adding coaching prompts, progress tracking, and a smoother lesson flow from beginner chords to full songs.

Built With

Share this project:

Updates