So you've decided that you're going to broadcast using your home computer. *sigh. There's lots of really good reasons not to do this but if you're going to go ahead with it here's how to do it.
This tutorial uses IceCast as the streaming server software for a couple of reasons. First, it's free. Second, since most of the tutorials I write feature Traktor in some shape or form I figured it'd be a good idea to use a streaming server that works natively with Traktor. This tutorial will step through everything you need to do to configure a really basic streaming server on your home computer and then detail what information you need to provide your listeners so that they can connect to your stream.
At the end of this tutorial you'll have a very bare bones streaming server up and running that you can share with your friends. I'm thinking that your mileage will vary and you'll probably be happier if you go with a streaming server provider but this'll work.
You can get a copy of IceCast from http://icecast.org/download.php. Grab the latest version and install it on your platform. For this to work you just need the barest of configurations so open up the icecast.xml file (that's the configuration file) and modify the password values and port to whatever makes you happy. I'm using port 8090 but you can use any unused port. If you opt for a different port remember to use that value in place of 8090 where I mention it going forward. Here's what my config looks like (except passwords) - almost identical to the default config file:
Once you've saved these changes start up the icecast server and you're ready to start the next step.
Alrighty. With the assumption that you've changed the config file as above you'll need to open up the preferences in Traktor and select the "Broadcasting" section. You'll want to make it look something like this:
The address can be either 127.0.0.1, localhost, or the IP address of your computer within your local network. But 127.0.0.1 works so... The port is whatever port you assigned in the Icecast config. As above I used 8090. The mount path can be anything you want it to be. I use "stream.ogg" because it appears to be best practice on all the Icecast servers I've ever played with. The password is whatever password you set for "source-password" in the icecast.xml.
Format. This one is trickier. I'd set it to a higher bit rate than your actual SAMBC broadcast to minimize diminishing returns as your stream is encoded and re-encoded it stays at the highest possible sound quality. My show is 128kBit/s so I'm probably going to kick it up to 192 Kbit/s when I do my live show. NEVER use a lower bit rate than the encoder you're using in SAMBC.
The last thing you need to set up in Preferences is the Source. If you've ever tried to use Traktor to broadcast and the metadata worked okay but you couldn't hear any sound than here's where to fix the problem. Click on "Mix Recorder" and ensure the Source is set to Internal. It seems odd that the mix recorder settings would impact broadcasting but it does. It'll look like this when you have it right:
Click on "Close" to get out of Preferences and you're ready to...
Connect Traktor to Icecast
This step is pretty easy. In the upper right hand corner of the Traktor screen you'll see a panel that looks like this:
If it looks like an FX bank then go ahead and click the little tape icon. The icon that looks like a broadcast tower (above the record button) is the start broadcasting button. Click on it. If it turns solid blue then you're connected. If it blinks then something isn't quite right in your configuration. Make sure Icecast is running. Make sure there's no typos in the configuration.
Give it a test run
You now have a very simple, bare bones streaming setup. Any tunes you play in Traktor and their related metadata are now being streamed to Icecast. To test it out point an internet radio client like MediaMonkey, Winamp, or something at http://127.0.0.1:8090/stream.ogg. The tunes should now play out of your computer's speakers. Neat, eh?
If you don't go any further than this you have a really good platform to test your streaming software, audio quality, and other tools in a private environment. This is a handy thing to have for all sorts of reasons. It still doesn't let folks outside of your home network listen to your stream though.
Configuring your Network
This is where things get tricky.
Okay. There's bazillions of different network setups and unfortunately I can't provide instructions for every kind of router, hub, firewall, etc. What I can do is provide you a description of what you need to do in order to make it possible for someone on the internet to connect to your PC and hear your stream.
In order for this to work your home network needs to be able to route the 8090 port from your router or modem to your PC. If you don't have a router this will pretty much mean that you just have to allow IceCast through your firewall.
If you're using a router then you'll also need to route the port to your PC. On my router I have a feature called Virtual Server so all I need to do is say port 8090 and all its related traffic goes to my PC rather than my sweetie's (or my NecronomiPod, etc). This article talks about what you need to do: http://www.tomsguide.com/us/hardware-router-need-to-know-2006,review-710.... I recognize that this article is pretty old but it's generic enough that it should give you a starting point.
Letting Folks connect to IceCast
This will provide you with your public IP address. This is the IP address you're going to give your listeners so that they can connect to your IceCast server. So the URL that your listeners will use to tune into your stream will be "http://(yourIPaddress):8090/stream.ogg". Make a note of this.
Important: Each time you publish your broadcast address you'll need to check to make sure your IP address hasn't changed. Most ISPs change your IP address from time to time unless you're paying for a static IP. One other thing to worry about is bandwidth throttling. It's VERY possible that your ISP may detect the constant upload traffic and start to decrease the speed of that port. They may even block the port. Alas, there's not a ton you can do about this type of issue.
Play some tunes
You're all set. Let folks know you're on air and start playing tunes. Bask in the sweet glow of success and fabulous music.
I'd suggest using a streaming service like Live365 (http://live365.com) or Mixlr (http://mixlr.com) to support your broadcast instead of running it on your home machine. I have every intention of detailing all the reasons not to do this on a home machine but the main reason is bandwidth. You probably don't have enough.
When I was a DJ on EVE Radio, the management required us to have 4 times the bit rate we were broadcasting of upload speed. I was broadcasting at 256kbs and in order to ensure a stable and quality stream they wanted us to have 1Gb of upload bandwidth. That's easy enough to accomplish, right? That leaves plenty of available upload bandwidth to do things like IRC, Skype, email, browsing, etc, right? Of course it does. Sending your encoded stream to a streaming server only uses the bit rate and a little bit of overhead of bandwidth. Consider this, though: Each concurrent listener is going to take that much bandwidth. Each one. So if you're broadcasting at 128kbs and you have two concurrent listeners you're at 256kbs plus a bit of overhead. Kick it up to 4 and you're at 512kbs plus overhead. If you follow the 4x rule of thumb you'll need 2Gbs upload speed to support 4 listeners. As you saturate your bandwidth all of your listeners will suffer. You also need to keep in mind the speed of your network card. Assuming that you have a 1Gb network connection all the way to the internet the most you can handle (with no other internet traffic - unlikely, no?) is about seven. And that's if'n you're not terribly concerned with overhead.
So. Let me just say this again: If you really want to broadcast then hook up with a streaming server provider or volunteer DJ on a station that has a server available to you. It's a much better option.
How'd this work out for you? Suggestions for improvement? Something still not working? Let me know. I love comments.