About

The Roku Soundbridge was a Network Media Player capable of streaming music from a media server, such as those bundled with iTunes or Windows Media Player.  It was superceded by the Soundbridge Radio, which included an AM\FM receiver, which itself was superceded by the Roku streaming player, which also does video.

The Soundbridge was a pretty neat piece of kit, attractively designed and robust, although perhaps a bit overpriced and ahead of its time.  I own one and have written a .NET library to make interoperating with the Soundbridge easier.

The original utility I wrote was an alarm that turned the Soundbridge on and played a particular playlist on a particular server, but I re-architected and re-wrote it so that I could have a convenient compiled library accessed from a Powershell script run by the Windows Task Scheduler.

The library isn't much at the moment.  There's the TcpSoundbridgeClient that thinly wraps the commands of the RCP protocol, and offers the full functionality.  There is also the Soundbridge class that lies at the root of an object model based API for the Soundbridge.  The Soundbridge class and it's consitutent classes wrap the TcpSoundbridgeClient.  The Soundbridge class currently supports setting the power state (i.e. turning the screen on and off), connecting to a media server, listing items in containers and playing songs.

Platform: Microsoft .NET 3.5 & Powershell 2.0

License: You are more than welcome to use this to take over the world, just don't come crying to me when that doesn't work out for you. Install at your own risk, don't claim it's your work, and don't charge other people for it.

Download

Documentation

It's pretty simple really.  To use, create an instance of SoundbridgeClient with the IP Address and port (5555 by default) of your soundbridge and then call the methods named after the RCP commands you want to pass.  Methods corresponding to RCP commands that return lists return string arrays of the result.  No checking is done on the return values.  I expect to implement that in the object model.

A Powershell script (alarm.ps1) is included to demonstrate how the library can be used in Powershell (Version 2.0).