XML Everywhere

Snowcrash
An HTTP Server Plug-in for Remote-Controlling WinAmp 2
By Victor Pavlov

Download XML Cooktop
The free XML Editor


Download
Version 2.0.3 (April 20 2001)

By clicking on the download link you agree to the license agreement shown at the right. 

Mailing List

Bulletin Board

Skins

Playlist Creation Script

XSLT Programmer's Reference Second Edition

License Agreement

Snowcrash is (c) 2001 Victor Pavlov. All rights reserved.

Use at your own risk.  mp3pirate.com assumes no responsibility for damage allegedly caused by Snowcrash, such as accidentally reformatting your hard drive, tripping over your computer in the middle of the night, opening the door for a band of invading marauders, not installing anti-virus software or a firewall, etc..

THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SNOWCRASH'S CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Bulletin Board

Get your support questions answered via the bulletin board

What Is Snowcrash?

Snowcrash is a WinAmp plug-in that allows you to control WinAmp remotely from a browser.  The browser interface lets remote users select playlists, pause, play, skip, etc..  In keeping with the WinAmp tradition, Snowcrash's look can be changed via skins.

How Does Snowcrash Work?

The Snowcrash plug-in runs a lightweight HTTP server inside WinAmp. This server is called the Snowcrash plug-in server throughout this documentation.  The HTTP server listens to incoming requests on port 82 (the port number is configurable).  Incoming requests are turned into WinAmp commands, such as "play", "pause", and "stop."

Does Snowcrash Stream Music?

No.  Snowcrash lets you control an instance of WinAmp that's running on a remote machine in a simple, lightweight fashion.

Music still comes out of the remote computer's sound card.  It is not streamed over the network.  Snowcrash is useful only when the client and server computers are physically close by.

For example.  You wear headphones that are connected to the remote computer.  Or, perhaps music is blaring from speakers that are connected to a computer located in another room.

Only one user should remotely control the Snowcrash plug-in server at a time.  Otherwise it's like two kids changing the car stereo.  You can play two songs at once via Snowcrash only if the remote server has two (or more) sound cards.  Warning:  we haven't actually tried this.

Does Snowcrash Work with Streaming?

Absolutely!  You can control a ShoutCast stream remotely with Snowcrash.  My head is hurting just thinking about it.

Here's a real scenario... your home computer broadcasts the stream.  You control the stream at work via Snowcrash.

Why Would I Use Snowcrash?

Maybe you just don't like Win32 applications...

Seriously though, Snowcrash is useful when ...

  • You have two computers
  • You want to dedicate one of the computers to playing music

Perhaps you want to control WinAmp from your Mac.

Uh, So Why Would I Use Snowcrash?

Playing music is very CPU-intensive.  You don't notice this while writing emails and surfing the web.  But if you're a software developer, you know that compiling code wreaks havoc on music playback.

One solution is to buy two computers, one for software development and one for playing music.  Snowcrash allows you to control the dedicated music playback computer from your primary software-development computer.  Snowcrash lets you tuck the music server away in a corner -- it doesn't even need a monitor, keyboard or mouse.  Less space and less mess.

You might think Windows Terminal Services would let you do the same thing.  Unfortunately, you can't control the sound card via Terminal Services.  Snowcrash is much more light-weight anyway.

You could use software like PC Anywhere or Carbon Copy.  But Snowcrash is free.

Snowcrash is more convenient and cheaper than buying a KVM switch.  Plus, Snowcrash occupies no physical office space!

But I'm not a Software Developer

Snowcrash can control a "stereo system" installed throughout your house.  Consider this:  you install a computer in each room.  Each computer runs WinAmp and the Snowcrash plug-in.  Each "stereo system" can now be controlled from anywhere in the house!

Which Platforms are Supported?

The plug-in runs on Windows (95, 98, 98 SE, ME, NT, and 2000).

What are the Machine Requirements?

Snowcrash works on all modern versions of Windows except CE.  It doesn't take up very much memory or disk.  Client and server machines must have a network adapter.  IIS is not required. 

Which Browsers are Supported?

In its current form, Snowcrash runs on IE4 and later, on any platform.

Snowcrash currently doesn't work on Netscape due to the skin, which you can fix if you're motivated (see below).

Do I Need to Install WinAmp to use Snowcrash?

You do not need to install WinAmp on computers that run the browser.  You do need to install WinAmp on the computer that you want to control.

Is Snowcrash Secure?

Snowcrash lets you control which machines can connect to the Snowcrash plug-in server.  Access-level permissions can also be specified, including "read-only," and "full control."

Having said that, it's not a good idea to make Snowcrash available to users over the Internet unless you know what you're doing.  Snowcrash could be subject to denial of service attacks just like anything else on a network.

Trust us, there are no back-doors in Snowcrash.  It doesn't send a list of your illegal mp3s to the RIAA.  Trust us.

Where Should the Music Files be Located?

Snowcrash allows users to select music from local and network drives that the Snowcrash plug-in server can access.

