Rivendell – Scenario: breakaway from normal progaming to playout audiobook chapters, for a length of time and rejoing normal programming. And how to load and playout the audiobook discs/tracks in order

Great to be back here writing up a new guide for Rivendell. A reader left an interesting comment recently about a scenario he is hoping to accomplish with Rivendell. Here is his comment:

“Thank you for this very much! I am still trying to figure out how to do play everything in a group sequentially. For example each cart has a chapter of an audio book. I want to play 30 min worth of carts in the morning sequentially. The next day I want to play another 30 min starting where it left off the day before. How would one do that automatically? I think it could be done manually but there are 400+ carts…”

Short answer: YES! This can be done and here is how it can be done in the following steps (gross details follow after this outline)

  1. Create a new service in Rivendell just for the audiobook
  2. Create a new cart group in Rivendell to place the audiobook carts into. Specify a cart range not used elsewhere (1000 carts should be enough)
  3. Rip the AudioBook CD into the library under the new AudioBook group (fix the cd ripper title naming errors)
  4. Create a new Event in Rivendell RDLogManager called “audioBook” that will read an imported music log file (aka playlist!)
  5. Create a new Clock in Rivendell RDLogManger called “audiobook” that will insert the AudioBook Event to fill the hour(s)
  6. Edit the Grid in Rivendell RDLogManger and select the “AudioBook” clock for all hours
  7. Using Microsoft Excel or similar spreadsheet program create the “Music Log” of all the carts in sequential order from the “audiobook” cart group
  8. Configure the AudioBook Service in RDAdmin for Music Data Load so that it reads the Music Log load file created in Excel
  9. Generate new log for Service “AudioBook” in RDLogManager
  10. Merge music log in RDLogManager after you have generated the log
  11. Use RDLibrary to create two macros that will cause Rivendell to stop playing out of the main log and switch to playout of the aux1 log and vice versa
  12. Use the RDLogEdit to edit the new AudioBook log and add in macros at every 30 minutes
  13. Use the RDLogEdit to edit your current log for normal programing with macros at the correct time to switch over to the Aux1 log and begin playing
  14. Loading the Aux1 log into RDAirplay and examples of macro functions

This will not interfere with your station if you are actively using traffic and music log loads from external software like wideorbit or selector. Or if you are using my previous guide to having Rivendell schedule generate its own music logs.

Step 1. Create a new service in Rivendell just for the audiobook. Open up the RDAdmin application

addservice

Click on manage services, click Add, name the service AudioBook or whatever you want to call it. Base the service on your already established main service. In my case, its called BrettFM1. After you click OK you will see the config screen for the service. We will revisit this later, so just go ahead and hit OK to close the window.

Step 2. Create a new cart group in Rivendell that will be used just for your AudioBook chapters or cuts. Open up the RDAdmin applicationgroupsinrd

Your groups will vary from my example above. You need to find an unused cart range that can span at least 1000 carts. If you plan to have many different audiobooks loaded you will need more range. In my example I see that I still have 060501 and after available. For simplicity in this example I will specificy my AudioBook Group cart range to be from 070000 to 071000addgroup

addgroup2 See here: We have entered the desired cart range, and checked enforce cart range to keep carts in this group only within this range. We ONLY have the AudioBook service as active for the group and my main service “BrettFM1” is not part of the group.

Step 3. Rip the AudioBook CD into the library under the new AudioBook group

I first attempted to use the DropBox function to load in externally ripped CD’s.  I had some luck, but was finding that the tracks were not autoloading in the correct order. It appears that Rivendell goes for the largest length file first? I had mixed results. However, using the CD ripper feature in RDLibrary is most straight forward in this case. If you don’t have the source CD’s then perhaps you should reburn them or look deeper into DropBox or terminal commands to get what you need done.

Open up RDLibrary and click on the RipCD button.

ripcd1

Insert your audio CD and you should see the track listing appear here. It would probably be wise to enter the Artist in as maybe the name of the audiobook, and the Album as Disc 1, etc.

Now highlight all the tracks and click on the “Add Cart Per Track” button:

ripcd2

Select the AudioBook group for the carts to placed into and press OK. Then press Rip Disc

ripcd3

You can see that each track is getting its own cart, within our desired cart range in the AudioBook group. Other settings in the ripped like normalize can be left as default. Autotrim, should be OK but some may want to disable that. Also, if you know the audiobook has no stereo content then changing to 1 channel will save on storage space if that is an issue. You can of course try other things like “Apply FreeDB values to Carts” to let Rivendell look up more detailed info online and add that into the carts.

Small problem — Rivendell puts the correct CD track sequentially into carts, however it fills out the title field incorrectly. So we have correct this after the fact or it becomes confusing.

ripcd4

As you can see, the cart numbers go up, and the tracks are in the right order as they appeared on the CD. But the titles for some reason are backward and offset by 1 digit. It also didn’t add in the Album or Artist name either. Sigh…

Highlight all carts from the first disc and click Edit in RDLibrary

ripcd5

Since the track numbers are lost, we are just going to depend on the cart numbers to keep the order of the entire set of discs to be ripped. However, its wise to notate which disc the carts came from. So here we are doing a mass update of the Title, Artist and Album fields for disc 1. Leave everything else blank. Here is the result:

lib1

Keep in mind that the CUT inside the CART will still have the wrong track number named to it. At this time, I don’t have any of ideas to fix this. Perhaps I missing something. This is Rivendell version 2.10.3 BTW.

Repeat this step for the next audio disc, and name that Disc 2 instead. Repeat until all discs are in the system.

Step 4. Create a new Event in Rivendell RDLogManager called “audioBook” that will read an imported music log file

Open up RDLogManager and click “Edit Events” then Click “Add”

logman1

Keeping with our naming theme here, call the new event “AudioBook”

event1

Make sure to select  “From Music” under IMPORT. Then make sure that the AudioBook service is only enabled for this event

event2

Step 5. Create a new Clock in Rivendell RDLogManger called “audiobook” that will insert the AudioBook Event to fill the hour

clock1

Create a new clock called AudioBook

clock2

Click Add and select the recently created Event called AudioBook.  Set the start time to 00:00:0  and end time to  59:59:0

clock3

Make sure to enable AudioBook service for this clock. And also key in clock code AB or whatever you want to use. Hit OK as this is all we need to do for the clock.

 

Step 6. Edit the Grid in Rivendell RDLogManger and select the “AudioBook” clock for all hours

grid1

From RDLogManager click Edit Grids. Select AudioBook and click Edit. From the Edit Grid window select “Change All” Pick the AudioBook clock and click OK. It will ask if you are sure you want to change all hours, click YES.   All hours in the grid should now show the Code AB.

Step 7 Using Microsoft Excel or similar spreadsheet program create the “Music Log” of all the carts in sequential order for the “audiobook” cart group

We are going to take advantage of merging an external reference to get our carts to appear in the log sequentially. So for this we can use Excel or any other like spreadsheet program to speed this up.  In my example I have carts 70000 to 700021 that are my AudioBook.  You may have a larger range so use whatever range includes the carts you wish to play in order.

In Microsoft Excel or like software create a spreadsheet with two columns. The first column will just have 00:00:01. The second column will start of number 070000 and have excel autoadd to 0700021. Make sure to format column B cells as “text” or Excel will drop of the leading 0 – we want to keep this leading 0.

excel1

Once this is done go ahead and click Save As in Excel and set the file name as audiobook.prn and the file type as Formatted Text, Space Delimited. You can keep the .prn extension

excel2

Save this to a place where Rivendell can read it. This can be another folder on the desktop or network share. We will place it in a folder on the desktop called “Muisc_load”

If we open up the .prn file in a text editor it should look like this:

prnview

Step 8 Configure the AudioBook Service in RDAdmin for Music Data Load so that it reads the Music Log load file

services1

Go back to RDAdmin, click Manage Services, Select AudioBook service and click edit:

services2

Here is the fun part! Lets make some changes here.

Change the Log Name Template to AUDIOBOOK%Y_%m_%d so it doesn’t look like your regular service (remember we based it off the main service!)

Change the Log Description Template name so it says AudioBook log for %m/%d/%Y so it doesn’t look like your regular service (remember we based it off the main service!)

Also, uncheck Insert CHAIN TO at log end – we don’t really need this or want it.

Look at the Music Data Import section. For the Linux Import Path reference the location of the folder that the audiobook.prn file resides in. For my example this is located at

/home/rd/Desktop/music_load/audiobook.prn    This may be slightly different if your username is not rd.

Select [Custom] for the Import Template

You must set your offsets correctly. This is telling Rivendell how to read the file we created. If you look at the audiobook.prn in notepad and count the characters from left to right this will start to make sense. Example: The Cart Number appears 9 characters from the left, and the cart number is 6 characters long.  We have one blank space first on the left too

spaces1

So, to find the offset for the cart number count my red ticks – we have 9 of them. To find the length count my blue ticks – we have 6.

We do the same for the hours, minutes and seconds. We ignore the : and treat it as a space. My entries above should make some sense now. We also don’t care about the time, so its the same value for each cart number.

Click OK you are done making changes to services. Now we will see if it works!

Step 9 Generate new log for Service “AudioBook” in RDLogManager

Back to RDLogManager. Click Generate Logs, Select AudioBook as the service and click Create New Log

genlog1

Step 10 Merge music log in RDLogManager after you have generated the log

After you hit Create New Log  you should get the message box “No Exceptions Found” and the Merge Music option should be available as shown:

genlog2

Go ahead and click  Merge Music.

The Red merged dot should go Green. You should then get a report shown with 0 exceptions. If you have exceptions perhaps your audiobook.prn references cart numbers that don’t exist yet – that should be OK.   We will now take a look at the log in RDLogEdit to see the results:

logedit1

