Old 04-17-2008, 04:06 AM
pienjo pienjo is offline
Junior Member
Join Date: Apr 2008
Posts: 1
Default Retreiving "go list" or song ratings in MSC mode

Hi there,

I posted a similar question on the Sandisk forum, but didn't really get the answer I was looking for, so I thought I'd try here:

Is there a way to retrieve the "go list" or the song ratings while in MSC mode? The reason I ask is this:

I recently obtained a 2GB Sana Clip, which I intended to use on on my commute to work (~25 minutes by bike). However, recent policy changes at work means that I'm no longer allowed to store MP3s on my workstation there, which means that I find myself using my clip a lot more than I originally intended, lest I keep listening to the same songs over and over again.

I had a Cunning Plan (TM) to write a small application (I'm a programmer by trade) that will maintain a portion of my clip (say, half of it) and put a random selection of music on there every time I connect. This isn't too hard; in fact it's about done. However, I have a huge MP3 collection, and not all of it is music I appreciate as much as I do others, so I'm toying with the idea of making the "random song collection" a weighed random - much like many "smart shuffles" on programs like winamp and iTunes. Popular songs get selected moreoften, inpopular songs don't. This, of course, requires rating my songs, and here's where I'm hitting a snag. It would be very cool if I could rate things on my clip, and tell it "This is a neat song, I wouldn't mind hearing this one moreoften" or "Oh, please never play this one again, kthanksbye". The alternative is doing this administration while I'm back home, and experience has shown that this doesn't quite work out

The "negative feedback" part is easy. All my program needs to do is keep a record of what songs it uploaded to my clip, and check the presence of those files once it gets reconnected. When I dislike a song, I delete it on the clip. My program will notice this, and update its own stuff accordingly. "positive feedback" is proving to be a bit of a problem,
though. As far as I can tell, I have two options:

1) Use the built-in rating system (Which is targeted for Rhapsody, I think, but I'm not from the US so don't have Rhapsody coverage to begin with)
2) Use the Go-list. I could use the presence of a song in the go list as an indication of positive feedback. This is especially easy in combination with press-and-hold.

I'll settle for any one of these; 1) would be best of course, since it allows for a little bit of nuance.

So far I haven't been able to retrieve this information; the fact that I'm using MSC mode probably isn't helping any, but I haven't been able to get my clip to synchronise in MTP mode (I'm not using NetBSD, not MS Windows)

Any information would be helpful.
Reply With Quote

Advertisement [Remove Advertisement]

Old 11-26-2009, 07:26 AM
hanselda hanselda is offline
Junior Member
Join Date: Nov 2009
Posts: 5
Default The format of MTABLE.SYS

Yes it is possible to retrieve the rating from MSC mode. One has to dig into the format of the MTABLE.SYS file under the root directory. The format is basically as follow:

The rating information starts from address somewhere aound 0xA4130, each rating occupies 4 byte, first one is always 0x80, the next one is the rating 0x00 to 0x05, followed by two byte 0x0000. To find out which track this rating corresponds to one has to look into the starting of this file, where the corresponding track information is listed in the same order. The information is stored in the following format:

'path' 0x0000 'filename' 0x000000 "track name" 0x0000 "artist" 0x0000 "album" 0x0000FFFF0000 "genre" 0x0000 'track/total(8 byte long)'

Word in '' means the encoding is in ASCII or other extensions compatible to vfat.
Word in "" is in UTF-16.
The path is expressed as, for example 'mmc:0:\MUSIC\NAME'
The example for 'track/total' is '00000410', means the track is 4/10

A example for such usage is shown in this script:
scrobble for sansa clip to

I have not worked out the to-go list yet. I think it is also in the MTABLE.SYS, should start somewhere around 0x75300. I will post the result here if I can find it out.
Reply With Quote


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -5. The time now is 04:35 AM.