TuneScope
activeA music analysis web app that connects to Spotify and breaks playlists down by BPM, key, energy, and danceability — analyzing the raw audio itself when the metadata doesn't exist.
What it is
TuneScope is a self-hosted web app for digging into the audio characteristics of your own music. You log in with Spotify, pick a playlist, and it ingests every track and surfaces the numbers behind the music — tempo, musical key, energy, danceability, valence. Think of it as a lens on why a playlist feels the way it does, not just what’s on it.
Why I built it
I play guitar and I write code, I’ve wanted a project that lived in both worlds for a long time, which led to me making TuneScope to automate searching for songs on UltimateGuitar and Spotify. I hope to use it as a launch point for other coding/data endeavors that serve as useful tools to musicians! At it’s initial point, it’s serves as an automation tool for me to find guitar tabs along with their key and tempo, automating an action I do myself on a damn near daily basis.
As a guitarust, when I hear a a fire guitar lick, I’m wonder how they played that; and and as the former owner of a Lifetime Ultimate Guitar Pro pass, I’ve all but pledged allegiance to getting tabs and chords from the site if not just for how used to it I am ; other than like Youtube and Google, UltimateGuitar HAS to be one of my top used sites, mty fellow guitarists are prob shaking their heads like “facts” rn. This is where the automatable annoyance comes in..
The automatable annoyance
I hear songs that I want to learn and go to UG to search for them, and I seem to always hit this quirk they have in their search regarding contractions and other special characters..
Where TuneScope comes in
So UltimateGuitar has a minor search flaw, but an annoyance that’s been there since I was in middle school (I’m 30). To atune (pun intended) to this, TuneScope’s search algorithm normalizes track titles — stripping feature credits, remaster tags, etc. and manually builds a working Ultimate Guitar link for every song in your playlist. One click opens UltimateGuitar in a new tab, ready for you to pick what version of the chords or tabs for the song you want, plus the tempo and key data ready for you 😎
The analysis side of things came from my current effort into learning music theory. I’ve been a muscisian for 20+ years, but never learned music theory in depth - I will have thoughts on how that shapes a musician here As I’ve been getting deeper into theory, knowing the key and tempo of a song off the bat has been a gamechanger in many ways. It’s nice to know what keys playlists gravitate towards and how tempos and energies correlate.
Mostly though, I wanted a foundation to build a tool for musicians. This is the convenient automation of something I thought would be useful to me, but it’s also a base I can keep building on: riff repeaters for looping a section, slowing a passage down, markers for solos, a metronome, an on-screen keyboard to play along with. None of that exists yet, but Tunescope serves as a starting point for me to build on top of over the years and see what I can get rolling ⋅ᴗ⋅
How it works
The app is a pipeline: Spotify data comes in, gets normalized into clean domain objects, and lands in Postgres, with caching and local audio analysis filling the gaps.
Each layer has has one job:
- Ingestion handles the messy outside world — Spotify API calls, retry and rate-limit logic, the YouTube fallback
- Transformation data sanitization: raw payloads in, normalized objects out
- Storage models and strategies for upsertion
- Cache is a Redis-backed cache-aside layer with TTLs
- API is the exposed FastAPI endpoint
What’s next
An album view showing all analyses for a record , a live deployment on Render, and a coverflow-style album selector. Further out: per-song guitar tuning listing/detection, and a full-screen visual guide tied to Spotify’s Web Playback API in real time.