Saturday, January 29, 2011

Live Skype on Radio #ds106

Today I ran a test on Radio #ds106 to see whether I could stream a live Skype conversation over internet radio. The answer to that question is: yes. Here's what I did.

First, I went out and bought a new headset with speaker and microphone plugs that plug right into the sound card (specifically, a Plantronics Audio .355 Multimedia Stereo Headset). I've been trying for a long time to make this work with my USB microphone, and it just doesn't work.

Next, I set up my computer so the default sound application was the Windows stereo mixer. There's a few steps to this.

First, open the Windows Recording Devices screen (my screenshots are for Windows 7 but Vista is very similar) by right-clicking on the speaker icon and selecting 'recording devices' (you can also get to it via the Control Panel).

This will bring up the recording devices screen. You should see a selection for your microphone input. If you're lucky, you'll see the 'stereo mix' option. If not, you'll have to unhide it.

To do this, highlight one of the microphone selections, and then right-click on it. In the pop-up menu that appears, check the box titled 'show disabled devices' and 'show disconnected devices'.



When you close the window, the Stereo Mix box should appear. It looks like this:


Highlight the 'stereo mix' box and then select 'default device'. What this means is that your programs will accept as input the sounds that your computer makes - system sounds, you tube videos, and the like.

You need to make sure the Stereo Mix is actually producing sound. Click on 'Properties'. You'll get this screen:


