-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace ID3Tag with own-coded thing #31
Comments
APEv1and2tag.samples.zip |
Oh, thanks, useful thing! I need to verify my code better... |
Okay, I re-made some tags: |
Okay, it's not a fault of tagger, it's a fault of music_mpg123.c as it's doesn't prevents library to access tag areas, therefore, MPG123 gets a fail to parse frame on a place of some tag. To fix this, I need to make the limitter that will don't allow mpg123 go more than given limit to avoid it see any tags. |
So, the only one minor thing is left - make skipping of "LYRICSxxxx" tags |
About Lyrics tags, after searching, I have found two specifications: They are should be skipped Also, @sezero , because of these lyrics tags, your MAD code can't find and skip them. Also, some random code: jiajen/mp3edit@d4c845f |
F... Is there no end to this thing?? |
What do you mean? If you mean more tags, I guess, there is no more should be more than this. By a specification, looks like it's very simple algorithm to skip them, will make a thing if I get my home. |
MP3 format is a mess and therefore lots of alien tag formats ... |
Yes |
AFAIK, libmpg123 doesn't handle those tags? Does it have issues decoding |
Try to play my examples with APEv1, both will make mpg123 to print out a frame error |
I meant mp3 files with that lyrics3 thing. (And I don't know if there really any APEv1 tagged mp3s are in the wild..) |
Files with lyrics: some of files in my first samples pack, and probably, one of ID3V2.3 called as "obsolete" or may be another file, it's with a Lyrics3v2 |
It also causes mpg123 to print an error |
I'll try to dig off my music collection, maybe some are? Btw, ApeV2 tags I have found in some songs of Mayumi Kojima. |
Okay, for lyrics3 tags I made a skipper and it works on my samples: 178e5f3#diff-be03c50dd3ee1164877fb642e43ac967R481-R483 I guess there are files around in a wild with these tags to verify the work better. Lyrics3v1 tag is very simple to create by hands: it needs two marks and any random text typed between them. Lyrics3v2 is a more complex thing that can't be made easily, but, I had some samples are used it. |
You should test against files in the wild, not by hand-crafted ones. |
ir3v1 (TAG+) support in there.
I would dig around the world some of them, I bet there exist as these tags were in a standard. Lyrics tags are not for parsing: skipping only. For a MAD who is silly and won't correctly validate a frame, it's critically to skip all tags as possible to prevent a crash. MPG123 at the same time validates frames and prints out errors when finding certain frame is not a frame and something odd. BTW: will fix your notices tomorrow. |
Updated Lytics3 samples pack: Lyrics3-samples.zip I added few "invalid" files: with broken begin tag and broken end tags to verify error handling. |
The change e7cb2d5 I made just now, should be fine:
Can you review current state of code? |
@sezero, okay, just now I have found a BUNCH of files with a Lyrics3 tag are taken from the wild: I have found on my server's depths a ton of MP3 musics of my friend, and I downloaded all of them. I did a scan of them for some tags by grep, and I have found 11 songs are has this tag. I'll email them to you. |
Oh, wow, one of them contains TWO Lyrics3v2 tag entries 🤔 |
Okay, I took a multi-tag (two Lyrics3 tags in the same file) from a wild file and I have updated Lyrics3 samples: Lyrics3-samples.zip |
A little test for some players: APEv2mixLyrics3.zip I made a mixture of APE2 and Lyrics3, and VLC, Xplayer and Rhythmbox won't show tag of mixture files, but showing a tag of a normal APE tag. It's a confirmation of a think that these tags can't be used together in a same file as they are breaking their specification: each of these tags should be used before ID3v2 or at end of the file. |
Ok. Give me some time to mess with this mess. |
Ok, I'll don't do anything here right now I think, work/research as you need. 😉 |
|
Okay, all necessary tag formats are working fine, so, the issue has been completed! |
Musicmatch tag (noticed while browsing the following page): A documentation (and a LGPL implementation) can be found in id3lib: Don't know if worth supporting |
Never heard about this tag format...
your quote about Lyrics3 you didn't knew, I would to say same about Musicmatch tag I didn't knew Will check out some... Also, I'll try to check my MP3 tons for a hope to find this tag in a wild |
Useful archive to test your parsing code: |
Looks useful, thanks 🦊 |
Inside of an archive I have found this text file: |
Yeah, btw, in that getID3 the sample doesn't contains the Musicmatch tag example, or I should check it more careful, right now I gonna to sleep, will check some tomorrow. |
Okay, I have found one wild example, I have sent it to you 😉 |
The MusicMatch tag skip support is in mainstream, looks fair for now. Closing. |
Attaching the MusicMatch tag extracted from the mp3 you sent to me. |
Possibly, it's existing in some other MP3 files... I should to grep them... |
Okay, just now I have checked more files in my server, and it's no more Musicmatch samples I have found... |
libID3TAG is a GPL-licensed dependency that shouldn't be. Also, it gives lots of unneeded stuff and lacks support for some other. So, on the "wip-build-polishing" here is a work on a new thing.
music_mad.c
by @sezero previouslyPrevent MPG123 to see tags, otherwise, it may spawn "Invalid frame, re-syncing" error message into stdout.Is not critical as MPG123 is smart to don't decode crap that tries to look like a frame.Example of Lyrics tag from "v22obsolete.mp3":
Idk where is a specification that explains it more accurateFound it at id3-org, phew...The text was updated successfully, but these errors were encountered: