A Practical Guide to Installing and Configuring SubSonic
by Shane R. Monroe, Monroeworld.com

Welcome!

This guide was designed for the casual computer and phone user; specifically using the Windows operating system and an Android-based cell phone. Others may find this guide useful, helpful or possibly entertaining. The non-install areas such as Introduction and Music Organization may be valuable to those that do not need extra help.

You will be starting from scratch - installing and configuring every component from start to finish. The goal is that at the end of this guide, you are streaming your own music to your own phone with your own internet connection.

Worth noting that all references, prices, links and information were current at time of writing and will surely be subject to change without getting updated here.

Good luck and have fun!

Introduction to SubSonic

There are tons of ways to listen to music on your cell phone - and they fall into one of two categories: streaming or locally hosted.

Streaming music comes from a server - often one you pay a monthly subscription to - like Slacker ($5/month), Napster ($8/month), Rhapsody ($10/month) or Pandora, just to name a few.  This is music where you have some input on the genre of music, but it isn't "your" music.

Local music comes from your phone's memory or SD card.  This is "your" music, but you have to actually populate the phone's memory yourself - more than likely from your own massive library of music sitting on a computer at your home or work.  Unless you have a very small taste in music or a really big SD card, chances are likely you're changing this music out every so often - or you find yourself wanting to hear music that isn't "preinstalled" on your phone.

A couple of companies like mSpot, AudioGalaxy and others have tried to bridge this gap - by providing a "cloud" music streaming where you fill the cloud with music, then you can listen to the cloud music: your music, stored in the cloud, available anywhere.  Of course, there are endless limitations - like you have to constantly sync your music into the cloud, storage space is small, you cannot share music with more than one account, there are monthly fees involved, etc.  

The problem is - why should I fill a cloud with music when I have all my music already stored somewhere, on hardware I already own, with a 24/7 internet connection I'm already paying around the clock for?

The dream?  ALL your music, streamed from your own server without restrictions or fees.

The answer is SubSonic.  

I don't need to do a full commercial for SubSonic - if you want the brochure, check out http://www.subsonic.org ... you're here to figure out how to get SubSonic up and running on your computer and phone.

There are three parts to a successful SubSonic install: the server, the router and the phone.

Setting Up The Server

The first step is to actually install the SubSonic software on your computer.  It doesn't have to be the same computer your music is stored on - but it does need access to the folders your music is in.  It needs a full time connection to the internet.  It doesn't need to be overly powerful.  Any average PC will do the trick.

Remember, there are dozens of hardware and operating system configurations that you can install SubSonic on.  I am only going to demonstrate one possible scenario on my own configuration.  The screens and instructions may vary if you are not using the same configuration.

Install the Server

  1. Go to SubSonic.org and download the appropriate package for your Operating System.  In my case, it was the Windows version.
  2. Run the installer.
  3. Once installed, you will see an new icon in your systray



  4. That's it for the install.  Let's move on to configuration.

Configure the Server

Configure Port

  1. Right click the SubSonic icon in your systray.
  2. Select SUBSONIC CONTROL PANEL
  3. Note any message in the ERROR box.  (You should be good, but if you have some other program using port 80, you may see an error here.)
  4. Click the SETTINGS tab.  You will see:



  5. I recommend changing the port from 80 to something else - like 8080.  Many internet service providers do not allow incoming port 80 connections to their customers - and you may have trouble hitting your SubSonic server from outside your network.  If you saw an error message in #3 above, changing the port number is not optional.  Change the port to another value, such as 8080.
  6. If you made changes, hit SAVE SETTINGS.  You will be prompted to restart SubSonic for the new changes to take effect.  Click the STATUS tab, hit STOP - wait for the service to stop, then hit START.  Verify no error messages in the error box.
  7. Once SubSonic is running without errors, you're ready to move on.

