nginx: multiple matching location blocks

There's a good article about server and location block matching here. Only one location block can match, so you're going to create a location block just for mp3 files.

 location ~*  \.mp3$ {
   expires 7d;
   add_header Cache-Control "public";
   add_header Content-Disposition "attachment";
}

Nginx will match the first location block with the same prefix, so this needs to go before the two existing blocks, or you need to remove mp3 from the match criteria for the other two blocks.