Hello again,

I've had Rivendell in production on our college radio station for almost
two weeks now. It's a beautiful thing, and I'm grateful to all of you for
your help.

---------Short Story----------------
rdairplay consistently sends now/next data via UDP, but the RML fails about
25% of the time for several hours (in two different ways) and eventually
stops entirely.

---------Long Story-----------------
I configured rdairplay to send now/next information to a text file using
this RML...

RN echo "QQTITLE%tQQART%aQQALB%lQQCART%nQQEND" >/tmp/nowplaying.txt !

...and then wrote a small perl script to monitor it for changes, then do a
variety of things (tweet it, post to our website, log it, etc)

Most of the time it works, but occasionally it fails in one of two ways:
Sometimes rdairplay sends the RML string, but it is devoid of values (that
is, the string which appears in the file is QQTITLEQQARTQQALBQQCARTQQEND ).
Other times, no information is sent at all, so the previous now/next data
remains in the text file for several songs in a row.

Using rdlogedit, I reviewed my log for the day to see which songs were
playing at those times, speculating that it was a special character that
was either breaking RML or bash, but many times it was a plain-vanilla
artist/album/song (the sort of thing that would match /^[a-zA-Z0-9]+$/).
Also, some songs with heavy use of special characters appear correctly in
the text file, so I discarded this hypothesis.

In syslog, ripcd appropriately reports when it receives RML, and does not
log an error when a song plays but fails to send now/next data. This leads
me to believe that either ripcd is dropping the input, or rdairplay is
failing to send it.

As a test, I configured rdairplay to also send the same now/next string via
UDP to localhost on port 10010, then set up a simple UDP listener to
monitor it:
socat -u -d -d -d UDP-LISTEN:10010,reuseaddr,fork STDOUT

Sure enough, the now/next data is received correctly 100% of the time, even
when the RML command is not sent/not received/fails/etc

The UDP solution is a totally via alternative, so I'll probably just
rewrite my perl script to consume that instead of the text file, but I was
interested if anybody has had similar experiences, or theories.

Nate "DJ Homebody" Hartmann
_______________________________________________
Rivendell-dev mailing list
[email protected]
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev

Reply via email to