Skip to content
Utilities for interacting with the Roku Soundbridge (and maybe other servers which talk RCP).
Perl Shell
Pull request Compare This branch is 32 commits behind tsibley:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
assets
docs
lib
xml
README
curl-play
find-module-index
find-sink-input
play-preset
play-url
soundbridge-growl
soundbridge-upnp-play
soundbridge-upnp-stop
stream

README

These utilities are pretty tailored to me right now and could use librarization
and genericizing a bit.

That said, they're quite simple and easy to modify.

Usage examples:

$ play-preset
1. 88.5 XPN - Philadelphia
2. Folk Alley - WXPN - Philadelphia
3. NPR
4. 89.7 WGBH - Boston
5. 89.9 KCRW - Santa Monica
6. 89.9 KCRW Eclectic Music - Santa Monica
7. 88.5 WFCR - Western Mass

$ play-preset 6
Playing 89.9 KCRW Eclectic Music - Santa Monica... OK

$ play-preset folk alley
Playing Folk Alley - WXPN - Philadelphia... OK


$ soundbridge-growl &
# Uses Ubuntu's growl-like notifications to show the current song.
# Currently has some KCRW-specific tailoring.


$ soundbridge-upnp-play
Playing 'streaming' over the soundbridge

$ soundbridge-upnp-play speakers
Playing 'speakers' over the soundbridge

# Plays UPnP audio streams served by Rygel's Gst Launch plugin.
# I have the following pulseaudio and rygel config snippets below.  See
# `stream` for how I put it all together.

$ cat ~/.config/rygel.conf # trimmed
[GstLaunch]
enabled=true
launch-items=streaming;speakers
streaming-title=Audio from blip
streaming-mime=audio/x-wav
streaming-launch=pulsesrc device=streaming.monitor ! wavenc
speakers-title=Audio from blip's speakers
speakers-mime=audio/x-wav
speakers-launch=pulsesrc device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor ! wavenc

$ tail -n 3 /etc/pulse/default.pa
# Setup a streaming sink
load-module module-null-sink sink_name=streaming format=s16be channels=2 rate=44100 sink_properties="device.description='Streaming'"


$ soundbridge-upnp-stop
# Stop the music and go home


`stream` is very specific to my setup and takes care of all the funny business
of redirecting pulse audio streams around to the various devices I care about.
Namely, the work airtunes speakers, my soundbridge, and my local laptop
speakers.  It's a good example of how to move all that audio around and start
and stop network streaming.  Examples of how I use it:

$ stream home
Playing 'streaming' over the soundbridge
Streaming Banshee (18) to home (streaming)

$ stream off
Streaming Banshee (18) to off (0)

$ stream work
Streaming Banshee (18) to work (raop.Conference-Room.local)

$ stream work chrome
Streaming chrome (21) to work (raop.Conference-Room.local)

$ stream off chrome
Streaming chrome (21) to off (0)

$ stream preset npr
Playing NPR... OK
Something went wrong with that request. Please try again.