Rather than streaming the file from a webserver every time, try downloading it as a game file.
HTML Code:
requesturlasgamefile(str, str, int, bool) - returns object - works similar to redirects in the folder configuration: you can use this function to download files from the web and treat them like files downloaded from the server; parameters are the url, the download filename, modification time (0 for current), and if the you want to force download (true/false), otherwise it will only download if the web server file changed
I know file size limitations are often exceeded with mp3 files. If you set up grattpd and have the music file available on your server, you should be able to download it to the client with requesturlasgamefile after setting serverr.ip and serverr.port from grattpd. Alternatively see if Stefan will enable large file downloads on your server.
As for the crossfade effect, that might be possible if you use 2 animations that play 2 different songs, and moved them to positions relative to the screen focus. But, then you would have to base your entire music system on animations.
I did a bit of fiddling with $pref::audio::mp3volume to see if it was possible to fade out one song, and fade into a new one, but it seems that the actual audio volume output doesn't update until you open the Options window (at least on v6). People probably don't want their options messed with anyway.