One thing that would be very similar to this would be to set up a payment address that users can send bitcoin to buy the song. Users must use only one sending address to make this payment. Then you can have the user sign a message from an address that had send the address you setup at least $.25 worth of bitcoin in the past
There is no such thing as a "sending address" in bitcoin.
It's true that some services have attempted to look at the scripts that were associated with the unspent outputs when the outputs were created to find an address that they could call a "sending address". It's also true that in a subset of cases this attempt seemed to accomplish what the service wanted to do. However, it's improper use of the information available to make educated guesses with an unreliable result.
Services that do this should be avoided. If someone is asking for a "sending address", then they don't understand how to use bitcoin safely and cleanly, and they are therefore likely making other more significant mistakes in their systems and processes. The safest thing to do would be to take your business elsewhere.