PearlLib and Tools

Because Open Source is good Karma.

PearlLib is only really interesting to programmers — for everyone else, there's the programs that use PearlLib. Many of these are listed below.

All the files listed below are stand-alone archives of both the tool in question and the relevant parts of PearlLib. You don't need a separate PearlLib JAR to use them. In the case of the Source downloads, they contain just the sources necessary to build the Tool itself; for complete sources, check the PearlLib page.

All tools currently require Java 1.2 or later.

OpenTaxi

This is a GUI app very similar to Rio Taxi Lite, except that it caches all song data between connections and is less than 1/10 the size. I wrote this tonight as a test case for my library.

For once, you can actually just double-click on the JAR file. Or, if you're on a command line, java -jar opentaxi-versionyoudownloaded.jar.

You'll need Java (obviously), and you'll need to be able to see the Karma over Ethernet. No USB support.

Taxi Tool

Here's a simple command-line tool for accessing Taxi files on your Karma. It caches the file database on your Karma locally, so repeated accesses won't each have to download the full file. (About time, huh?)

I wrote TaxiTool as a test framework for PearlLib Layer II. Needless to say, it works. (It's also 40% the size of the equivalent PearlLib Layer I tool.)

To use, type: java -jar taxitool-versionyoudownloaded.jar -- it will give you help on the required arguments.

You'll need Java (obviously), and you'll need to be able to see the Karma over Ethernet. No USB support.

Like all of my Karma tools so far, this is a command-line utility. If you don't know what that is, you probably don't want it.

Lost File Scrubber

Here's a scrubber to solve the "lost file" problem on the Karma. It will scan your device for lost files, report them, and give you an option to erase them.

Unfortunately, as a side effect of the files being "lost," it can't actually show you what files they are. The only way to tell this is to compare the file FIDs against a previous backup of your database, which you can do with the Client. This tool is intended to be dead simple and easy to use.

To use, type: java -jar lostscrubber-versionyoudownloaded.jar

You'll need Java (obviously), and you'll need to be able to see the Karma over Ethernet. No USB support.

MEGA-IMPORTANT NOTE! READ THIS! In case the line above wasn't clear... To use, type: java -jar lostscrubber.jar, emphasis on the type. Double-clicking this JAR file will not do anything interesting, since it's a command-line application and thus has no graphical interface.

The Client

The Client (org.biffle.cliff.pearl.Client) is simply a testing tool for me, but is quickly becoming rather useful. In particular, I've been using 'list' to find lost files on the device (files that have lost their metadata and are inaccessible in both the system UI and RMML -- look for titles reading "null"), and then 'delete' to remove them. Also, 'unbad' is very useful to fix the annoying firmware glitch that marks a file bad when a transfer interrupts its playback.

Supported commands in the current revision:

  • help: displays command help.
  • about: displays program info.
  • auth {password}: attempts to authenticate with a given password.
  • delete {fid}: deletes a file by FID.
  • info {fid}: displays file info by FID.
  • list: lists all files, displaying FID and title.
  • list {key}={value}: lists all files where the field 'key' matches 'value'. For available keys, see the property file docs.
  • list lost: lists all files that have been 'lost' in a rescan.
  • show: lists available system settings.
  • show {setting}: shows the value of a system setting.
  • storage: lists available storage devices.
  • storage {index}: displays info on a specific storage device.
  • system: shows information on the system software.
  • unbad {fid}: clears a file's "bad" bit.
  • quit: flosses your dog.

This cute little app has gotten useful enough that I've decided to provide it as a separate download.

To run it, simply type "java -jar client-versionyoudownloaded.jar IP.of.your.karma".

Please read the disclaimer.

Links
About
What?
News
Check for updates and additions.
PearlLib
Downloads and docs for the Java library.
Tools
Karma Tools.
Documentation
The Pearl protocol dissected.
Author
More software from Cliff L. Biffle.
See Also
KarmaLib
Same goals; different code.
Rio Audio
Manufacturer of the Rio Karma.
Riovolution
Rio-owner community forums.