[rfu-automation] progress on robo DJ

Joe Futrelle futrelle at shout.net
Mon Jul 3 11:48:41 CDT 2006


This rather long and technical note is a report on what I've been  
doing with the robo-DJ. If you don't want technical details, skip it-- 
the basic gist is that I'm making enough progress that I should be  
able to demonstrate something at the next automation group meeting,  
whenever that is.

...

I worked on the robo-DJ prototype yesterday and discovered some  
really nice-sounding Microsoft text-to-speech stuff and an easy-to- 
use Python interface to it. Then I modified the prototype so it  
backannounces each track.

So the basic capabilities required by the robo-DJ are there. The  
problem comes now with integrating it into the automation workflow.  
I'll attempt to summarize the capabilities and issues.

Capabilities:
- can find today's Zara log file if it knows which directory Zara  
keeps its logs in
- can tell from the log file the artist, album, and track name of the  
currently playing track
- can restart Zara if it detects a track or album name with a given  
pattern in it (like "starts with '[explicit]'") within 1s or however  
often we ask it to check the log
- can back-announce the previous song (I could easily rewrite it to  
forward-announce but I understand back-announcement is preferable)

Issues (and possible fixes):
- won't switch to a new log file after midnight (I can fix that in my  
script)
- can't distinguish iTunes from non-iTunes tracks (I can fix that in  
my script)
- when Zara restarts, its volume slider is up (I don't know how to  
fix that because it's a Zara issue)
- Zara doesn't pause to wait for the back-announcement (I have a  
complicated fix for that one, see below)

Pauses can be accomplished by inserting silent tracks of the  
appropriate length into the playlist, and having the robo-DJ wait  
until it sees one of these playing to speak. The problem is that  
these will need to be fixed-length. If I can figure out how to get  
the robo-DJ to save its speech audio as a file, it could generate  
backannouncements and insert them into a playlist. I could then write  
a Zara "launcher" that would read the playlist you want to launch  
with, make a copy of it, generate the backannouncements, insert them  
into the right places in the copy of the playlist, and launch Zara  
with the modified copy of the playlist.

--
Joe Futrelle
Person



More information about the rfu-automation mailing list