I've working on memory.fm for a while now. It's a web app that lets you explore your music listening history as a way to revisit different periods of your life.
Instead of focusing only on aggregate stats, it surfaces long-term and local patterns such as attachment, repetition, and obsessive listening. The idea is that your listening history often quietly tracks life phases better than you’d expect.
Currently only Last.fm users are supported, but I plan to add support for importing Spotify listening history exports.
Main Ideas Implemented:
1. Attachment Index: It’s something I came up with, in an attempt to model how attached you were to specific artists, album, or tracks during a given period. It combines relative volume and listening concentration. So if you were looping the same album during a breakup or an emotionally intense period, it shows up very clearly.
Under the hood, it uses Rényi entropy. For the math-inclined, the formula I'm using is:
A = log2(1 + scrobbles/max_scrobbles) * 100 * exp(-H)
where H is the Rényi entropy of the listening distribution (artist/album/track daily listens distribution).
2. Listening Streaks: Another view shows consecutive listening streaks for an artist/album/track. These are visualized in yearly barcode-like timelines and make repeat phases visually obvious.
Stack: FastAPI, PostgreSQL, React.
Deployed via Render (API), Vercel (Frontend), and Supabase (DB).
I’m a Math PhD dropout who transitioned into programming recently. I had noticed that my listening patterns did a good job reflecting my emotional state throughout the past couple of years, so I started experimenting with my data in Python. This started as a small Python (CLI/Streamlit) experiment, but over the past one month, I've rebuilt it with a modern stack to make it more robust and usable.
I'd love feedback on:
- Does the “Attachment Index” reflect something meaningful, or does it feel arbitrary? - Is the Streaks Timeline UI intuitive? - Any obvious architectural mistakes for a first production app?
Live: https://memory-fm.vercel.app
GitHub: https://github.com/shsiddhant/memory.fm
I'd love to hear your thoughts, especially if you have an old Last.fm account to test the edge cases.
If you don't have a Last.fm account or you don’t want to go through the import flow, you can view my data instead, with username: lazulinoother
cocodill•1h ago
shsiddhant•1h ago
Thank you for the feedback.