Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: can fb2k be changed to write compatible ITUNESCOMPILATION field? (Read 22924 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

I've been a happy foobar2000 user for years, and want to thank Peter and other contributors for all their work here. I and many others very much appreciate it.
And now, a request.

iTunes tagging interoperability would be a plus for lots of people who use foobar2000. fb2k is really useful application for tagging, but at present it messes up some tags from iTunes.

The first and most obvious example is the ITUNESCOMPILATION field. I've previously asked about this issue here. iTunes writes this tag in the TCMP field, with a value of "1" for compilations, otherwise the tag is not written. Mp3tag will recognize this field, and will write the TCMP field if asked to write an ITUNESCOMPILATION field. However, foobar2000 (I'm using 0.9.6) does not recognize an TCMP tag written by either iTunes or Mp3tag, and if foobar2000 is used to write or rewrite the tags for an mp3 file, it strips existing TCMP field (whether written by iTunes or Mp3tag). foobar2000 can write an ITUNESCOMPILATION field, but it writes its own unique tag, which is different than what iTunes writes (or recognizes as a compilation).

As I see it, since fb2k currently doesn't recognize the TCMP field, it's not using it for anything, so it should be easy (and no cost) to map ITUNESCOMPIATION to the TCMP field when foobar writes tags. Of course, fb2k would have to be changed to recognize the TCMP field for this to happen, and perhaps there is some cost there.


One other issue here for iTunes interoperability is how foobar2000 deals with ITUNNORM tags. This is apparently just a normal Comment field with ITUNNORM as description. Currently fb2k treats it as just a normal Comment field, drops the ITUNNORM descriptor, whenever fb2k is used to add or rewrite tags on a file that had been previously tagged by iTunes.
Mp3tag treats COMMENT ITUNNORM as a separate tag field and is thus much more easily interoperable with iTunes.
Here are three threads raising this issue.
fooBar Replay Gain & Comment tag within itunes, got trouble with foobar & itunes regarding new values in Comment (2006)
Tagging bug? (FB2K 0.9.5), COMMENT ITUNNORM mapped to COMMENT (2008)
0.9.5.1 ID3v2 Comments fix, change to Mp3tag behavior (2008)

My situation: I don't use iTunes, but I make mix cd's and sometimes circulate these mp3's to friends, and would like them to be imported into friends' libraries as compilations.
I can use Mp3tag to write ITUNESCOMPILATION=1 to all of my compilation mp3's, but then I have to remember not to ever modify those tags in fb2k. Which is annoying.
God kills a kitten every time you encode with CBR 320

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #1
See here and here
Neither TCMP or the itunnorm comment are standard frames, both were introduced by iTunes for iTunes so i  think it's unlikely that there will be a workaround in foobar, surprisingly enough that mp3tag supports it.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #2
I support the OP's requests. I'd even be happy with fb2k simply leaving the TCMP field alone, as I can deal with the other issues on my end with mp3tag.  I don't think it is surprising that mp3tag deals with itunescompilation as even dbpoweramp now maps its "compilation" tag automatically to TCMP and itunes recognizes this as an itunescompilation. I now have to use mp3tag to map the compilation tag created when I rip with dbpa to a different compilation tag so that fb2k will recognize that an album is a compilation.  I'm somewhat annoyed with the treatment of COMMENT ITUNNORM, but this is not near the issue of losing your compilation tags simply by "forgetting" and making a change to some other tag within fb2k.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #3
I understand that iTunes does some things with id3 tags that are not per the official standard.

That said, standards largely work because they are conventions. When big players set standards that may differ from official conventions, they are effectively changing the standard. For example, WMP and iTunes use the TPE2 (BAND) field for Album Artist. This is not ideal nor is it in line with the original standard's purpose for that field. But it has become a de facto standard for Album Artist. For all mp3's that I specify an Album Artist in addition to the normal Artist field, I use BAND (TPE2) and foobar's default Album Artist field.

Now, the iTunes compilation and the itunnorm fields are not officially standard. However, they are used by iTunes and therefore by many more people than use foobar2000. Moreover, it would be convenient for many fb2k users to have foobar handle these fields as iTunes does.

So the question: would it be compromising anything other than principle-of-id3-tags-official-standard, for foobar2000 to be programmed to handle the TCMP and itunnorm comment fields in compliance with iTunes?

I don't know enough about tag standards to know if this would compromise anything other than the principle of official specification compliance. But if that's the only downside, I'd strongly say to modify fb2k's tagging protocol here, along the same lines that Mp3tag has gone.

