Per farlo scaricare una volta semplicemente tieni traccia sul db dell'utente e di quello che ha scaricato.
Per criptare i file in modo che l'utente loggato vedendo il percorso non possa riscrivendolo sull' url riscaricarlo, fai in questo modo:
Inserisci i tuoi mp3 in una o più sottocartelle con un nome criptato tipo in hash quindi molto lungo quando l'utente in sessione clicca su download tu lo porti ad una pagina.php dove esegui il download forzato del file.
A pagina.php passi dolo l'id dell'mp3 e dentro la pagina tramite gli header di forzatura download passi invece il percorso completo dove risiedono i file. Aggiungi anche una condizione per vedere se esiste la sessionid o qualche parametro di sessione.
In questo modo nessun utente può mai vedere l'url di download e quindi poterlo scaricare senza prima pagare o eventualmente loggarsi.