Request for Comments:
A Proposal for Hosting and Presenting the Weekend Sound Track

please comment on this by adding writeups here, or /msg WST.

Originally the WST was probably thought of by most people involved as a continuous live broadcast that everyone would listen to together. But, what about time zones? A weekend sound track experience is not going to be even close to feeling "right" if I have to listen to music intended for 7am Sunday when it's 11pm where I am. No way.

My proposed solution is the following: Leave the listening up to each listener. Each listener can do this in one of 2 ways:

  1. Download the files in advance, or obtain CDs from flamingweasel. play them locally at the appropriate times.
  2. Stream the files on demand. By "on demand" streaming, I mean accessing the files by request and playing them as they come at you over the net. Most modern mp3 players can be given a url of an mp3 file and they will take care of the network connection and begin playing as soon as they have enough data in their playback buffer (which will depend on the bitrate of the file and the speed of your connection). Many players also have the ability to be given a playlist, so that a number of mp3 files can be played in order.

    My proposal for hosting is:

    1. Several servers host copies of all or some of the files. A master list of urls to these servers can be kept at the WST node. Some of these hostings may be temporary, due to disk space restrictions, etc.
    2. On each server, the files are arranged in a day/hour directory tree - i.e. each hour's worth of music is in its own directory using 24-hour time, which is in a day's directory. for instance, friday/2300, or sunday/0700, etc.
    3. In each hour directory is a playlist.m3u file. This is just a text file with an ordered list of the full URLs of the tracks in that directory. (They must be full urls because mp3 players will not be able to deal otherwise). If the web server is set to send an audio/x-mpegurl MIME header, and the user's browser is set to launch an mp3 player on receipt of that MIME type, listeners will simply click on the playlist.m3u link at the time they want, and they'll get a stream of that whole hour. Or, simply download the playlist.m3u file, and open that with the player.

      a Unix command line example using the mpg123 player:

      mpg123 -@ playlist.m3u
    4. To facilitate this scheme, it would be a good idea for WST participants who haven't already sent their disc to flamingweasel to include a playlist file containing an ordered list of filenames. Each hoster will need to turn these names into URLs that are appropriate for his/her server. Or, perhaps someone can write a script that does this conversion (given a base url and the original playlist file, generate a new playlist file with the proper full URLs. easy in Perl. maybe I'll do it).

      Update: here's the Perl script:

      
      #!/usr/bin/perl
      # takes a base url and a playlist file of relative pathnames
      # and outputs a new playlist of full urls.
      
      use strict;
      
      my($baseurl, $playlist) = @ARGV;
      
      # make sure URL is correct format
      $baseurl =~ s#^(^h)#http://$1#i;   
      $baseurl =~ s#(^/)$#$1/#;
      
      open F, $playlist || die "can't open $playlist";
      
      my @files = ;
      foreach (@files) {
         print "$baseurl$_";
      }
      
      
    5. bitrate: to make streaming possible for low-bandwidth listeners, and to reduce bandwidth congestion and disk space usage of the servers, I suggest we convert the hosted files to a lower bitrate. Perhaps those hosters who have plenty of disk space could host a high-bitrate copy of each file for download (so people can have nice hi-fi versions for later) and also a low-bitrate copy for streaming. By low I mean 64 or even 48 kbps, so that underprivileged modem users can stream this stuff. If you use a good encoder like LAME even 48k sounds fine (like FM radio).

    Some expected-usage research might be a good idea. How many people are planning to listen, and how do they intend to listen (from local files or over the net)? How many have volunteered to be hosters, and how much bandwidth do they have?

    note: This is just a proposal. A modest proposal. Please discuss. This node is not really meant to be a regular permanent node, so i didn't write it with the usual attention to good writeup rules that i usually follow (more modesty ;-) ). So, vote on it if you want but I imagine it's destined to be deleted anyway, after the big weekend is over. thanx.