Ironically enough, Windows Media Player, while not acknowledging or displaying the existence of a TCMP tag for iTunescompilation, does keep that tag when it is used to edit tags on mp3 files.
God kills a kitten every time you encode with CBR 320

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #4
Typically the developers loathe ID3 and I certainly wouldn't expect them to create workarounds for it that don't follow follow the written spec.

Also consider this: foobar's solution to this problem (remapping the TXXX:ALBUM ARTIST field with %album artist%) has been around longer and doesn't require the creation of braindead, non-standard tag frames.
elevatorladylevitateme

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #5
Also consider this: foobar's solution to this problem (remapping the TXXX:ALBUM ARTIST field with %album artist%) has been around longer and doesn't require the creation of braindead, non-standard tag frames.

as written above, I'm not arguing that iTunes' implementations are good or ideal.
But I am arguing that spec-for-its-own-sake is a pipe dream, that the landscape for id3 tags and their usage is dominated, and precedent set, by the big boys (iTunes and WMP) and for the convenience of users, it makes most sense for fb2k to follow that.
God kills a kitten every time you encode with CBR 320

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #6
So, what do people think of my sometimes-you-may-as-well-just-go-along-with-the-big-boys argument?
God kills a kitten every time you encode with CBR 320

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #7
Topic is three days old and still one page only. Almost equals "majority doesn't care". Why follow some private standard if userbase won't use it? Foobar2000 is a music player with a set of features, not an universally compatible tool.
Sharing delusions since 1991.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #8
The problem is known, only resolution has not been determined yet.
Full-quoting makes you scroll past the same junk over and over.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #9
Is support for alternate tagging frames* something that could be handled through a third-party component?

___
*Or whatever. My understanding of all of this is limited to the point that what I am really asking is the equivalent of whether the evil spirits that live in iTunes could be satisfied with a sacrifice of fruits and grains, or whether we must kill the fatted calf instead.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #10
No, low-level handling of metadata is done solely by the input service, for most formats in foo_input_std. All other components see only the output as FIELD=VALUE pairs.
Full-quoting makes you scroll past the same junk over and over.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #11
Topic is three days old and still one page only. Almost equals "majority doesn't care". Why follow some private standard if userbase won't use it? Foobar2000 is a music player with a set of features, not an universally compatible tool.

partly a function of original-post-on-a-weekend plus HA-down-to-transfer-server. and probably partly a function of majority-doesn't-care. but likely some people would be helped by the change I'm proposing, hardly anyone would be hurt, and three people would get their panties in a bunch because the exact id3 spec wasn't followed.
God kills a kitten every time you encode with CBR 320

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #12
When you say something like this...

Quote
My situation: I don't use iTunes, but I make mix cd's and sometimes circulate these mp3's to friends, and would like them to be imported into friends' libraries as compilations.
I can use Mp3tag to write ITUNESCOMPILATION=1 to all of my compilation mp3's, but then I have to remember not to ever modify those tags in fb2k. Which is annoying.


...is asking dev's to create something for users not using foobar. Not even for you. For your friends, using Itunes.
There is this saying about Mohammed and a mountain that won't move. Move mohammed is the solution.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #13
When you say something like this...
...is asking dev's to create something for users not using foobar. Not even for you. For your friends, using Itunes.
There is this saying about Mohammed and a mountain that won't move. Move mohammed is the solution.