Set Admin Password

  1. Right click the SubSonic icon in your systray.
  2. Select OPEN SUBSONIC IN BROWSER.  The SubSonic login screen appears:



    NOTE:  If you are using the Opera web browser, you may have trouble seeing the login screen because Opera can have issues displaying "http://localhost".  Try using "http://127.0.0.1" instead of LOCALHOST.

  3. Enter admin in the username and password fields and click LOG IN.
  4. A GETTING STARTED page appears.  Select CHANGE ADMINISTRATOR PASSWORD.
  5. Check the box CHANGE PASSWORD.
  6. Enter your new admin password (and confirmation) in the appropriate boxes.
  7. Hit SAVE.

Configure Folders

  1. Click MUSIC FOLDERS. If you just changed the admin password, you will be prompted to log in again.  Do so with admin and your new password.  If you are comfortable with doing so, check the REMEMBER ME box - it will save you time later.
  2. The GETTING STARTED page should appear again.  Click SET UP MUSIC FOLDERS.
  3. You will see a default music folder has been set up with the name MUSIC that points to "c:\music".  Since this is unlikely where your music is kept, change the FOLDER name to point to the actual folder your music is in.  There is no "selector tool" to help you find the folder, so I recommend using your favorite file manager to find the folder where your music is and cut/Paste the full folder path into this box and name it appropriately:



  4. Hit SAVE.  The red message that was likely at the top of the screen, warning you about no music folders being set up should disappear.  If not, go back to step 3 and try again.
  5. Add more folders with distinct names and hit SAVE after each one.
  6. If all your music is located on this computer, you can probably skip the next steps and move on to CONFIGURE USERS.

Permissions to remote folders

If you are using a UNC or MAPPED drive that points to music on another computer, you will likely run into problems getting SubSonic to see your music located there.  The reason is that SubSonic is a service that runs with LOCAL MACHINE permissions - and SubSonic will not be authorized to access these file shares outside the local machine.

We will configure the SubSonic service to run as an administrator - so that it will have complete access to everything you do.  Note: many people will "condemn" the use of the administrator account for this purpose because it violates "good security practices".  Once you have SubSonic actually WORKING, then you can go back and make designated user accounts and implement all those "good practices".  In the meantime, I'm going to get you running.

  1. Go to START->CONTROL PANEL->SYSTEM AND SECURITY->ADMINISTRATIVE TOOLS.
  2. Run SERVICES.
  3. Locate SUBSONIC on the list:



  4. Double click SubSonic.  SubSonic Properties will appear.
  5. Click the LOG ON tab.
  6. Select the THIS ACCOUNT radio button.
  7. Click BROWSE.
  8. Enter in an ADMINISTRATOR level log in name (like the one you log in with) and hit CHECK NAMES.
  9. Once you have a valid username in there, click OK.
  10. Enter the username's password in the appropriate boxes and hit OK.  You should get a message that says that the username has been granted the Log On As A Service right.
  11. Click OK.  You will be warned that the changes won't take effect until you restart the service.
  12. Double click SubSonic on the Services list again.
  13. Hit STOP.  Wait for the service to stop.
  14. Hit START.  You should receive no errors.
  15. Hit OK.  You can close services, control panel, etc.
  16. Return to the SubSonic web screen - you should still be at MUSIC FOLDERS.
  17. Click SAVE.  Any red warning messages should now clear from the top.

Configure Users

  1. Click USERS.  The Users screen will come up:



  2. Ensure SELECT USER says "-- New User --".
  3. Set appropriate permissions for the new user using the check boxes below.  Most of them are pretty self-explanatory.  If this user is going to be a CELL PHONE that is typically on 3G and not wifi - especially if your music collection is at very high bitrates - you may wish to consider setting a MAX BITRATE to something smaller like 128 or even smaller.  This will help ensure your slower connection can handle streaming your music without hiccuping.  You will have to install LAME to make this work.  Click the ? bubble next to the MAX BITRATE field to learn more.  We will not be doing this for this guide.
  4. Give them a username and password (remember to name it accordingly and keep in mind the devices that you will be entering this information on).
  5. Click SAVE.
  6. Click the SELECT USER drop down and verify your new user is there.
  7. Repeat to create other users.  I recommend a user for each person you plan to access the SubSonic server as well as one for cell phones, tablets, etc. so you can fine tweak the performance for each user.
  8. When you are done, click HOME.

