-
-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Support writing ID3v2 version 3. #62
Comments
Hm, not sure how to best go about this. Maybe |
Maybe create something like |
Allowing two different versions of the tag would complicate things quite a bit, even TagLib upgrades all tags to 2.4. TagLib lets you change the version with overloading, so maybe a new trait is the way to go, maybe |
If I understand correctly this would meant that Lofty would store ID3v2.4 internally and than decide what version to use on saving? ID3v2.3 file would then on reading be upgraded (as it is now) to ID3v2.4 and on writing be downgraded back to ID3v2.3. Is transforming ID3v2.3 to version 4 lossless or lossy? Looking at Wikipedia it loos like more or less lossless with only few fields having some difficult mappings. |
The conversion isn't completely lossless, some frames have a 1:1 mapping and others have expanded in 2.4. The discarded frames aren't that important though IMO, I doubt most apps even look at them. |
I really would like for this to be implemented. Sadly the support for id3v2.4 is pretty bad and so I need to use v2.3. Lofty is a genius library, the only one that allows writing many different tag formats so easily so I would really like to use it. |
The only blocker here is how to best expose the option to downgrade the tag. I may just end up going with the suggestion above:
|
Yeah I think that's a good solution |
I've been looking into this and I think it'd introduce way more complexity than needed. The current behavior of upgrading to version 4 will stay so there aren't a bunch of unnecessary version checks. The best solution would probably be through a setting in There can be an almost entirely lossless v3 -> v4 conversion (with the exception of the RVAD and EQUA (?) frames). The couple of frames that can't be upgraded can be stored with There's a list of ID3v2.4 frames that can be discarded when writing ID3v2.3:
Writing an ID3v2.4 tag as ID3v2.3 would be as "simple" as:
|
Everything's in place for this to be worked on now. I'll probably work on this after the next release. |
Currently all ID3v2 tags are upgraded to version 4, but this is not always desired.
The text was updated successfully, but these errors were encountered: