Tuesday, May 24, 2005

Sunday, May 22, 2005

New blog

I've created a new blog, PhotoBabbler. It will consist of nothing but pictures taken from my cell phone and posted by emailing directly from my phone. If I am feeling energetic, I might even type a word or two describing the picture, but don't count on it.

Tuesday, May 17, 2005

Yahoo Music Engine Plugins

As I discussed yesterday, I recently downloaded the Yahoo Music Engine (YME) as a part of my search to replace Windows Media Player as my media library management software. One thing I failed to mention about the YME was that it has a completely customizable plug-in architecture. This allows anybody with moderate software development skills to write their own code that runs inside the YME.

You want the YME to do something, but it doesn't do it "out of the box"? Write it yourself. Sounded interesting, so I gave it a go.

As a test, I wanted to see if I could search my library for tracks who's metadata did not contain a URL for album art. (I'm kind of picky about little things like that. When I play a song, I want the album cover to be displayed.) Since the YME automatically attempted to update the metadata with this information when it created my library, I was curious to see how efficient it was.

I assumed that to create a plugin, I was going to have to brush the dust off of some of my old C++ books. It's been a while since I've written C++, but I was up for it. As it turns out, creating a plugin couldn't be easier. The Yahoo team was kind enough to expose almost the entire programming interface through COM components. Better yet, they have created a mechanism by which YME will host an HTML page thereby allowing you to create simple HTML forms and use Javascript to access the Engine's API.

Anyway, I didn't spend much time on it, but I did get some results. The image below is a screen capture of my plugin after if performed the search in my library.





So that you can see how little code I wrote, here's the entire source:

<HTML>
<BODY>
<script language="javascript" src="yme.js"></script>
<object classid="clsid:5F810AFC-BB5F-4416-BE63-E01DD117BD6C" height=90% width=100% id=datagrid VIEWASTEXT>
<PARAM NAME="CheckBoxes" VALUE="0">
<PARAM NAME="ShowAlways" VALUE="1">
<PARAM NAME="FullRowSel" VALUE="0">
</object>
<br><br>
<A href="javascript:startSearch()">Search</a><br>
<script>

datagrid.AddColumn("Artist", 150, 0, 0);
datagrid.AddColumn("Album", 150, 0, 0);
datagrid.AddColumn("Track Title", 150, 0, 0);

function startSearch()
{
mediaDatabase = window.external.MediaDatabase;
allMedia = mediaDatabase.GetAllMedia();

itemIndex = 0;
for( var i = 0; i < allMedia.Count; i++ )
{
media = allMedia.Item( i );
metaData = media.Metadata;

imageUrl = metaData.GetPredefinedValue( METADATA_IMAGE );

if( imageUrl == null || imageUrl.length == 0 )
{
datagrid.AddRow();
datagrid.SetRowData( itemIndex, 10 );
datagrid.SetElement( itemIndex, 0, metaData.GetPredefinedValue( METADATA_ARTIST ) );
datagrid.SetElement( itemIndex, 1, metaData.GetPredefinedValue( METADATA_ALBUM ) );
datagrid.SetElement( itemIndex, 2, metaData.GetPredefinedValue( METADATA_TITLE ) );
itemIndex++;
}
}
}
</script>
</BODY>
</HTML>


I also had to manually add a key to the registry that enabled the "Al's Plugin" item to show up in the left-hand navigation pane of the YME.

All in all, I am pretty impressed. I might just keep it around a little longer.

Sunday, May 15, 2005

Music Management Software

About a week and a half ago, I decided to replace my current music management tool - Microsoft Windows Media Player. Media Player is fine for simply playing music, but I found it very cumbersome for managing portable devices like our Dell DJ and Creative Muvo Micro N200.

The leading software in the non-iPod/iTunes market is Musicmatch Jukebox. I used this a few times a couple of years ago, and at that time, I thought it sucked. But, being open minded, I decided to give it a try. After a few days of using Musicmatch I decided it was significantly better than Media Player, and that it would now become my music manager of choice. It has quite a nice user interface, and it is extremely simple to synchronize my portable devices.

My only complaint about Musicmatch is that it does not have the ability to resample my media files to a lower bit-rate. Most of my music is encoded in WMA format at a relatively high bit-rate. I'd like to reduce the bit-rate to increase the number of tracks I can copy to my devices. The Musicmatch documentation states that WMA files can no longer be resampled (I guess this was possible in previous versions) because of license arrangements with Microsoft. Hmmm...

A few days after becoming satisfied with Musicmatch, I learned of Yahoo's Music Unlimited service and its accompanying Yahoo Music Engine software. I decided to give it a try. I originally decided to try only the Music Engine software. I didn't think I'd care for the music "rental" business model...

The Music Engine software is mediocre. It does not have as many useful features as Musicmatch, but it does have a few useless features that Musicmatch does not offer (like integration with Yahoo Instant Manager - big deal).

I then decided to give the Music Unlimited service a try. With a 1 week free trial, I figured it couldn't hurt. What I found is that the service is extremely addictive. Heidi and I just sat there for an hour and typed in artists and songs, found them and played them. It was pretty fun. At just $5 a month ($60 per year, billed monthly), it's hard to complain about the price. You can download and listen to any song in their library provided you pay the monthly fee.

I ran in to one serious issue with the Unlimited service though. The tracks downloaded are NOT compatible with either of my portable devices. That is a serious drawback. The list of supported devices is still pretty small but is sure to grow as the service catches on. The newer Dell DJs support the format, but my model is not supported. And from what I've read, a firmware update will not be offered that would make mine compatible. I can probably sell my DJ for about $190 on eBay and get a new one (with 30GB vs my 20GB) for about $230, but I haven't determined if it's worth it yet. I haven't learned if the Muvo will eventually support the format, but I doubt it. Besides, since our Muvo is only the 256MB model, it would quickly get filled since the downloaded tracks from the Unlimited service cannot be resampled to smaller bit-rates.

So, the jury is still out. For ease of use, features, and performance, Musicmatch is the clear winner. However, the Music Unlimited service is quite attractive. It is possible to use the Music Unlimited service for music download, and Musicmatch for music management (Musicmatch honours the DRM built into the downloaded tracks), but I'm looking for a single solution.

Guess I will just have to get an iPod and use iTunes... right Matt?