Configure Network

  1. The GETTING STARTED page comes up. Click CONFIGURE NETWORK SETTINGS.
  2. Check the box for ACCESS YOUR SERVER OVER THE INTERNET ...  DO NOT CHECK THE AUTOMATIC CONFIGURATION box!
  3. Fill in the YOURNAME box with a friendly name you would like to name your address. I'm a big believer that "short is better".
  4. Click SAVE.
  5. If your name is unavailable, you will have to keep trying until you get one that is.  If your computer is behind a strict FIREWALL (especially a corporate one) there is a good chance this will fail.
  6. Once you have your address, hit HOME.  Note - you get 30 days to use this friendly web address without donating to the SubSonic cause.  Once you do, this address is good indefinitely.

Misc Configuration

  1. Now that we're done with the GETTING STARTED screen, click DON'T SHOW THIS AGAIN.
  2. Let's make sure SubSonic has picked up all our music, click SETTINGS.
  3. Click SEARCH.
  4. Click UPDATE SEARCH INDEX NOW.  Wait a few moments at least.  While you are there, be sure the Automatic Search Index settings meet your needs.
  5. Click HOME.  The left side of the screen should now fill with your music.
  6. If you still aren't seeing music, verify your settings under FOLDERS and try hitting the SAVE button on that screen.

Test the Server Locally

  1. 1. Now that you see music, go ahead and play some.
  2. 2. Find a song on the left.  Click the PLAY button.
  3. 3. Verify the music plays.
  4. 4. If you are planning on other computers on your network accessing your SubSonic server, go to those PCs and point the web browser at: http://YOURNAME.subsonic.org
  5. 5. The SubSonic log on page appears.  Log in and verify you can play music in a similar manner to when you are on the local server.
  6. 6. Local tests are complete!  You're ready to get EXTERNAL access to your server going.

About Music Organization and Display

SubSonic assumes you are controlling your music storage hierarchy.  This means that the program assumes you are organizing your music via the file system, not by "tags" embedded in the music files.

The term "album" is synonomous with "folder".  On SubSonic's Home screen, when it says it's displaying 10 albums, it's really displaying 10 FOLDERS (which it assumes is a collection of songs on a particular album).

So, if all your music is in one big folder (shame on you) and you are relying on some music player to organize and display the music in some hierarctical format, SubSonic is going to be painful for you.  SubSonic assumes that the ROOT of your music folder doesn't have music in it - but is INSTEAD filled with ARTISTS folders.  Within the ARTISTS there are ALBUMS folders (which are their own folders) and within those albums are SONGS on that album.

In fact, songs that are on the ROOT of your music folders will NOT show up in the Android SubSonic app for playback - despite the fact that you CAN get to them from the web interface.  Make sure all your music is in a folder off the music folder you have specified.

For example, if your music folder is C:\MUSIC - make sure there are no songs in that folder - only more folders:

C:\MUSIC\BEACH BOYS - CALIFORNIA GIRLS.MP3

... will NOT show up at all in the Android app - and will appear on the BOTTOM of the music listings in the web interface.

C:\MUSIC\BEACH BOYS\BEACH BOYS - CALIFORNIA GIRLS.MP3

... will render you the response you're probably expecting. It will show up in the Android app under BEACH BOYS and it will show up in it's own section within the web interface.

Even better would be to adopt this hierarchy:

C:\MUSIC\BEACH BOYS\GREATEST HITS\BEACH BOYS - CALIFORNIA GIRLS.MP3

The reason being that SubSonic will assume ALL the songs in a folder BELONG TO THE SAME ALBUM.  If they don't, your cover art is going to be ... random seeming ... at best.  If you have a ton of Beach Boys in a folder from different albums, SubSonic will get the album name from one of them, throw the artwork in the folder, and EVERY song in that folder will show that cover art - right or wrong.