The 'Controller Information' may be different for you. Not to worry (I don't think).

Anyhow, click on 'Levels'. You'll see:


Make sure your Stereo Mix has a non-zero level. As you can see, I've set mine to 88.

Next, make sure your microphone is capturing sound. Select the microphone icon in the 'Sound' window (with luck, you'll have only one; if not, select the microphone that is plugged into your sound card). Click on properties, then on Levels, and make sure the levels are non-zero (this will also be useful later if you notice your microphone is too soft - depending on your sound card you may also be able to boost your mic).

You want to make sure your microphone is included in this mix. So right-click on the speaker icon, as above, and select 'volume mixer'. It may take a few moments to appear. This is basically your Stereo Mix mixing board (it really is annoying that it takes so long to appear, and I don't know why it does, and sometimes it just doesn't appear - try closing all the other sound windows first).


Update: Note that as I was setting up on Windows 7, I was still not able to get my microphone working in stereo mix. I did some searching and finally found this:  "Here's the secret part: When you click on your microphone then click on the "properties" button, and then click on the 'listen' tab, and then click on 'listen to this device'." Which did, indeed, solve my problem. And, best of all, it also works with USB microphones, so I can use my high quality sound sources.

Next, you want to test your configuration. I use Audacity for my system check. If you don't already have it, download and install Audacity. Then, open Audacity and go to the preferences window (select Edit/Preferences, or type ctl/P). In the audio I/O window, under 'recording device', select Stereo Mix.


Now, audacity will record any system sound. Test it out by clicking OK, clicking on the 'record' button (the red circle) and then playing a sound in YouTube. You should see the wave-form in the Audacity display indicate that you're recording audio. Now stop YouTube and try speaking through your microphone. You should again see the wave-form appear again. Stop the recording (press the button with the black square) and play it back. You should hear the YouTube audio and your voice.

If you're not able to record the sound in Audacity, you need to stop here and figure this part out, because if it doesn't work in Audacity, it work work on radio.

You can also save the Audacity recording in MP3. But note that, in order to do this, you'll need to download a separate plug-in called LAME. Here are the instructions in the Audacity wiki. Alternatively, when you get to this point, just download the .dll directly from here and save it to your Audacity directory. Then, try to save your find as MP3. It will ask you to locate LAME. Select the file you have just downloaded in the file selection window.

OK, you're set up to produce Audio. Now what you want to do is to set up your system to send that audio to the radio station. Here's how I'm set up:


So, the next step is to download and install the WinAmp player. Here's the download page. You don't need the pro version (though, honestly, if I'm going to do this sort of thing regularly in the future, I'll buy the pro, just because).

You don't need to do anything special with Winamp.

Next, you need to download the Edcast plugin for Winamp. This is a bit tricky since the creator has discontinued support for Edcast and has moved on to other things. It certainly makes me nervous. A bunch of sites still refer to the no-longer useful Oddsock link, but I found it here, on the Elite Radios site. There's enough support out there for both Winamp and Icecast that this vital link will be retained one way or another, I think. In the mean time: it works now, until somebody 'upgrades' and breaks things.

The Edcast plugin downloads as a .exe file. To install it, run the .exe file. It will save the required .dll files to the Winamp directory. During the install, though, it will ask you to download and install the LAME and ACC .dll files separately.

Now what I found was that I had to do this as a two-step process. First, I downloaded the zip files from the sources provided. Then I opened the archive with 7-zip and saved the .dll files (specifically, lame_enc.dll and libfaac.dll) to a temporary location (actually, just my home directory). Then I used the Windows file manager to copy them from the temporary location to the Winamp base directory (specifically, C:\Program Files (x86)\Winamp ).

I needed to do this because I needed administrator access to save the files in this location; I couldn't just save them there directly from 7-zip during the install process. This was causing Edcast to install without the lame encoder, which was creating problems later.

Finally, the Icecast server itself. You could install one on your own computer, or you could buy server space somewhere and install it there. Or you could purchase a server system from a provider. This is probably the best route to take.

In the case of #ds106 radio, Grant Potter had already purchased access to an Icecast server. Icecast is a GPL streaming media server project that currently streams in MP3 format. It's very similar to Shoutcast, which is a more popular application that does the same thing.

I can see why Grant chose Icecast. While Shoutcast has a larger directory of stations, and while both support both an auto-DJ as well as live broadcasting, the Icecast does not require a server reboot to switch from auto-DJ to live broadcast. This is important because it means you can cut into a live broadcast whenever you want, without booting all your existing listeners off the station.

Grant's own post was very useful to me here. He used Nicecast, which broadcasts music from a Mac. But more to the point, he found a hosting service which uses CentrovaCast to manage its streaming servers. Centrovacast is basically a control panel for the server (WHM is an alternative). You don't need to get this, but it's something to watch for when you're selecting a streaming server host.

As I indicated in my previous post on #ds106 radio, Grant found all of this on myautodj. He set up the simple $30/month Icecast streaming server with 100 simultaneous listeners supported. You can see the server options on myautodj's CentrovaCast page. You can see the packages here.

So I didn't buy one; I just used Grant's.

What you need to do is to configure Edcast to connect with the Icecast server. The following information is required (and this is what I asked Grant to provide):


Server hostname:     208.82.115.69
Server port:     8010
Server type:     IceCast
Mount point:    /live
Bit rate:     128
Username: xxxxx
Password:     xxxxx
Encoder: LAME/MP3
Quality: 0
Sample rate: 44100
Channels: 2


Thes especify different properties of the audio being sent from the encoder to the streaming server. The hostname and port specify the sever location. The server type is Icecast, and mount point is the location in the sever the broadcast will be sent from (the auto-dj, meanwhile, has a different mount point). The bit rate refers to the quality of the MP3 audio being sent; for voice audio, you could go as low as 32, while 128 is standard for ordinary MP3 music.

So, open WinAmp, and then select Options / Preferences (or hit ctl/P). In the menu at the left-hand side, under Plug-ins, select DSP/Effect. I`ve highlighted it in the image below:


DSP stands for 'Digital Signal Processor'. In my screen, you can see that I have an 'effects' DSP (I can use this to create echos, loops, and other effects with my audio). I also have a shoutcast DSP, in cast I wanted to broadcast to a Shoutcast server. But for our purposes here, I want to select the edcast DSP plugin. Highlight the plugin name and then right-click. You will get the configure screen (for some reason, the 'configure' button doesn't work with edcast.

Here's the configuration screen:


This is the screen you'll actually use when broadcasting. Highlight the line under 'encoder settings' (it might look different from mine, because it hasn't been set up yet).


Then select 'Configure' from the popup menu. This is where you'll enter all your settings:


Fill these values with the values Grant gives you (or, if you've set up your own server, with the values set in your server configuration). As well, if you want to set the name of the program and a program description (this is what will show up in the Icecast directory) the click on the tab YP Settings and fill that form out. Click OK.

If it all worked, then you're back in the previous screen. Make sure your encoder is highlighted, and click 'connect'. There won't be any bells and whistles, but you are now broadcasting dead air over the internet. Click on the microphone button and say something.

At this point I wanted to test. So I logged on to the station using my iPod and listened to it from there. To do that, I downloaded and installed the RadioBox app (99 cents), selected 'Favorites', and entered the custom URL for the streaming media server ( http://208.82.115.69:8010/stream ). That way, I was able to listen to what was coming out of the server while I attended to what was going in. There's a 10 or 15 second lag, so be aware of this.

Now, play your audio. Any audio file you play in Winamp will be broadcast over the radio station. But also, because you set Stereo Mix as your default, any system sound at all will play on the radio station - this includes YouTube videos or Skype calls. And because your mic is working, you can broadcast both sides of the Skype call.

If you're doing anything momentous, you should record your broadcast. In the YP Settings you can specify the location of a recordings director. The recording will be in MP3, and in my system, it was broken into roughly 12 minute segments.

What next? Well, I play to test the system with Elluminate - we could have our regular #cck11 live session in Elluminate, while at the same time broadcasting the MP3 stream to people with less bandwidth, mobile phones, or who prefer streaming audio. After that, the sky's the limit.

6 comments:

  1. It is pretty exciting. I have to say that NiceCast does this all superbly in one swoop, you can stream the found if any audio device or program, and even has a yahoo pipes kind of tool to go more complex mixing, like fading from mic (dj) to music (iTunes or other audio app) streaming elluminate would be cake.

    If you want to support more than 4 listeners then you need a server; a home Internet connection us not robust enough to doors than a few.

    ReplyDelete
  2. Will Nicecastg do the live Skype chat? (And I assume it connects to the icecast server for wider broadcasts).

    I need to know because I want to make this work on the road as well, where I'll be using my MacBook.

    ReplyDelete
  3. As a historical note - ds106radio is now on a bit rate of 96, don't push anything higher than 96 as she'll blow. You can go lower if you need to.

    ReplyDelete
  4. Can anyone help me with a Mac setup? I have Nicecast for Mac installed.

    ReplyDelete
  5. See the CogDog guide to Nicecasting - http://cogdogblog.com/2011/02/12/nicecasting/

    ReplyDelete

I welcome your comments - I'm really sorry about the moderation, but Google's filters are basically ineffective.