Adnan, if it doesn't set the "Content-Disposition" header as per my example, then it doesn't match the location in which this header is set. It is likely that some other location has preference and so the code I provided will never be triggered. Look into your nginx config more closely. Also, check the error log, do you get any warnings? Sometimes, PCRE library may throw a warning, maybe you can use alternative location syntax compatible with an older version of PCRE:
...
location ~ /(?P<filename>(?!/).+\.mp3)$ {
...
Are your mp3 links static at all?
Andrejs