Rivendell in the cloud

I joined up with a Facebook group called Rivendell Open Source Radio Automation Users as a place to trade tips on using Rivendell. A question that comes up frequently is how Rivendell can be run in the cloud. Since I’ve been doing this for eight years or so I have a pretty good understanding of the challenges. I’ve mentioned some of it before but thought I’d go into more detail of my current setup.

I’m running Rivendell 2.19.2, the current version, and presently I’m not actually running it in the cloud though I could easily change this in a few moments. The magic that makes this happen is containerization. I have created my own Docker instance which installs everything I need. This container can be fired up virtually anywhere and it will just work.

Here’s a summery of my setup. In my container, I install CentOS 7. Then I pull in Rivendell from Paravel’s repos with a “yum install rivendell” command. Rivendell needs the JACK audio subsystem to run so I install Jack2 from the CentOS repos, too. To this I add darkice as an encoder, JackEQ for some graphical faders/mixers, a LADSPA-based amplifier module to boost gain, and of course Icecast2 to send the stream to the world.

Now, one of the problems with a CentOS-based setup is that CentOS tends to have fewer of the cool audio tools than distributions like Debian and Ubuntu have. These Debian-based distros are not officially supported with Paravel packages so you either have to hunt for your own Rivendell dpkgs or you build your own. I’ve found a few of these dpkgs mentioned on the Rivendell Developer’s mailing list but I’ve not had the time to make sure they’re up to date and meet my personal needs. Thus, for my personal setup you’ll find a few parts which I have compiled myself, rather than install from a package. A project for me to take on in my Copious Free Time is to create an entirely repo-based Docker container but I’m not there yet.

Rivendell needs a MySQL/MariaDB database to store its data. I rely on a non-containerized instance of MariaDB in my setup because I already use the database for other projects and didn’t want to create an instance solely for Rivendell.

So here’s how it all works.
Continue reading

On the air with Rivendell

By LeRe Pics

My use of online music services like Pandora, Mondomix, TaintRadio.Org, and my recent voiceover dabbling has gotten me itching to start my own online radio station. Or reignite my itch, I should say: back in 1997 I became one of the first to apply to the Library of Congress for a compulsory license for Internet radio (back when the list of online radio stations would fit on just few pages). I never followed through with it because it was a leap of faith: the song royalty rates were not fixed and could have been enormous once they were.
Continue reading

Up to speed on Amazon Web Services

I’ve been getting up to speed on Amazon Web Services over the past few weeks. With the end of the year bonus I got from my work I put down the money to get a 3-year reserved instance, gaining a hefty hosted server for a remarkably low price.

I’d had an Amazon instance for a few months just to kick the tires. However, when my reserved instance got purchased, it took me a while to figure out that Amazon had changed its virtualization techniques and in order to take advantage of the new instance I would have to convert my existing image to a completely new one. The blocker for this was that the CentOS-based AMI I used seemed locked and the root drive couldn’t be mounted to a new instance. I had to copy everything using the old instance.

My new instance was created completely by me, using a recipe that helped me build it from the ground up. Now that I have a good base to start from I can build some useful AMIs and share them with others. I hope to make a Rivendell Radio Automation AMI someday so that people can launch their own online radio station with a few clicks of a button.

I’ve also dug into the wonder that is S3, creating an s3fs “filesystem” on my Linux instance for serving up music for my Rivendell install. I will eventually do the same for the media included here on MT.net and push that to CloudFront.

The cool thing about the cloud is that it’s a geek’s ultimate laboratory. It’s incredibly easy and cheap to spin up computer sessions. I can play with technologies without having to commit to them long-term. I’m having a lot of fun with it.

I’m particularly proud that I was able to migrate the server that hosts my neighborhood email lists from a locally-hosted server over to AWS without any of my neighbors knowing I’d done it. I guess twenty years of sysadmin experience pays off every now and then!

Little Raleigh Radio server delivered

Little Raleigh Radio

I also buckled down this weekend to get Little Raleigh Radio’s studio server set up and delivered to the temporary studio. Mission accomplished!

The server has a full install of the Rivendell radio automation software and 2GB RAID1 mirrored drives for a HUGE storage space of music. It still lacks a monitor and sound card but those are on the way.

Now the difficult work begins of getting the rest of the staff trained on how to use Rivendell.

