Beta 5: Wrong file size reported for Virtual CDs

Download and get help for different MediaMonkey for Windows 4 Addons.

Moderators: Peke, Gurus

mikeryan
Posts: 53
Joined: Wed Feb 18, 2004 11:29 am

Beta 5: Wrong file size reported for Virtual CDs

Post by mikeryan »

For tracks on (audio) Virtual CDs, Media Monkey reports the size on the CD, not the size of the ripped track on the disk. This applies both to the File Size column and to the total in the status bar.

I was setting up a playlist for my first attempt to sychronize with my 20GB jukebox and was trying to use the status bar totals to gauge when I had enough on the playlist to fill the player, I'm not sure now if there's a way to do that...

Thanks.
Guest

Post by Guest »

This problem remains in the release candidate - with virtual CDs, MM reports the size on the original disk, not the size of the ripped file. Thus, for example, trying to create an AutoPlaylist to fill up 5GB of a jukebox won't work properly, it will select far short of the necessary files.
mikeryan
Posts: 53
Joined: Wed Feb 18, 2004 11:29 am

Post by mikeryan »

Any plans to fix this?
rusty
Posts: 8393
Joined: Tue Apr 29, 2003 3:39 am
Location: Montreal, Canada

Virtual CD and filesize

Post by rusty »

We're a bit constrained by the current virtual CD implementation, so I need some feedback here:

It's possible to store cached filesize to original filesize field in the Library during caching. However, there are a couple of problems:
-This would introduce a bit of inconsistency into the Virtual CD in the sense that tracks in a CD that aren't on the VCD, show the file size on the CD, whereas those that are stored to the VCD show the size of the compressed file on the Hard drive.
- The size value would stay there forever, even after the file is removed from VCD!

I think that this is a reasonable tradeoff, but I'd like to hear some opinions.

Note: we'd also provide some one-time functionality to update all VCD entries to show filesize on the HD rather than on the CD.

<edit>: we'd also _like_ to provide some one-time functionality.... but hope that someone will come up with a script for this so we can focus on other features.

-Rusty
Last edited by rusty on Sun May 16, 2004 2:45 pm, edited 1 time in total.
mikeryan
Posts: 53
Joined: Wed Feb 18, 2004 11:29 am

Post by mikeryan »

The inconsistency wouldn't bother me any - if you think of the filesize field as "the number of bytes that will be transferred (or whatever) if I use the file", it's not really inconsistent at all. I wouldn't be bothered by stale filesize data when removing tracks from the VCD either, I really have no interest in what the size on the external disk is. Of course, you could clear that field (or update it if the original disk happens to be mounted), but I don't think it's a big enough deal to squeeze in for 2.2. Assuming VCD data is kept in its own DB table (I have Access 97, it won't open the MM DB for me to poke around myself), I'd think the ideal solution would be to save the VCD filesize there and keep the original disk size in the main table, but of course you don't want to make metadata changes at this stage of development.

As long as size-limited autoplaylists work right, I'll be happy... I've been managing my player contents and playlists by hand on fairly complicated criteria, and MM 2.2 will be very close to letting me fully automate it. I've been looking for a media database app for a while (even sketched out a design for building it myself, including the VCD concept), I really appreciate you doing the work for me - thanks!
mikeryan
Posts: 53
Joined: Wed Feb 18, 2004 11:29 am

Post by mikeryan »

Thanks for including this fix in RC2. I had a little glitch - the first CD I tried copying to VCD was Bob Seger's Night Moves - 8 of the 9 tracks show the correct (HD) filesize, but track #8 shows the CD filesize. I tried removing just that track and copying it again, same thing. I don't see anything unusuable about the track - it's one of the shorter ones (but not the shortest) on the album, I didn't get any complaints from MM about trouble reading the disk... Anyway, deleting the album entirely from the library and redoing the copy seemed to work, and the next couple of disks had no problem at all.

On another note - how can I correct all the existing VCD filesizes in my database?

Thanks.
jiri
Posts: 5417
Joined: Tue Aug 14, 2001 7:00 pm
Location: Czech Republic
Contact:

Post by jiri »

Re. the glitch - I don't see any reason for this, if track is correctly copied to the VCD from audio CD, filesize should be properly updated. If you find anything else about it, let me know please.

There currently isn't any way how to update filesize for tracks already in VCD, the only option for now is to copy tracks to VCD again. I hope someone will write a script in case it's needed... :wink:

Jiri
mikeryan
Posts: 53
Joined: Wed Feb 18, 2004 11:29 am

Post by mikeryan »

jiri wrote: There currently isn't any way how to update filesize for tracks already in VCD, the only option for now is to copy tracks to VCD again. I hope someone will write a script in case it's needed... :wink:
Something like this, perhaps?

Code: Select all

'Fixes VCD file sizes

Option Explicit 

Sub FixFileSizes
  ' Define variables 
  Dim list, itm, i, result, fso

  ' Get list of selected tracks from MediaMonkey 
  Set list = SDB.SelectedSongList 
  If list.count=0 Then 
    Set list = SDB.AllVisibleSongList 
  End If  
  Set fso = CreateObject("Scripting.FileSystemObject")
  ' Use progress to notify user about the current action
  Dim Progress
  Set Progress = SDB.Progress
  Progress.Text = SDB.Localize("Fixing VCD file sizes...")
  Progress.MaxValue = list.count
  
  ' Process all selected tracks 
  For i=0 To list.count-1 
    Set itm = list.Item(i) 
    If (itm.Cached) Then
      Dim fileObj
      ' Connect to the FileSystemObject
      Set fileObj = fso.GetFile(itm.CachedPath)
      'result = SDB.MessageBox(itm.CachedPath & ",len="&itm.FileLength&",realLen="&fileObj.Size, mtInformation, Array(mbOk))
      itm.FileLength = fileObj.Size
      itm.UpdateDB
      set fileObj = nothing
    End If
    if Progress.Terminate then
      Exit For
    end if
    Progress.Increase
  Next 

  ' hide progress
  Set Progress = Nothing

End Sub 
My VB is a bit rusty, but it seemed to do the job on the few tracks I tried. Anything obviously missing there?

Thanks.
jiri
Posts: 5417
Joined: Tue Aug 14, 2001 7:00 pm
Location: Czech Republic
Contact:

Post by jiri »

The only missing thing is that MM stores the original filesize to 'OrigFileLength' field in Songs table, it helps to restore the filesize when track is removed from VCD. However, this field isn't accessible directly from scripting, it can be modified only by executing appropriate SQL (and it can be done through scripting).

Jiri
Post Reply