BAD METHOD (you're asking for trouble)

C:\MUSIC\JOURNEY - SEPARATE WAYS.MP3

C:\MUSIC\JOURNEY - WHEEL IN THE SKY.MP3

C:\MUSIC\JAMES BROWN - I FEEL GOOD.MP3

C:\MUSIC\JANET JACKSON - RHYTHM NATION.MP3

OK METHOD (Expect the unexpected; music will be available but cover art will be whacked)

C:\MUSIC\J\JOURNEY - SEPARATE WAYS.MP3

C:\MUSIC\J\JOURNEY - WHEEL IN THE SKY.MP3

C:\MUSIC\J\JAMES BROWN - I FEEL GOOD.MP3

C:\MUSIC\J\JANET JACKSON - RHYTHM NATION.MP3

I have a couple of thse myself ... here is a look at my "miscellaneous C" folder as seen by SubSonic:



Note that SubSonic chose The Cranberries out of the blue to represent the folder/album.

GOOD METHOD (music will at least be organized and available in SubSonic; cover art will show the right artist, but wrong album)

C:\MUSIC\JOURNEY\JOURNEY - SEPARATE WAYS.MP3

C:\MUSIC\JOURNEY\JOURNEY - WHEEL IN THE SKY.MP3

C:\MUSIC\JAMES BROWN\JAMES BROWN - I FEEL GOOD.MP3

C:\MUSIC\JANET JACKSON\JANET JACKSON - RHYTHM NATION.MP3

BEST METHOD (cover art should be accurate, etc)

C:\MUSIC\JOURNEY\FRONTIERS\JOURNEY - SEPARATE WAYS.MP3

C:\MUSIC\JOURNEY\GREATEST HITS\JOURNEY - WHEEL IN THE SKY.MP3

C:\MUSIC\JAMES BROWN\GREATEST HITS\JAMES BROWN - I FEEL GOOD.MP3

C:\MUSIC\JANET JACKSON\RHYTHM NATION\JANET JACKSON - RHYTHM NATION.MP3

TOTALLY ANAL METHOD (like the BEST version above, but you really need something else to occupy your free time)

C:\MUSIC\80S\J\JOURNEY\FRONTIERS\JOURNEY - SEPARATE WAYS.MP3

C:\MUSIC\70S\J\JOURNEY\GREATEST HITS\JOURNEY - WHEEL IN THE SKY.MP3

C:\MUSIC\OLDIES\RHYTHM AND BLUES\J\JAMES BROWN\GREATEST HITS\JAMES BROWN - I FEEL GOOD.MP3

C:\MUSIC\DANCE\FEMALE\J\JANET JACKSON\RHYTHM NATION\JANET JACKSON - RHYTHM NATION.MP3

So the moral of the story - be anal with your music filing system.  Most people using SubSonic are probably 80-90% of the way there already;  it's the iTunes people that are due for a rude awakening.

For file management of this type, I have to recommend a powerful tool called Directory Opus (http://www.dopus.com).  It isn't free (like beer or otherwise) and it isn't even cheap - but it does the work of 10 apps and will really help you succeed in getting organized.  If you need more information as to why, feel free to contact me.

Setting Up The Router

This is by far the most difficult part of the set up.  What makes it complicated is that there are hundreds of different routers out there - each one with different interfaces and terminology to boot.  This makes "instruction" difficult.

So, so parts of this section are going to be CONCEPTUAL in nature, while others will be as specific as I can make it.

You'll be taking notes, so get something to write on ...

Obtain your SubSonic PC's IP/MAC address

It will be helpful to know your PC's internal IP and MAC addresses while performing the next steps.

  1. Go to a command line (aka DOS box).  Hit START, enter CMD in the search box, hit enter.  DOS box opens.
  2. Type in IPCONFIG.  You should see something like this:



    Hopefully you're on a PC with only ONE network connection - if you're not, look for the one that has an IP address of something like 192.168.0.123.
    .
  3. Write down the IP address.
  4. Type IPCONFIG /ALL
  5. Look under the IP address you saw in the previous steps for an entry called PHYSICAL ADDRESS.  Looks something like this:



  6. Write down the physical MAC address.
  7. Close the DOS box.

Put SubSonic PC on static IP

Most user these days are using a router and NAT (network address translation).  This means that your router gets a SINGLE "visible from the outside" IP address from the internet provider (via a cable modem) and then assigns handfuls of LOCAL (private) IP addresses (those 192.168.x.x numbers) to all the computers and devices connected to it.

Every PC and wifi enabled device in your house gets assigned one of these numbers.  The router then translates traffic inbound and outbound transparently to the user between these "internal" IP addresses and the single "external" IP address.  

These numbers are typically 'leased' by the router for a period of time (like a week) and then they are revoked and a new number is issued to the PC.  The user, of course, doesn't see any of this. But it does mean that the PC's internal address WILL change periodically unless you tell it not to.

This is all fine and well for most internet uses - however, if you're going to provide an internal service through the internet, you need an address that outside devices can always get to - and that is NOT the nature of home internet service providers.

The first step is to tell your router that you want your SubSonic PC to ALWAYS be assigned the SAME 192.168.x.x address ALL the time.  If you are not a network tech savvy kind of person, you might enlist one of your nerdy friends to help out.

  1. Log into your router (typically by going to http://192.168.0.1 or http://192.168.1.1 in a web browser).
  2. Navigate your router's menus to find the DHCP settings.
  3. Look for a way to assign a "static IP address".
  4. Typically, the router will want to know the MAC address of the device you want to assign a static IP to.  This is what you did in the previous section and you were supposed to write down.  Some routers will show you a list of connected devices so you can PICK one from the list - showing you the MAC address or even the machine name.  This might be very easy for you to identify.  It might be a "fill in the blank" scenario - that's why you wrote it down before.
  5. Assign your SubSonic PC a static IP address like 192.168.0.125 - something you're sure isn't currently in use and is in the allowable range (usually 2-254; it varies from router to router and its usually changable somewhere).  Write this number down.
  6. Once assigned, return to the command line (aka DOS box) and perform an IPCONFIG again to see if the router reassigned your IP address to the one you specified above.
  7. If the IP address of your SubSonic PC does not match what you wrote down, type in IPCONFIG /RENEW and hit enter.  This should force your PC to return to the router and get a new IP.  
  8. Perform IPCONFIG again and see if your PC now has the designated IP address.

Now that your PC has a static address, we can set up a forwarding rule that allows outside devices to always get to this PC through your router.

Set Port Forwarding

Port Forwarding is like a filtering rule in your email program.  You make a rule that tells the router that ALL internet traffic coming in on a specific port number will always be forwarded to a specific IP address within your network.  Let's do a quick example.

As we mentioned, your router has only one "external" IP address.  Let's say it is 70.1.2.3 for the sake of argument.  That address is "live" on the internet - hit it with your phone, other computers, whatever.  So technically speaking, you should be able to enter the following on your phone:

http://70.1.2.3:8080 (8080 is what we assigned to SubSonic earlier)

... and you should get to your SubSonic log on screen.

When the request hits the cable modem, it sends it to the router.  The router says "I see you want port 8080, but I don't know which PC you want - I have like 4 PCs here ... so sorry, can't help you" - and the connection isn't made.  Port Forwarding gives the router the information it needs to translate that request directly to the designated PC.

So once set up, all requests to 70.1.2.3:8080 are magically translated into 192.168.0.125 (or whatever you designated it to be when you statically allocated it).

Again, every router has it's own setup and might even call Port Forwarding something odd like "Virtual Server" (D-Links do this).  No matter what it's called, the process is the same.

  1. Log into your router.
  2. Find Port Forwarding (or whatever they call it)
  3. Create a new forwarding entry saying that for port 8080 (or whatever you chose), send all TCP and UDP traffic to 192.168.0.125 (or whatever you chose).  Be sure to send BOTH types of traffic - not just TCP or UDP.
  4. Save this setting and enable it if required.
  5. You're now ready to test connectivity through the router.

Testing the Router

Before we go through the effort of setting up the phone to test against SubSonic, we will do a couple of sanity tests first.

  1. Open your web browser.
  2. Enter http://YOURNAME.subsonic.org  (substitute your SubSonic address you chose earlier.
  3. Watch the address bar of your browser.  It will change from YOURNAME.subsonic.org to http://70.1.2.3:8080 (whatever your router IP and port number are).
  4. If you have done everything right, you should get the log on screen.  If you get a connection error or timeout, then most likely your Port Forwarding is the issue.  Revist that part of the process.
  5. If you are good at this point, open up your cell phone's web browser and attempt to access the http://YOURNAME.subsonic.org and make sure you get the log on screen.  If so, you're ready to move on to the next part.

Setting Up The Phone

You're on the home stretch - if you've made it this far, then setting up the phone is really basic.

Install The App

  1. Download the SubSonic app from the App Market.
  2. Install and run.

Configure the App

The SubSonic App allows you to have up to three SubSonic servers registered with the phone at any time.  By default, there will be a testing server in slot one and two unusued slots available.  We will connect to this FIRST to make sure everything is in order with your connection.

  1. Ensure SubSonic Demo is the selected server.
  2. Click the Music Library tab on the bottom.
  3. The server will be connected and you will get a list of songs.
  4. Play a song.

You're now ready to configure your own server entry.  

  1. Click SETTINGS.
  2. Select one of the Unused slots.
  3. Enter a friendly name.
  4. Enter your http://YOURNAME.subsonic.org in the SERVER ADDRESS (Note, you do NOT put a port number here!)
  5. Enter your username and password for either the admin account or the user you created earlier.
  6. Click TEST CONNECTION.
  7. If the test fails, double check your SERVER ADDRESS and make sure spelling is correct (that's why I said to keep it short) and that you did NOT enter a port number.  
  8. If the test was successful, YOU ARE DONE!  Congratulations.  Your music is now free!
  9. If the test connection failed, trade out the SERVER ADDRESS with your own full IP address and port:  http://70.1.2.3:8080 (using your own IP and port of course).
  10. Try the test again.  If it still fails, verify you can still reach SubSonic with your browser locally and with your full IP address within your browser.

Registering SubSonic

You did it ... you have a fully working SubSonic server and you can now listen to ANY of your music ANYWHERE and ANYTIME.  Enjoy the hell out of it for the next 30 days.  When your evaluation period is over, it's time to pay the check.

SubSonic is an IMMENSE project and it appears to be pretty much run by one guy.  If you've been to the SubSonic forums, written him email asking for help, you know the guy is a class act and works his ass off to provide us all with this.

That being said, register the software.  The lowest donation listed is 10 Euros which is like $14USD.  A COMPLETE STEAL for this level of product and the services it provides you.  You would likely pay more than that for JUST ONE MONTH of a streaming music service.  That's like three cups of Starbucks coffee.  A cheap meal for you and a friend at lunch time.  A cheap blu ray.  Whatever it is you fritter money away on every day/week/month - send the guy some cash.  Just to add to the incentive, here is what you lose after 30 days:

  1. Mobile streaming will no longer function after 30 days.  That's really the killer feature right there :)
  2. You lose your easy address of http://YOURNAME.subsonic.org which is actually pretty important, since your external IP address (you know, 70.1.2.3 in our example above) can periodically change.  ISPs do not guartentee your IP address, and if your IP address changes, http://70.1.2.3:8080 will no longer work, and you'll have to go to your router and figure out what your new IP address is.  Using the easy address, SubSonic will keep your IP address on record up to date - you'll never need to know that number again.
  3. You'll lose your musical freedom - and after 30 days of it, you won't want to go back.

You receive your license key almost immediately after paying.  It's automated, but mine took about 30 minutes to finally get to me.  Do the smart thing and pay for it BEFORE your server expires :)

SubSonic Resources

Unlike many projects, SubSonic's website is a WEALTH of information, knowledge and "pre-sales" info;  documenation, media (pictures and video), forums ... Don't hesitate to spend some time there pre and post install and pick up whatever information you can.