Music Recording Database Browser Tests

History

The last time I was burgled, the policeman laughed when he saw my list of stolen CDs. He laughed out of sympathy for the criminal trying to dispose of such a pile of untrendy music. I lost out big time on the insurance and vowed to keep even better records of what I owned for the next time my neighbourhood druggie needs some quick cash. (The last guy is in gaol for three years !)

I wrote the CORBA/Java 1.1 music browser as an exercise and feel proud that it works but don't believe its much of an advance on the plain text. It works best with Netscape's latest release, fully patched to support JDK 1.1. If you live behind a firewall that doesn't allow IIOP (like HTTP) through, then you are sunk and can never witness this marvel. Netscape's communicator has a CORBA orb built in so startup should be very quick. Anyone using a less able browser will have to use the special slow-loading pages.

For sheer vanity, I invented my own rating scheme to remind myself what I used to like once the mad-cow disease has set in. The highest mark is 9 and lowest 1 (0 means no idea yet), though I've disposed of everything below 3. Some albums have some great tracks on but get a low rating because I was trying to rate just the album, not the artist, or the best bits. I'll fill in the descriptions one day and maybe then this exercise will be useful for you out there, not just the insurers. Have fun, and don't laugh too loud.

Text Only List

I used to have a CORBA server for my music collection which has been cut since my departure from the EBI :-(

Text which used to only be for those in the stone age.<

CORBA

You should be able to find more about CORBA by following links on my home page

Here is the Interface definition for the music database server that the client connects to. You could write a much better one if you wanted, and connect to any implementation of this database. Imust implement a client side sort sometime.



// A first attempt at defining an interface definition for a
// minimal music database client/server application

module CDDB {

typedef sequence <string> ArtistList;
typedef sequence <string> RecordingList;

struct ArtistInfo {
string name;
short musicStyle;
RecordingList recordings;
};

struct RecordingInfo {
string name;
string artist;
short medium;
short rating;
string label;
string referenceID;
float cost;
string description;
//long dateBought;
//string shop;
};

exception UnknownName {
string given;
};

interface SimpleMusicDB {
ArtistList getAllArtistNames(); // Returns the names of all artists

//ArtistList getArtistNames(in short style); // Just for example ROCK musicians

ArtistInfo getArtistInfo(in string name)
raises(UnknownName);

RecordingInfo getRecordingInfo(in string name)
raises(UnknownName);
};

};



My Home EBI Home email jparsons