How Do I Install Snowcrash?

  1. In order for Snowcrash to work, a user must always be logged into the server and the server must be running WinAmp
  2. Install MSXML3 -- you don't have to install in "replace mode".  Note:  MSXML4 will not work.
  3. Install WinAmp
  4. Download and run the snowcrash installation
  5. Modify c:\program files\winamp\plugins\roles.cfg

    Add the line
    IP Address|1000

    Where IP Address is the IP address of the client computer that you want to control the Snowcrash plug-in server.  You can also specify * (asterisk) instead of an IP address in order to apply the permission to all machines.  It currently doesn't support machine names -- IP addresses only.  The only exception is localhost.

    The number after the | indicates the access level.  Use 1000 for "full control," or 1 for "read access."  Note that you can't give 1000 to * (asterisk).

    Remove the line
    *|1

    If you're paranoid.  This line gives everyone the ability to see what you're listening to.

    The roles.cfg file can have multiple lines in it so you can specify several administrators.

  6. Modify c:\program files\winamp\plugins\auxpaths.cfg

    This allows you to avoid mapping drive letters to network paths.

    Each line in the file contains the description of one network path. There are two parts: network path and name, separated by |.  Thus a network path '\\zodiak\mp3' with name 'zodiak' is defined as:

    \\zodiak\mp3|zodiak

  7. Restart WinAmp

How Do I Configure Snowcrash?

  1. Select "Options" on WinAmp
  2. Go to Preferences
  3. Select Plug-ins
  4. Highlight "XML Server Plug-In"
  5. Click the Configure button
  6. Restart WinAmp

Configuration settings can also be changed from Snowcrash (if the access rights are sufficient) but this feature isn't working yet.

How Do I Use Snowcrash?

Point your browser to http://machinename:82 where machinename is the machine on which you installed the plug-in.

To add files to the play list, click the icon.  To view the play list, click the icon.  While viewing the play list you can change the current song, clear the play list, etc..

It Doesn't Work!

See the installation instructions.  You probably need to add your computer's IP address to the roles.cfg file.

Is WinAmp running on the remote computer?

If that doesn't work, close winamp and the winamp agent from the tray and start it again.  Go to the Snowcrash configuration dialog box in WinAmp and close it.  Move your mouse back and forth.  Dance a jig.

Did you press the play button?  Are speakers plugged into the Snowcrash plug-in server's sound card?  Do you have a sound card?

Get your support questions answered via the bulletin board

What does Snowcrash Play?

Snowcrash plays individual music files, playlists, and folders containing music files.

Script to Create Playlists

Playlists can be created automatically.

  1. Download and extract this archive

  2. Run make_m3u.exe with one parameter containing the directory to process.  If you want this playlist to work across the LAN, use UNC directory names, e.g., \\jukebox\music instead of d:\music.

The script will create a playlist in the specified folder and in every folder below it.  Each file, which is named playlist_gen.m3u, will contain the mp3 files in each folder, sorted alphabetically.

How Do I Create a Snowcrash Skin?

Skins are changed via XML stylesheets.  Snowcrash uses MSXML3 to convert XML to HTML.  If you don't know XSLT, there is a good book on the subject.  Use Victor's other excellent free program, XML Cooktop, to develop stylesheets.  Victor sure comes up with interesting names, doesn't he?

The stylesheets are in c:\program files\winamp\plugins\html 

If you want to create a new skin ...

  1. Copy c:\program files\winamp\plugins\html\*.xsl to a new directory
  2. Modify the stylesheets
  3. Change Snowcrash's "HTML path" configuration to point to the new directory

How Do I Publish a Snowcrash Skin?

Yell at the top of your lungs:  I am the king of the world!  Etc..  

After that, please send your skin to host@mp3pirate.com and we'll be sure to give you credit for it.

Snowcrash Skins

To install a skin, extract the files to a directory, go into the Snowcrash options, and change the “html path” to that new directory.

In order of submittal:

Name Author Release Date Download Comments
og Ogden Kent Aug 15 2001 ogskin.zip  
Mogway Christian Grimm Aug 7 2002 mogway.zip  
Noon Arnaud Jamin Aug 7 2002 noon.tar.gz  
Creeper Yan Landriault Jan 24 2003 creeper_skin_ok.zip  
Pocket PC Javier Ripoll Jan 24 2003 ppc.zip

For Pocket Internet Explorer.
Tested on a iPaq 3660 (Pocket PC 2002). You should select Fit to Window
inside explorer for better look.

Are the Skin Input DTDs Documented?

Not yet -- you should be able to deduce them from the stylesheets.

Is the HTTP Command Set Documented?

Commands are contained in query strings.  The commands will be documented here at a later time.

What Bugs Does Snowcrash Have?

  1. Configuration via the browser doesn't save your changes
  2. The roles.cfg file doesn't support machine names -- just IP addresses
  3. The roles.cfg file doesn't support * with access level of 1000
  4. Default skin generates Javascript errors in Netscape
  5. Doesn't support WinAmp 3
  6. Unable to display non-mp3 files

Release Notes

April 20 2001

Added support for network paths

Nov 26 2000

  1. Works with directories with &, etc. in the name
  2. Let you add whole directory (including subdirectories) to the play list
  3. There's "clear playlist" command on the UI