Yes and no. I detailed in my initial post that there are other people who do use both fb2k and iTunes. (Though I'd probably use foo_dop plugin if I had an iPod, and avoid iTunes altogether).
In the case of the mountain that doesn't move, I think that applies pretty well to iTunes, which is less likely to move than fb2k being changed in one or two small ways to be compatible with iTunes' tagging standard.

I still haven't heard anyone mention costs of programming these tagging workarounds (or hacks, if you want) into fb2k, other than getting panties in a bunch about OMG! not perfectly in line with id3 spec anymore!
There may well be real and practical costs, I just haven't heard them yet.
God kills a kitten every time you encode with CBR 320

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #14
Topic is three days old and still one page only. Almost equals "majority doesn't care".

I don't know that this is true.  F2K really is a "for-the-already-converted" app, but I don't see any harm in making a request that has the potential to turn more folks onto F2k.

Why follow some private standard if userbase won't use it? Foobar2000 is a music player with a set of features, not an universally compatible tool.

It's a bit of a stretch to refer to iTunes, dismissively, as "some private standard."  Apple has greater than a 90% market share of online music sales, and an ever-increasing share of total music sales (online or retail).  For better or worse, they very nearly set the standard.

For the time being, I am forced to manage my music via both iTunes and F2K because, while I prefer F2K, my household owns three iPhones (and I own a fourth issued by my company) so I am required to use iTunes to transfer music back and forth to my core portable devices.

If the answer from the devs is "We just can't do this - it's too hard," then that's fine, but to dismiss the request because it's not "standards-compliant" with no contextualization of the size of this particular leviathan is silly.

(Just think how web browsing would be if web-devs only developed "standards-compliant" websites)

Cheers (and a "me too" to this request).

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #15
For the time being, I am forced to manage my music via both iTunes and F2K because, while I prefer F2K, my household owns three iPhones (and I own a fourth issued by my company) so I am required to use iTunes to transfer music back and forth to my core portable devices.

it's too bad you can't use the foo_dop plugin that allows you to use foobar2000 to manage your iPod. But word is it doesn't yet work with iPhone or iPod touch.

If the answer from the devs is "We just can't do this - it's too hard," then that's fine, but to dismiss the request because it's not "standards-compliant" with no contextualization of the size of this particular leviathan is silly.

This has been exactly my argument.

Based on a post earlier in this thread, it sounds like this request is being considered by the fb2k devs:
The problem is known, only resolution has not been determined yet.
God kills a kitten every time you encode with CBR 320

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #16
Any news on this topic? I would also love to see this feature.
I can't imagine it would be too hard to implement, as it would just be the mapping of the TCMP frame to something like %itunescompilation%.
Are there more than 3-10 lines of trivial code to support this? I can't really imagine.

And for people who are anal about proper ID3v2 standard compliance:
Support for TCMP will not break any existing tags that are "fully compliant", it's just an extra frame that is used for iTunes special way of treating compilations.
No one will force you to use or touch the frame, it will just make all foobar 2000 users who also use iTunes happy.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #17
Yet another +1 post. 
Theoretical clap / trap and a subtle dig at standards.

It never stops to amaze me just how many issues /changes are considered simple trivial programing issues.
Look forward to your contribution.

terry

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #18
Can I add a +1 to this also.

I have the same issue as hiddentrout, I own an iPhone but can't stand using iTunes to listen/tag/deal with music as iTunes on windows is slow as a very slow thing crawling through tar.

If I change any tags in foobar I have to go back into iTunes and "fix" them to view correctly on my phone.

I'm sure we're (hiddentrout and I) not the only ones having this problem.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #19
It never stops to amaze me just how many issues /changes are considered simple trivial programing issues.


FWIW:
I once added support for TCMP in id3lib and kid3, which is why I assumed that the change is trivial and does not take more than a couple of lines.
As I don't have the foobar2000 sources I can only guess here, but I am sure the code is clean enough that adding another frame would not be too complicated nor introduce noteworthy clutter.

Anyway, only the foobar2000 developers know for sure  ...

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #20
+1 if it hasn't already been done...?

  Wow!  When you stumble on an interesting thread by accident....

This is REALLY informative and I'd like to thank all the contributors on both sides for some valuable information.

I'm pretty much a new at this high level extended field tagging business (2 weeks) but I've already discovered mp3tag and what a great tool it is to fix all that's wrong with all the media players (except this for foobar).  I've just done basic stuff before.  Now I have to support multi computer operating systems, multi phone OS's and additional portable devices.  And they all have their issues that are "easily" resolved with careful tagging.

I've been using foobar on and off for a number of years, but not really to manage a library per se, although I have managed large libraries in the past for schools etc. with that Apple product (it's good enough for gradeschool kids to hear stories and children's songs.) 

foobar, just as a player with or a player with playlists, has a playback quality to SO much better than iTunes, WMP, MediaMonkey and now, even Winamp.  They've all become bloated and miss the point.  And I've just tested them all this last couple of weeks (for the umpteenth time over the years (except for MediaMonkey which only got on the radar since they reported they support iPhones (doesn't work right now)).

Anyway, after much screaming and yelling at me for dragging my feet with home technology in my family, I finally went out and got everyone either iPhones or Samsung Eternities.  Plus my daughter has an iPod and son has a Rio.  So since Microsplaat writes the software for Samsung we're already into big time multi platform support (where each try to screw the other one over and leave us poor users in the lurch).  And then there are the the digital and analog still and video cameras, etc, etc..


So this is now reality in a big way and it is only going to get worse.  Portable playback is the standard and sitting home and listening to the rack mounted good stuff isn't happening like it used to.  My stuff is so old that the dust is scary and I can't even lift the stuff anymore.  We're all going to be walking around with our music in our pocket sooner or later.

So then we do have two distinct needs.  We need to be able to manage a large library of music in a way that lets us both listen at home, and provide syncing ability with portable devices.

So that leaves us with mp3tag to fix everything, foobar to play it back at home and (gulp) iTunes to manage the portable devices (using iTunes Sync for the non-Apple products).

As I continue to edit all the music and get it properly tagged I will eventually put everything in foobar.  I'm also going to be bringing in the old tapes and vinyl.

So I thought I had the right tools for the job, but this compilation field is a show stopper.  I guess I'll have to continue using foobar just for playback since I don't want to loose all the work I'm doing.

I think the ideal situation is to have foobar manage all the music and be able to store it logically in a portable(mp3 or...) section and in a lossless section for home and future use as portable become more powerful.

So I vote for foobar to, if not add the field "itunescompilation", to at least not delete it when you are editing.  It's a really important field for portables and Apple is setting the standard.  Without this thread I would have never known what hit me.

Thanks for all the hard work! 

PS, And thanks again for not going down the bloatware road with foobar!  It really does make a difference, even with crappy mp3's.  And with 320 mp3's, it's really good!

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #21
Personally I like the foobar approach of ALBUM ARTIST to handle compilations more than cluttering up my collection with a bunch of iTunes-specific tags. One of the things I hate about iTunes is how it bloats all my files with unnecessary tags. (It may seem small, but multiply that by tens or hundreds of thousands of files and it adds up) I think it would be much more useful if you could convice apple to use a standards-based approach to solving their issues instead of turning into another microsoft by bloating everything they come accross with their own standards.

EDIT: I see that other software such as gmusicbrowser and songbird have begun implementing the ALBUM ARTIST approach to handling compilations instead of adding GMUSICCOMPILATION, SONGBIRDCOMPILATION, etc tags.

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #22
Personally I like the foobar approach of ALBUM ARTIST to handle compilations more than cluttering up my collection with a bunch of iTunes-specific tags.
...

I've acknowledged earlier in this thread (probably in the OP) that it's unfortunate for Apple and Microsoft to throw their weight around without much regard for existing tagging standards. But that said, they do significantly write the rules of the game.

What I and others are asking for here is is not that you convert to using the ITUNESCOMPILATION tag to handle compilations. You're free to use foobar's ALBUM ARTIST tag all you want.
All I'm asking is that foobar recognize the existence of an ITUNESCOMPILATION tag and not delete/overwrite that tag when foobar is being used to edit tags. This would be very useful to people who use multiple devices and want to maintain compatibility with all, and it won't inconvenience others in any way. Beyond, I guess, the knowledge that they're using a player which recognizes a non-spec tag. The horror.
God kills a kitten every time you encode with CBR 320

can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #23
Personally I like the foobar approach of ALBUM ARTIST to handle compilations more than cluttering up my collection with a bunch of iTunes-specific tags.
...

I've acknowledged earlier in this thread (probably in the OP) that it's unfortunate for Apple and Microsoft to throw their weight around without much regard for existing tagging standards. But that said, they do significantly write the rules of the game.

What I and others are asking for here is is not that you convert to using the ITUNESCOMPILATION tag to handle compilations. You're free to use foobar's ALBUM ARTIST tag all you want.
All I'm asking is that foobar recognize the existence of an ITUNESCOMPILATION tag and not delete/overwrite that tag when foobar is being used to edit tags. This would be very useful to people who use multiple devices and want to maintain compatibility with all, and it won't inconvenience others in any way. Beyond, I guess, the knowledge that they're using a player which recognizes a non-spec tag. The horror.


Exactly.  The iTunesCompilation field is only a binary switch (or flag, or whatever you want to call it).  You can't put in anything other than 1 or 0.  So we aren't and can't use it as you're implying.  What we are saying is that Apple requires that switch so that you can actually see a "compilation" on the iPhone/iPod etc.  Without it is is a useless piece of programming on the device itself. 

It is just a way to take advantage of that ability that we use the field.  It doesn't have anything to due with proper id3 field use.  You still have to use ALBUM ARTIST to make any sense of the information so we do use it.  It is just that you can't see it without the flag (on portable devices)!




can fb2k be changed to write compatible ITUNESCOMPILATION field?

Reply #24
It is just a way to take advantage of that ability that we use the field.  It doesn't have anything to due with proper id3 field use.  You still have to use ALBUM ARTIST to make any sense of the information so we do use it.  It is just that you can't see it without the flag (on portable devices)!
Well, no. fb2k would have to start mapping its Album Artist field to the id3 BAND frame like iTunes does (rather than TXXX:ALBUM ARTIST like it does now) to make it work.
elevatorladylevitateme