Neuse Radio now on the air!

Neuse Radio


It’s been about a year since I began learning how to use the open-source Rivendell radio automation software. I’ve been fiddling around with my online radio station, perfecting it as best I can. Today I decided to see what would go into actually opening it up to real listeners, which of course means paying royalties for each song played.

That’s where the LoudCity service comes in. You select the level of listeners you expect, provide it your admin password to your icecast server, and boom – you’re broadcasting online! LoudCity pays the royalties and keeps me legal.

I only meant to prep my broadcast tonight but instead I wound up kicking off LoudCity’s free 7-day trial. Rather than let my free trial period vanish without being used, I decided to go ahead and open things up.

You can tune into Neuse Radio by clicking on the image above or via this link: NeuseRadio.Com. I’ll get around to putting an actual webpage up soon as well as adding Raleigh-specific content to the audio. In the meantime, I welcome any comments or feedback anyone might have. Thanks for listening!

Making FreeNX always suspend

I’m running my Rivendell radio automation software on a virtual host, connecting to it using FreeNX. It works very well for the most part, but there’s been one little piece which could cause disaster: the FreeNX server’s habit of asking me if I want to suspend or terminate my session. Because my music will stop if the session terminates, I don’t ever want that option. I want it to always suspend.

I spent a few minutes tonight tracking down the best way to do this. It turns out the /usr/bin/nxdialog script is being called. By patching this script, I can force the suspend option every time. Problem solved!

Below is the code that does the magic:

— nxdialog.orig 2011-10-24 11:45:14.000000000 -0400
+++ nxdialog-mine 2012-03-30 21:41:33.000000000 -0400
@@ -415,6 +415,11 @@
exit 0
}

+always_suspend()
+{
+ return 3
+}
+
#
# main case statement
#
@@ -427,7 +432,7 @@
${dialog_interface}_yesno
;;
yesnosuspend)
– ${dialog_interface}_yesnosuspend
+ always_suspend
;;
panic)
${dialog_interface}_panic

You can also download the raw patch here.

Introducing Little Raleigh Radio

Little Raleigh Radio


One of the initiatives that’s been taking up my Copious Free Time is helping start a low-power FM community radio station in Raleigh. A few months ago, a friend mentioned the Little Raleigh Radio (LRR) project and I became determined to help this project succeed.

I’ve been following low-power FM (LPFM) for quite some time so when I learned that the FCC’s window for granting new licenses may be opening again, I felt I had to help.
Continue reading

Neuse Radio almost here

I’ve been perfecting my Neuse Radio streaming station lately and I’ve almost gotten it to the point where I can let the world listen.

It’s running on the open-source Rivendell radio automation suite, patched through the open-source JACK audio server, encoded with the open-source DarkIce encoder, streamed with the open-source Icecast2 server, and hosted on my CentOS-based VPS in Ashburn, Virginia.

It’s so automated that I don’t have to do anything to keep the music flowing. If I want I can add some chatter (called voice-tracking in the industry parlance) between songs to give it a live sound, but I tend to let the music run without interruption.
Continue reading

Giving Turntable a spin

Friday gave me my first look at a new music service called Turntable. It’s a service where you and up to five of your friends can take turns DJ-ing a music channel (or “room”). Participants in the room can vote whether a song is “lame” or “awesome” and the vote determines whether the song stays in rotation. They can also share real-time comments in a chat window.

It’s an intriguing idea, but how does it work in practice? It works well if you like hiring schizophrenics to DJ your parties! There were some cool tunes I heard that I wouldn’t have otherwise been exposed to, but the music flow soon became a jumbled mess.
Continue reading

Family, projects, baseball

I enjoyed the weekend. It began Friday afternoon with Hallie’s violin performance in the Conn variety show. Our girl stood in front of half the school and absolutely nailed her piece. Kelly and I are constantly amazed that the complete confidence our kids have for performing in front of a crowd. She had not one whit of stage fright and played beautifully.

My parents came over to see the performance and Kelly’s parents came down for that and to stay the weekend. We spent Friday evening at Music on the Porch and were ready for bed around 10.

Saturday morning, I cooked pancakes for the family. Then we went to the NC Museum of History to check out a toys exhibit. It was fun looking through the exhibits, many of which I hadn’t seen before.
Continue reading