Don't you just hate it when bloggers feel the need to apologize for not posting in a while - as if the absence of a single blog would have any noticeable impact on anyone's day-to-day life? It is usually a waste of words and if anyone really cared what they had to say then that sort of "Welcome me back everyone!" language only gets in the way of what it is they really have to say. So I will spare you all the apology and go right for the excuse: I have been busy building a Streaming Internet Radio Station.
Through the years I have toyed with streaming internet radio so I was somewhat familiar with the technologies when the Church asked if I thought it possible to broadcast the Sunday Morning Services live via the internet. I've heard it said that a little knowledge is a dangerous thing but through the last few weeks the knowledge has increased and the danger is subsiding. I wanted to share a little bit about what it took to get this station on the air in case anyone else gets the "calling" to go to work on "The Master's Radio."
Mt. Zion General Baptist Church on the South Side of Indianapolis is a quaint chapel and education center with a diverse congregation and very much in touch with the world outside of their doors. From their active Facebook presence to a preacher who has forsaken the classic pulpit for a freestanding, lightweight iPad on a floor stand, it might be safe to say you are likely to find the Luddites squirming in their seats even more-so than the sinners when 10:30 Sunday morning rolls around.
Microphones have long been a staple of those whose labor has them taking the stage and as a result a sound control booth has been installed in the rear of the sanctuary. The hymnals have all but been replaced by the projector that shines the sing-along song lyrics on the large screen in the front of the hall. And while the booth was equipped with a computer what it lacked was a connection to the internet. So the plan was simple: 1.) Connect the computer to the internet. 2.) Connect the mixer board to the computer. 3.) Stream the output of the sound system to the world.
In addition to broadcasting the Sunday show live each week we decided it would be a good idea to record the show for rebroadcasts throughout the week. Rather than having a Radio station that featured dead-air a large percentage of the time it was also decided that we should be streaming something 24 hours a day / 7 days a week.
I will spare you all the step-by-steps it took to get this thing going but I would like to discuss some of the bigger hurdles that had to be crossed in the realization of our goal to get this broadcast "on the air." First of all, to everyone who ever snickered at me for still working in the world of the Windows XP Operating System I say "he who laughs last, laughs best" -HaHa!
"Back in the day" it was no problem to record or broadcast the very sound coming from the speakers of your computer, but were you aware that computer manufacturers along with Windows 7 have removed that ability from the modern system? Neither was I. This meant that although I could record the broadcast as it was coming in through the input on the computer I was unable to play the file back out for later rebroadcasts. There were several workarounds for this however, from using a cable to take the output from the headphone jack and feed it back into the "Line-In" jack, to a $500 DJ Software package. Neither of these approaches appealed to me especially in light of my knowledge that this was a built in feature of a Windows XP - Pentium 4 machine.
The Church's technology director donated a newer Dell machine which was running XP to the project but as its integrated audio was already a victim of the "Thou Shalt Not Stream" edict I was forced to dust off an old SoundBlaster PCI expansion card and install it into the server to add "Wave Out" to the software mixers. We were therefor ready to rock-it old school!
The most popular server software for Streaming Internet Audio is - without a doubt - "Shoutcast" which I installed and configured but after a brief trial run soon learned that the features provided by the second most popular streaming server "Icecast" would be better suited for our situation. While Shoutcast worked just fine for general broadcasting I encountered a problem where listeners were getting dropped when making the transition from prerecorded to live audio. Icecast is designed to seamlessly transition listeners from one source to another and as such has become our choice. Both of these software packages are open-source and freely available.
In my previous forays into Streaming Internet Radio I had only ever used a rather questionable bit of software known as Winamp since it had a plug-in that would turn it into a streaming audio source, connectable to the server software. I had come to know Winamp as being a bit intrusive into the host system so decided I would scour the internet for another option from the world of open-source and came across a gem of a program known as "butt" (ha ha, I know, right?) B.U.T.T. actually stands for Broadcast Using This Tool. Not only is this software aptly named, it is probably the only sourcing software you would ever need (provided you could get your sound card to deliver it the noise it needs.)
Although butt has the built-in ability to record the stream as it goes out, I was only interested in recording the Sunday Morning Service for later broadcast so I turned to MPlayer to piggyback and dump the stream to a file at the required time. Once the pieces were in place it was time to automate things. If you ever use a computer for repeated tasks and are not automating these tasks (at least to some degree) then you are missing out on one of the best things about personal computing. This custom project "cried-out" to be automated and before too long I found myself in the middle of a fun little logic puzzle / programming challenge.
Since I am no stranger to the DOS command line I knew I could get this thing running with batch files. What I was not quite aware of was how troublesome it is to get the Scheduled Tasks feature of Windows to play along and run batch files without fail. When it was all said and done however, I learned many valuable lessons and ultimately delivered on my promise to bring Streaming Internet Radio to MtZionIndy.org.
Tune-in, won't you?
If this sounds like something you are into and need help working through some of the "finer points" feel free to leave any questions you might have in comments or email me for more information.