New thoughts on streaming music

Writing up the procedure I use to stream music got me thinking about problems with it and alternatives. One problem that it has is that I must be logged in on the console, in X, running xmms. A power-outage forced reboot could end my musical bliss at work ;). Someone else pointed out that I really should consider ogg. While re-encoding all my source CD’s would be a massive undertaking this would eventually be a good goal. Transcoding from mp3->ogg is a bad idea but for a low quality stream it may have little impact.

So I found gnump3d and liked what I saw. So I installed it, reconfigured some firewall rules, and liked it even more. This is a web-based way to control and stream an music collection. The web interface is well-designed and skinnable. It seems to give me more control than xmms-shell. I can cue up individual songs or albums. Each song is a playlist so I can easily scramble within my xmms client at work rather than on the server. I can create customer playlists through the web interface.

The coolest feature is the way resampling is handled. The parameters for resampling (called downsampling in gnump3d.conf allow you to specify subnets that do not require downsampling. Thus I can fire up a session on my local desktop and use it to control music and those songs will not be re-encoded to a lower bitrate. The cacheing that happens between each song due to stream is instantaneous on a local connection so album play is minimally interrupted.

gnump3d doesn’t utilize a MySQL or other backend database. It’s very simple to setup and has taken some reasonable security precautions. I like it’s “keep it simple” approach.

It doesn’t work well through the reverse inbound proxy so I run it through an alternate port on the firewall and redirect that to the internal gnump3d server. One way I could deal with this is switch to Apache::MP3. This is a mod_perl solution that runs within Apache. So even SSL-encrypted streaming could work through this. Port 80 name-based virtual hosts work fine Apache::MP3::Skin and Apache::MP3::Resample would provide the additional similar functionality. A user can choose the level of resampling desired so it’s pretty interesting.

Since gnump3d works so well for me I didn’t try the Apache perl module approach but I may mess with it at a layer time. I’ve been experimenting with mod_perl stuff for a while so it may be educational to mess with this.


Scott Harney

   (GPG key)
<>

Resume


An online copy of my resume (PDF)

Photo Album


My current pictures via Flickr.
Older family pictures.

    Wedding


    I got married on 9/4/2004. So click for details, already.

    Old stuff


    Links and writings from older versions of this site
    Old stuff
    Oldest stuff

    Free DNS