Looks good! Notice the cart numbers are in order, just as in the spreadsheet. Nothing is hard timed so we see the time adding up track to track. Neat!

Step 11 Use RDLibrary to create two macros that will cause Rivendell to stop playing out of the main log and switch to playout of the aux1 log and vice versa

Ok if you have gotten this far please applaud yourself!  Our next steps are going to show how we get Rivendell to jump between two logs. In my scenario again, I normally have music programmed for my Main Log. I want Rivendell to breakaway from my Main Log at lets say 10:00AM and I want it to start playing from my AudioBook log that we just made. Then, after about a half hour of the AudioBook log being played, I want Rivendell to resume playback from my main log. And I want to keep doing this each day, picking up where the AudioBook stopped from the previous day.

We are going to use macros to facilitate this for us. Lets create our Breakaway and ReJoin macros.   Open up RDLibrary and goto the Macro group and Click Add

Name the first Macro cart as  “Breakaway to AUX1”

macro1A

We enter three commands into this macro.

The first command  is  PS 1!   Which tells Rivendell to stop playing carts from the Main Log.

The second command is PN 2!   Which tells Rivendell to start playing carts from the Aux1 Log

The third command is SP 1000!  Which tells Rivendell to sleep for 1 second. I find that this command is needed or Rivendell will quickly start and stop the next cart, effectively bumping it from the log.

So when Rivendell encounters this macro in your Main Log at the end of a song, legal ID, liner, etc. It will then start playing carts loaded into Aux1 Log.

Lets make one more macro to do the opposite

Name the second Macro cart as  “Rejoin to MainLog”

macro2A

Its doing the exact opposite as the first macro. Except this macro is placed into the Aux1 Log. So when Rivendell encounters this macro at the end of the audiobook cut, it will stop more from playing and start playback again on your MainLog.

Step 12 Use the RDLogEdit to edit the AudioBook log and insert macros at every 30 minutes

Side note here: I only imported one disc – it only added up to a tiny bit more than 30min. So I have copied the first disc over several times so my Audiobook log is longer. A full audio book obviously will be several hours long.

We need to add our ReJoin macros into our AudioBook log first. Open up RDLogEdit and open up the Audiobook log:

logmacro1

Scroll thru the log and find the first 30min mark. Here in my example cart 070020 will start playing at 30 min and 43 seconds. Which means that cart 070019 is ending at that time. So we want to put our rejoin macro in between 070019 and 070020.  So now we get this:

logmacro2

Now find the one hour mark and add another rejoin macro, and so on for every 30min of time in the log.

logmacro3

Step 13 Use the RDLogEdit to edit your current log for normal programing with macros at the correct time to switch over to the Aux1 log and begin playing

So we now do a similar thing for our MainLog, at the time each day we want to breakaway and play 30minutes worth of audiobook.

Now keep in mind, if your using Rivendell to schedule your music for you there are several ways to make your breakaways stay on time better and show up when you generate your regular log. You can of course create an event, with the breakway macro, have it set as make next with hard time. Then add this event into your clock at 00:30min spot. It all depends on how you have things configured. In this example I am just going to manually add the breakaway macro with a hard time, make next to it breaks away as close to the TOH without stopping the song in progress. You could also add a fadeout command into your breakway macro if you must stay exactly on time.

Here is my regular main log for 10am with the breakaway macro inserted:

mainlog1

Ok. Here you can see the macro at hour 10. I have made log notes that act as “resyncs” (like in Prophet Nexgen).   If the 9AM hour is running long, then any extra songs get bumped so my 10AM hour starts as close to 10AM…   If you don’t have this, then when you put the macro into your log give it a start time of 10AM, with the make next option (it will do the same thing as my resync log note):

macrosync

Step 14 Loading it into RDAirplay

Bring up RDAirplay

loadaux1

Click on the AUX1 Log button, then click Select Log. Pick the AudioBook log and click Load. You get something like this in Aux1:

loadedaux1

If you could see the cart numbers you would see them in order starting at 70000

 

EXAMPLE OF MACROS – Just to show how it works, I am throwing in the macros so that we jump back and fourth between the Main and Aux1 log, picking up where the last one left off.

rdairplayex1

Ok, So once the Coldplay song ends the first track from our audiobook will play.  Once that audiobook track finishes, then it will go back to the main log and play Snow Patrol song. Then when that ends, it will go back to Aux1 and pickup where it left off. Then when that track finishes, back to the main log again.

Here is what is looks like after the first mainlog breakaway macro hits:

rdairplayex2

Now the first audiobook track is playing out of the aux1 log. Lets see what happens after than track finishes:

rdairplayex3

Snow Patrol starts playing.  When the next macro hits, the AudioBook log picks up where it left off. This could be in a few minutes or a few days.

rdairplayex4

One thought on “Rivendell – Scenario: breakaway from normal progaming to playout audiobook chapters, for a length of time and rejoing normal programming. And how to load and playout the audiobook discs/tracks in order

Leave a comment