I was making a rhythm game and I needed an interactive way to synchronize lyrics to the vocal melody. I designed and started building a tool in some GUI framework or another, but it quickly became overly complex and I started to brainstorm alternatives. I opened Audacity and poked around; could there be a way to place exportable named markers at certain times in a track?
It turns out that Audacity has a type of track called a "label track" on which you can insert textual notes at certain times. I listened closely to the music as it played, pressed the pause button at the beginning of each vocal syllable, and inserted a labels with the pitch and syllabic information. I adjusted the label times/locations as needed to align more precisely with transients, and to improve game feel.
It looked like this:
You can export label tracks with their times by doing File > Export Labels. I wrote a script in Lua to convert the exported labels into a Lua table, which I then read from my game code to create the "notes on the fretboard" at the correct time and position(correspondent with pitch.)
I thought this was a pretty brilliant hack--utilizing an existing and generic tool in an unexpected way--but I later found Audacity's View > Karaoke option, which uses label tracks, exactly as I implemented them, to display timed karaoke lyrics...so I had really only been using a feature exactly as it was intended. Still, it was economical, and it worked as well as any tool I would ever have the patience to make.
TL;DR Audacity can do a lot of things.