Page 1 of 1

Semi-obscure WAV tag bug

Posted: Mon Aug 14, 2006 3:57 am
by unzerpum
Hi, all --

Jeez, this one was painful to track down...

I've uncovered a bug in which MediaMonkey randomly fails to read the tags on certain MusicMatch+GoldWave-tagged WAV files.

I have a library of about 2500 WAV files, tagged at various times with various programs over the last three years. While using the 2.5.4.971 beta build of MediaMonkey, I saw that, sometimes, certain WAV files would have blank artists, albums, etc. while others would not. This did not happen reliably in all cases. Sometimes all of the files would be correctly displayed, and other times most of the files would be bad. Sometimes, the file would be displayed incorrectly in the list, but bringing up the file information via "Properties" would cause the correct tag information to load!

I could reproduce the problem most reliably by viewing the WAV files directly from the "My Computer" node (as opposed to adding the files to the database). Bringing the files up in the playlist also produced problems.

I noticed that some files consistently came up fine, while others were more troublesome. After tearing out the last few remnants of my hair (and writing a quick and dirty WAV tag reader in C++), I discovered the common element. The problem files all had:

1) Fully filled-in MusicMatch tags (using the strange ID3 tag block unique to MMJB), and
2) A single LIST INFO block containing a single "ISFT" tag with GoldWave copyright information, and no additional artist/album information.

At some point in the past, GoldWave automatically added copyright information to WAV files when you edited them. This feature was removed from GoldWave at least two years ago, but many of my WAV files are older than this.

I've put a short sample WAV file with GoldWave+MMJB tag info here:

http://www.unzerpum.net/temp/GoldWaveTag.wav (66K)

Remember, this happens randomly. Sometimes MediaMonkey will correctly read the tags, and sometimes it won't.

Hope this helps. If you can't reproduce this and/or need a debug log, let me know. I haven't tried reproducing this problem with the debug build yet.

--- Scott

Posted: Thu Aug 17, 2006 3:30 am
by Peke
Thank you very much, you save me lots of work :)
Could you suggest what to do?
MM uses priority to LIST chunk and if it finds it than it is read first, than MMJB,... MM tries to fill Info According to existance.
Hmmmmm... It looks that MM recognizes Blank fields(or space filled) as correct info so that it skips fill those tags from For example MMJB fields.

Will be fixed in Next release. Could you provide several small Files with same problem so that we can test it better?

Posted: Thu Aug 17, 2006 2:06 pm
by unzerpum
Hi, Peke --

I've sent you a private message with seven sample WAV files.

For what it's worth, the C++ program I wrote works something like this (in pseudocode):

Code: Select all

rewind wav
clear map (a collection of tags + data)
foreach block in wav
  read block
  if block is LIST INFO
    foreach tag in block
      read LIST INFO tag, data
      add/replace tag and data in map
    end foreach
  else if block is ID3
    foreach tag in block
      read ID3 tag, data
      convert ID3 tag to LIST INFO tag (TIT2->INAM, TPE1->IART, etc.)
      if conversion succeeded
        if converted tag is not in map
          add/replace converted tag and data in map
        end if
      end if
    end foreach
  else
    skip
  end if
end foreach
convert map to external format (INAM->Title, IART->Artist, etc.)
This algorithm seems to correctly read all of the WAV tag data I have, including really weird files edited with three different editors. I don't know how easy or difficult it would be to do this in MediaMonkey.

Thanks,

--- Scott

Posted: Thu Aug 17, 2006 4:28 pm
by Peke
Same thing is used In MM Also with additional
Compare like: If LIST exist and ID3 Info Differs use ID3, .... There is small bug I think :)

BTW THX for files I've Downloaded them and work with them on solve.

Posted: Sun Aug 20, 2006 12:02 pm
by Peke
Fixed in next release.

Fixed in 2.5.4.974 (RC-1)

Posted: Thu Aug 24, 2006 8:41 pm
by rusty
fyi, this issue has been fixed in the latest 2.5.4 build (available in the beta forum).

-Rusty

Posted: Mon Aug 28, 2006 4:09 pm
by unzerpum
I've tested the latest build... most of my WAV files now read correctly. There's a category of files which do not, however. Peke, I've sent you a message with an example file... the problem seems to occur with WAV files containing LIST chunks that are not INFO chunks ('cue ', 'adtl', etc.).

--- Scott

Posted: Mon Aug 28, 2006 5:14 pm
by Peke
It will be ready for next RC.
BTW Than you for supporting me with Non-Standard files so that i can Improve MM.

WAV Tags

Posted: Mon Aug 28, 2006 5:58 pm
by sunspot
Thanks for working on this, Peke. I wish I could help, but I converted all of my WAVs to FLAC when the latest beta came out. There were a few glitches, but I was able to fix everything that went wrong manually in an hour or so, plus I corrected a lot of other problems with my metadata that weren't really visible in MusicMatch, but became obvious in MediaMonkey.

MediaMonkey is so much better at managing a large library than MusicMatch it's not even funny. Not that MusicMatch was awful - I think it's better than iTunes in many respects - it's just missing a lot of stuff and a lot of views that MediaMonkey offers.

Posted: Tue Aug 29, 2006 1:37 am
by unzerpum
Seconded! Thanks for all the hard work! It's folks like you that make MediaMonkey great.

Posted: Tue Aug 29, 2006 3:36 pm
by unzerpum
I am still finding some issues... see my post here:

http://www.mediamonkey.com/forum/viewto ... 1&start=18