LWN.net Logo

The Rivendell Radio Automation System

A new project, known as the Rivendell Radio Automation System, has been announced. The initial beta version of the software is now available. Rivendell has been released under the GNU General Public License.

Rivendell aims to be a complete radio broadcast automation solution, with facilities for the acquisition, management, scheduling and playout of audio content.

The system is being developed by Salem Radio Labs: "This group is responsible for development of new systems and applications. With a primary focus on development of Linux-based Open Source systems, these applications are designed to be accessible and useful to the entire Christian Broadcasting community." The software looks like it would also be a good fit for community broadcast stations that operate with limited funds.

Currently, Rivendell consists of the following tools:

  • RDAdmin - a tool for system configuration and management.
  • RDLogEdit - a tool for editing program logs.
  • RDLibrary - a tool for maintaining an audio content library.
  • RDAirPlay - a live audio playback application.
  • RDCatch - an automatic recorder for incoming audio feeds.

Some of the Rivendell features include:

  • Designed for efficient on-the-air use by professional broadcasters.
  • Support for (optional) touch screen input.
  • Completely GUI-controlled configuration.
  • A playback system for both live-assist and walk-away operation.
  • A built-in audio file library.
  • Support for cart-style (short segment) programming.
  • A Cut Marker Editor for adding segues, timers, and transition features.
  • FreeDB support for deriving CD track information.
  • Built-in control for approved audio devices.
  • Support for external broadcast switching and satellite receiver hardware.
  • Support for PCM16 and MPEG Layer 2 audio file formats.
  • Works with analog and AES3 (digital) audio streams.
  • Integrated program log editing system with support for multiple automation logs.
Rivendell currently works under SuSE Linux Professional 8.1, and uses the MySQL Database. Support for the JACK Audio Connection Kit is being planned.

The Screen Shot Gallery is worth looking over, it shows many of the capabilities of the various system tools.

In all, Rivendell looks to be a nicely designed system that could prove to be very useful for a wide range of radio broadcasters.


(Log in to post comments)

The Rivendell Radio Automation System

Posted Dec 24, 2003 15:56 UTC (Wed) by rjamestaylor (guest, #339) [Link]

Very cool of Salem and great for low budget radio production -- actually, besides a few programs all radio production is low budget! -- and even cooler that they're sharing their wares (note the 's'). I worked for Salem in the 80's at a popular US religious format station (Christian Rock, actually), and unfortunately one reason I got out of the Christian Radio scene was due to a meeting with a Salem corporate representative who told us he left his faith at home when he went to work. This action restores much of my confidence in the good people at Salem, for it is not the actions of a ruthless business to share the fruit of one's labor with others. Good show, Salem.

And, smart move, too. In the late ninties I returned, briefly, to religious format radio as a program/production director (long story). But what I saw was the state of many 2nd-tier stations Salem has in its network; the mid-market religious station which had not come up to automation standards of even public radio stations (hard to believe). In fact, the station I took over still used turn-tables (as well as CDs) and carts...old carts. Analog recording equipment captured Salem satellite feeds and required manual intervention. Radio spots were hit from a printed log sheet (from a 1985 traffic program); did I say hit? They were missed quite often.

To reduce cost we spent money on automation equipment. While we tried to stay as cheap as possible, the solution we went with costs tens of thousands of dollars, ran on Windows NT and had a myriad of problems. We couldn't afford the best; the solution we picked needed much hand-holding from the company -- paid for consulting of course -- and none of it was open for an erstwhile developer to tweak. We did save money in the long run , but barely enough to offset the automation costs.

Why is Salem smar to open this kind of system? Because it gives opportunity for volunteer-ladden community religious-format stations (and others, of course) to modernize thus keeping a market segment alive without rasing Salem's media-buy costs (we had to raise our rates to justify the automation cost) and automation helps Salem deliver its products to the ultimate consummers (listeners) with a minimum of interruption from error-prone analog programming. It also improves the hit ratio on ad plays.

So, Salem is doing a gracious thing -- but also one that helps itself as well in the long run.

Maybe you can be gracious and shrewd at the same time.

The Rivendell Radio Automation System

Posted Jan 8, 2004 17:47 UTC (Thu) by Baylink (subscriber, #755) [Link]

Holy Wow, Batman.

This is three Sigma west of cool, folks. The major players in this field, like 360 Systems and
AudioVault, get upwards into 6 figures for this sort of thing.

And, like the other poster, I agree that it's nice to see Christian business putting it's
beliefs where it's mouth is.

The Rivendell Radio Automation System

Posted May 22, 2005 13:16 UTC (Sun) by zotz (guest, #26117) [Link]

Rivendell now has jack support (I am using it) and I beleive the latest has direct alsa support so that simple setups can avoid the need for jack.

It will also run on debian. Here is a link to the (unofficial) rivendell wiki:

http://wiki.tryphon.org/rivendell/index.php/Main_Page#Wel...

With jack, you can also use it for streaming. Using darkice with jack support. I am trying to use ices with jack support but I can't seem to get that working here yet.

My current setup/quest is:

Rivendell (with jack) plays out to darkice (with jack) which streams to icecast2. Peercast rebroadcasts the icecast2 (ogg vorbis) stream. I have that all working playing Creative Commons BY and BY-SA music:

http://yp.peercast.org/?find=bysa&Submit=Search

That is all working. The quest part is to hook up the now and next to the icecast2 update metadata deal so I can put the metadata of the songs into the stream.

I could use some help. Research is begining today (may 22/05)

I also have a very rough random log maker:

-----
#!/usr/bin/env python
# rdlogmaker.py
# Ver: 0.0.1
# by drew roberts
# Copyright 2005 drew Roberts
# a quick hack at making a log file for import into Rivendell
# in python from the CATR table in the Rivendell database
# consider this release under the GPL - proper license text later

import MySQLdb
import datetime
import time

output = open('/var/sndlog/daily.log', 'w')

db = MySQLdb.connect(host="localhost", user="riven", passwd="rivenpass",
db="Rivendell")
cursor = db.cursor()
cursor.execute("""SELECT NUMBER, TITLE, FORCED_LENGTH FROM CART
WHERE GROUP_NAME = 'Music'
ORDER BY RAND()""")
# started writing this and then did a google search for:
# forced_length and came to this:
# http://roborr.com/rivendelldev/msg00995.html
# which is where I learned about ORDER BY RAND()
# cool

# figured FORCED_LENGTH is msecs from the link and further testing

result = cursor.fetchall()

#starttime = newtime = datetime.time(00, 00, 00)
#print starttime
#print newtime
cumsecs = 0.00
cartsecs = 0.00
hours = 00
mins = 00
secs = 00

while cartsecs <= 86400:
for record in result:
foo = record[0]
foostrs = str(foo)
if len(foostrs) == 1:
foostr = '00000'+foostrs
if len(foostrs) == 2:
foostr = '0000'+foostrs
if len(foostrs) == 3:
foostr = '000'+foostrs
if len(foostrs) == 4:
foostr = '00'+foostrs
if len(foostrs) == 5:
foostr = '0'+foostrs
if len(foostrs) == 6:
foostr = foostrs
output.write(foostr+' '+str(datetime.time(hours, mins, secs))+'\n')
cartsecs = (record[2])/1000
cumsecs = cumsecs + cartsecs
hours = int(cumsecs/3600)
remsecs = (cumsecs - (hours * 3600))
mins = int(remsecs/60)
secs = int(remsecs - (mins * 60))


output.close()

-----

all the best,

drew

Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds