Inspiration

Proggy takes inspiration form platforms like Rocksmith and Yousician. However Proggy is a manifestation of something that I have personally wanted for a long time: a tool that doesn't just tell me whether I played the right notes, but analyzes how well I actually played them, in great detail.

This is especially important for the music I play (metal, particularly technical death metal) where technique, precision, timing, cleanliness, muting, and control are crucial. Even small imperfections such as unwanted string noise, inconsistent attacks, or slight timing errors can make significant difference to the overall performance.

I believe that guitarists of all skill levels, not only in the metal scene, but also others like classical and jazz may benefit greatly from this

What it does

Proggy analyzes how well the user perform on a particular song by comparing the electric guitar input signal against the user selected tablature/score (Proggy supports Guitar Pro tablature through AlphaTabs)

It analyzes metrics such as:

  • current performance score
  • pitch accuracy
  • timing accuracy
  • correct notes
  • missed notes
  • wrong pitches
  • extra attacks

How we built it

The front end is built with typescript + vite + AlphaTabs, while guitar input and analysis runs on a multithreaded C++ backend with a localhost HTTP bridge. Playback and analysis are synchronized using an audio-sample-based clock, allowing detected notes to be compared against the expected guitar timeline with precise timing.

Challenges we ran into

Our biggest challenge has to be on the guitar analysis part, with a lot of data to keep track of and how to interpret them accurately. Synchronization is also a big challenge.

Accomplishments that we're proud of

We are especially proud of having a complete pipeline of guitar analysis, with a presentable UI wrapping it into a polished application. We are also proud to have overcome a lot of challenges, bugs, glitches that have come our way.

What we learned

We learnt how to deal with signals and how to interpret them, audio processing, and a lot of other relevant knowledge that massively increases our programming and problem solving skills.

What's next for Proggy

  • More sophisticated analysis, diagnostics, and reports
  • Better UI, and potentially port them into a desktop application
  • Having our own tablature parser instead of using AlphaTabs
  • Practice tracks generation
  • Better playback systems
  • Potentially support other instruments as well e.g. keyboards/piano, drums

Built With

Share this project:

Updates

Submission history