I dance. Quite a lot. To be a good dancer, you need to (among a bucket of other things) be good at hearing music. What does it mean to be good at hearing music? Well, songs might have anywhere from one to twenty things happening at the same moment inside of them, and being able to tell those things apart (the beat, instruments, vocals, effects, ...) is a skill.
The best way to have good musicality? Know the song by heart. Interpreting a song you know really well vs. interpreting a song you're hearing for the first time are different (albeit related) skills.
Getting to know a song by heart usually just means listen to it 100 times. By then, you will know it.
But what if you wanted to practice a song? Figure out what's inside? You could take a pen and paper, and slowly move through the song in increments of 10 seconds, writing down what you hear, which areas are interesting, what you'd like to do a move to. That certainly works.
But I code for a living so I decided to code a solution to a problem no one has.
I made Musicality Nerd, where I can throw in an mp3 and then annotate it, see the patterns, put parts on a loop.
There are a few more features I have in mind, but that's generally it. Now I have a tool to study a piece of music from the point of view of dance.