For this week’s live broadcast of the ds106 group radio shows I came up with an entirely new contraption for managing different sources, in contrat to my previous methods of using Nicecast.
I still prefer using Nicecast, and do so for voice broadcasts or voice mixed with music (DJing)- but in the past I have ran into problems doing it with something like Skype as one of the sources, though I have mixed it in with the application mixer, the missing piece is for someone on Skype to be able to hear back what is on the stream.
The new thing in the mix is the free Icecast broadcastng software, Ladiocast. I cobbled together the approach below with a combination of Tim Owen’s Ladiocast tutorial (critical for setting up Ladiocast) and Scott Lockman’s setup for doing his Second Life to Google Hangout broadcasts.
This post is a long scroller! Go long!
So I got all of that working, without actually too much sweat; the missing piece of the equation in Ladiocast is the lack of archiving, and here is my foreheadslap idea- I used Ladiocast merely as my audio mixer, and sent out the audio from there as input to Nicecast, which becomes the broadcaster and automatic archiver.
I had made the mistake of downloading Ladiocast from the Apple App Store, and tried a few broadcasts- it felt like I was broadcasting, but the ds106 autodj never registered in and also, people were saying it was dead air. I then realized my Ladiocast did not have the mp3 encoder as an option.
So I went back to Tim’s tutorial and repeated his critical steps.
- Install the 0.10.4 version of Ladiocast, not the latest pne (a copy can be downloaded from Tim’s server)
- Install Soundflower What is this? Its a tool that creates virtual audio channels on your mac – it means you can take the output of one application, send it to Soundflower, and then use that same source as input elsewhere. Its like a mixer of audio sources on your computer.
- Download the copy of the MP3 encoder library used for Audacity (or alternatively make a copy of the one you have). This is what makes mp3 encoding available in Ladiocast.
This file libmp3lame.dylib needs to be installed on your computer in the directory /usr/local/lib (Audacity puts a version in /usr/local/lib/audacity. You can get to this dorectory from the Apple Finder via selecting Folder from the Go menu. If you have not installed the encoder for audacity, drag the new file to this directory:
I simply did an option drag to copy it from the /usr/local/lib/audacity folder to this other location:
Now we will set up our sound channels. First, we want to set the default output for System audio to Soundflower (16ch) (the 16 means it can accept 8 stereo audio sources in a mix:
What this means is that most applications will now send sound to this source (meaning you will not hear it from your speakers or your headphones).
I said most- Skype can be finicky, and you will manually have to change the output to strong>Soundflower (16ch) from Preferences -> Audio/video:
Note that I have also slid the volume to its maximum setting (just in case you call soneone with low volumes- we want max throughput from Skype and we will adjust the output volume elsewhere).
We will make one more setting change here later. Now, let’s set up Ladiocast. This software provides three different sources for input, and three for output (though we only need 2 and 2). Each also has a levels control so we can turn any source down or fine tune for levels. Generally you want volumes just below the part where the meters peak in red.
Inout 1 is out Soundflower (16ch) meaning a mix of all audio sources on our computer (which will also include system alerts, so mind your IM notifications). Input 2 is whatever you use for a microphone, in this case it is the external mic of my iPhone headset (You will use a headset, you will use a headset, you will not use the open mic of your laptop, right?).
So all the input sound to Ladiocast is from our computer and our microphone. Each of these sources is mapped (see arrows above) to our two output sources (Main and Aux Output 1).
Here is where it gets trippy- we are outputting sounce to our other Soundflower source, Soundflower (2ch)- this is completely separate from Soundflower (16ch). We can then use this mix of the microphone and computer audio as source for our broadcast. The mix is defined by the combination of all volumes (volume controls in apps like iTunes, Skype) and the Ladiocast input levels. Our second output, Aux Output 1, goes to headphones so we can monitor all output- this I generally keep at a medium or low level as it is just a test to make sure audio is working – there is really no delay in your own audio mim (as you hear in Nicecast).
Now here is the one trick and something I do not think is possible in Nicecast– for the people calling in from Skype, we want them to be able to hear everything that is broadcast back out to ds106 radio (including my voice too). Are you ready for this trippy hippy step? Can you guess?
Go back to your Skype audio preferences, and change the input source to be… Soundflower (2ch):
Do you get it? Any sound we are broadcasting is going to Soundflower (2ch), including audio from iTunes, my mic- and that combination works as an input back to Skype.
By now we have everything to set up to play audio from any application on our computer, music in itunes, a Youtube video in Chroms, and people we call in Skype. Here’s a sketch I made of it.
The next thing to do is set up Ladiocast to broadcast to ds106, using the settings found in the ds106radio document. In Ladiocast, under the Streamer menu, go to Streamer 1 then Icecast:
Here the settings for the Connection tab:
The stream name is what will be picked up by the @ds106radio twitterbot (which is not working as of August 2013), include your own twitter handle so people can tweet back.
Confirm the settings under the Encoding tab (my first efforts were wrong because I did not have an mp3 option, that was why we did all that stuff to move that libmp3lame.dylib file around):
That’s it, everything is set, all you need to do is click “Connect”…
Well I went one step farther… because I want to save an archive. That’s where I got the idea to skip the broadcast option in Ladiocast, and use Nicecast. All I needed to do is set the source in Nicecast to … (any guesses) (that’s right– Soundflower (2ch)):
You should update the Info tab as well to reflect the stream info, and of course set up Nicecast with all the broadcast options on ds106. If you open the Archive window in Nicecast and click the Archive button, it will automagically archive any broadcast session, storing files in your ~/Music/Nicecast Archive folder.
Now just turn that broadcast on!
Depending on how you are playing audio, you are still needing to dance around windows- iTunes to manage audio/playlists maybe to drop levels, Skype to initiate calls. I kept the Ladiocast main window available so I could tweak levels if a source was exceptionally low or high. Skype can be notorius for some people having low input volumes- here is another little trick I found in Ladiocast– if you click the uparrow on the little nub that reads “6db” you can double, triple the audio amplitude (to 12 or 18db or more):
This allowed me to compensate for Skype talkers with low inout volume, or audio segments recorded at low levels. I have to say, the most challenging part of these audio projects is getting people to understand the importance of proper recording levels, and making it even between different segments. It not only makes for better audio, it enables your broadcaster not to spend so much time and attention fiddling knobs and buttons.
This set up worked perfectly this week- I had all of the audio in an iTunes playlist (but I picked and chose the audio to play, both music segments and the student audio project files), I played a few YouTube movies for their audio track, and had two Skype call-ins, where the speakers got to here the entire segment played back through Skype. The proof is in the archive:
Again, I will likely use Nicecast alone if I am DJing my own music, but if I need to do Skype call-ins or mix multiple sources, this is my new route. Just do not forget to reset the audio in Skype and system audio when you are done!
I am sure this is not the last time I will make a ds106 broadcasting tutorial.
My Newest Rube Goldberg ds106 Broadcast Machine: Ladiocast + Nicecast by CogDogBlog, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.