SlimRoku - SlimServer based music player for the Roku PhotoBridge HD1000
[download] [FAQ] [features] [installation] [remote operations] [command-line interface]
[external control protocol] [screenshots] [SlimRoku.roku File Builder] [donate]

SlimRoku is a music player for the Roku PhotoBridge HD1000 that uses SlimServer as its media library and server. SlimRoku is designed to work with SlimServer version 6.5 and higher. While it may work with earlier versions, those versions are not supported.
Developed by TheEndless.

Download: [Version History]
SlimServer 6.5
SlimRoku v1.6beta
SlimServer 6.2
SlimRoku v1.5beta3
SlimRoku v1.5beta2
SlimRoku v1.5beta
SlimRoku v1.0beta2
SlimRoku v1.0beta
SlimRoku v0.9e
SlimRoku v0.9b
SlimServer 6.1
SlimRoku v0.8b
SlimRoku v0.7c
SlimRoku v0.6b
SlimRoku v0.5b
SlimServer 6.0
SlimRoku v0.1  

Source Code
SlimRoku v1.6beta2 Source

  Purchase something from my Amazon Wishlist!

Features:
  • Music library browsing by artist, album, genre, cover art, and folder
  • Full support for both dynamic and static playlists
  • Internet Radio browser (including podcast directories, live music archive and XM Radio)
  • Cover art support
  • Song or Playlist repeat
  • Playlist shuffle by song or album
  • Built-in song information screensaver
  • Automatic SlimServer discovery
  • Ability to hide the application so it's possible to run other applications while listening to music
  • Ability to synchronize with SoftSqueeze (and potentially the Slim Devices SqueezeBox)
  • Library searching (via the LCD Display Window)
  • Support for 16kHz and 20kHz sample rates in audio streams

Installation:
  • To install SlimRoku, download the zip file.
  • Copy the contents of the zip file to a folder in the root of one of the shared folders accessible to your HD1000.
    NOTE: To ensure full functionality, please preserve the folder structure.
  • SlimRoku's icon should now show up when you select that share from your HD1000.

Special Notes:
In order for SlimRoku to work properly, you'll need to make sure the following ports are open:
  • 3483 UDP - SlimServer discovery
  • 3483 TCP - SlimServer communication
  • 9000 TCP - Audio stream playback and cover art display
  • 9090 TCP - Music library access
SlimRoku is still an alpha/beta release. There are plenty of bugs, so please don't be discouraged if you run across something. Your feedback is essential to making SlimRoku more stable.

Known issues:
  • Sporadic behavior while SlimServer is building the library
  • Screen may flicker when painting while the emulated LCD is scrolling

Remote operations:

Command-line interface:
SlimRoku has several command-line flags (the command-line can be specified either manually via telnet, or by editing the SlimRoku.roku file). To add a command-line option permanently, locate the SlimRoku.roku file and open it in a text editor that supports unix format such as TextPad. Locate the line that reads "$SXPATH/SlimRoku.app" and add the flag(s) to the end of it.
    SlimRoku.app [SlimServerIP] [-Debug] [-EnableWrapAround] [-UseLargeFont] [-LargeCoverArt] [-NoInfoOnHide] [-UseXMLInLibrary]
                        [-Screensaver=minutes] [-RepeatMode=mode] [ShuffleMode=mode] [PlaylistId=id] [SlimCLIPort=port] [SlimWebPort=port]


    SlimServerIP
        The IP address of the SlimServer. If no IP address is specified, SlimRoku will attempt to locate the server automatically.

    -Debug
        Generates a debug.txt file in the app folder.

    -EnableWrapAround
        Changes wrapping behavior of lists in Library view.

    -UseLargeFont
        Enables larger fonts in the application.

    -LargeCoverArt
        Displays larger cover art in the Cover Art browser

    -LowContrast
        Uses a slightly darker font to help reduce screen retention on some plasma displays.

    -NoInfoOnHide
        Specifies that no info should be displayed when the application is hidden.

    -NoSSOnHide
        Specifies that the screensaver should be disabled when the application is hidden.

    -UseXMLInLibrary
        Forces the use of the XML interface to SlimServer rather than the CLI.
        Use this flag if SlimRoku crashes often while browsing your music.

    -SSTransport
        Enables Play/Pause/Previous/Next controls while the screensaver is active.

    -Screensaver=minutes
        Specifies how many minutes of idle time should pass before the screensaver kicks in.  Default is 10 minutes.

    -RepeatMode=mode
        Specifies the repeat mode SlimRoku should start in:
          0 = None
          1 = Current Song
          2 = All

    -ShuffleMode=mode
        Specifies the shuffle mode SlimRoku should start in:
          0 = None
          1 = Song
          2 = Album

    -PlaylistId=id
        Specifies the id of a playlist to start playing on start up.
        You can determine the playlist id by launching SlimRoku and opening the Playlists window. Once open, press
        the Info button to display the playlist IDs to the right of the playlist names. Alternatively, you can get
        the id via the SlimServer web interface's Browse Playlist page. When you mouse-over a playlist entry, the
        URL should appear in the status bar.  The number immediately following "&playlist=" in the URL is the id of
        that playlist.

    -SlimCLIPort=port
        Specifies Command Line Interface port for SlimServer.  Setting this option is only necessary if you have changed
        the port via the web interface.

    -SlimWebPort=port
        Specifies web server port for SlimServer.  Setting this option is only necessary if you have changed the port via
        the web interface.

    -XMUser=username
        Specifies username to use for XM Radio.

    -XMPassword=password
        Specifies password to use for XM Radio.

External Control Protocol:
SlimRoku supports several External Control Protocol commands. The syntax for ecp is as follows:
	ecp SlimRoku <command>
The following ecp commands are supported:
    quit
        Stops playback and exits SlimRoku.

    hide
        Switches SlimRoku to mini-mode.

    unhide
        Restores SlimRoku from mini-mode..

    play
        Starts playback.

    pause
        Toggles play/pause of the current music playback.

    stop
        Stops playback.

    playbackposition
        Returns a string indicating how many seconds have elapsed in the currently playing track.

    currenttitle
        Returns the title of the currently playing track.

    currentartist
        Returns the artist of the currently playing track.

    currentalbum
        Returns the album of the currently playing track.

    currentyear
        Returns the year of the currently playing track.

    ping
        Returns "pong" if the application is running.

Screenshots:

Now Playing Interface

Music Library Interface

Manage Playlist Dialog

Playlists Dialog

Browse by Cover Art

Album Information Dialog

Cover Art Filter

Internet Radio Browser

Screensaver

Mini-Mode

Donate:
If you're interested in donating money to support the development effort and you have a PayPal account, you can do so by clicking the "PayPal Donate" button below.
Alternatively, if you do not have a PayPal account or would prefer to show your support/appreciation without directly donating money, I have set up an Amazon Wishlist from which you can purchase items.
  Purchase something from my Amazon Wishlist!