Внешне выглядит как самый настоящий баян. Юзер жмет кнопку, или ссылку, скрипт по ссылке собирает файло, архивирует, копирует и выкатывает заголовки на скачивание. Юзер открывает файлу дорогу - поехали.
Кстати, то что загружено или создано на странице в html5 можно сохранить на диск как файл, не без диалога, конечно:
http://eligrey.com/demos/FileSaver.js/
И бинарные файлы наверно можно. Но я все равно не понимаю что делать с ответом сервера, который выдал mp3 с соответствующим mime. То есть круг замыкается. Сервер должен выдавать что-то другое, блобное, но тогда зачем браузер мучить. На сервере все чисто можно сделать.