Album Artist, Band and FLAC, again ...


#1

Sorry, either my search-capacities are not very good or there simply is not yet a definite answer to my question ...

My problem is with the tag for Album Artist: not for MP3 (the "Band" tag writes to TPE2 and that is read correct by most players), but with FLAC.
MP3tag creates a tag with the fieldname "Band" in the FLAC file and that is not read by Winamp. Winamp expects "Album Artist" (with space) or "albumartist". On the other hand, if I set MP3tag to write to Album Artist instead of Band, it is not read correctly in MP3. So that is not an option, apparently two different fields with the same content are needed for either MP3 or FLAC.

I know that I can manually copy the contents of "Band" into the fields "Album Artist" and "albumartist" via Format Value, but my problem is that that means that I always have to think of doing that, after tagging the FLACs.

So I have searched for an option to have MP3tag write automatically to 2 or 3 fields when tagging something in the "Band" column when the file at hand is a FLAC file, but could not find it.

Did I miss something and is this possible in MP3tag?
Or is there perhaps any other way of automating this, that I have overlooked?


Format-independent album artist
%band% vs. %album artist%
#2

You can extract the extension from %_filename_ext% evaluate the string and create processes for various filetypes.

DD.20090628.CEST


#3

Thanx for your answer, DetlevD.

Yesterday I already tried that with by placing a conditional statement in the Field area of the Band column. I used $if($eql($lower(%_extension%),mp3),%Band%,%AlBum Artist%) but hat whole statement became the name of the field ...

Addtionally, there is the problem when copying tags after transcoding FLACs into MP3s. I do that frequently for use in mobile devices. After the transcoding, I now simply copy all tags via CTRL-C on the selected FLACs and then CTRL-V on the new MP3s. But that way the MP3's get the tagname "Album Artist", needed in FLAC, instead of "Band", needed in MP3.

So what I'm looking for is a way to make MP3tag understand that when writing to FLAC it should be "Album Artist" and when writing to MP3 it should be "Band".
Or, alternatively, to simply write both tags at the same time for all mediafiles.


#4

This works for me:
$if($eql('flac',$lower(%_extension%)),'do flac work','do other work')

Copy and pasting tag field names and their content values from one file to another file resp. from one tagging structure basis to another tagging structure basis is not so quite trivial as it sounds because there may be diverging naming conventions or non conforming content related storage problems. There must be a full transcoding process in the background to get the copy and pasting successfully processed.

I suggest to do some post processing after your manually copy and tagging by an action that does the data modeling and/or tag field renaming using the appropriate rules in relation to the filetype.

DD.20090628.1854.CEST


#5

First of all, let me thank you for your time!

I am at a loss here. I replaced your 'do flac work' with %Album Artist% and 'do other work' with %Band%. But with me, it does not work ... Can you actually put that statement in the FIELD area of the Band column and does that create a correctly named tag with you? With me, it creates a tag that has that complete statement as name, either in FLAC or in MP3 and I can NOT change its value (via the Band-column)

Perhaps I did not make myself clear, sorry. My problem is much simpler, I think.
Now, MP3tag writes in MP3 files an ID3 tag to TPE2, and in FLAC files it writes a VORBIS comment with the name 'Band'.

My first question is, how to make MP3tag create that same VORBIS comment if the file is a FLAC, but not with the name Band but with the name Album Artist. So, just a different name ...
The second question is, if the first is not possible, then how to make MP3tag write two tags at the same time. To be exact: if I fill something in in the Band column, then how to make MP3tag create TWO tags, one as it does now (TPE2 if it is mP3 or Band if it is FLAC) and at the same time a second one named Album Artist.


#6

I do not know. Please someone can step in to help?

You should use Mp3tag "actions" to solve your problem ... do not use the field properties (e. g. "Band column") of the list view! I really do not know, if this can work in all cases.

You can create a tag field with the "Format value" action to create so many different named tag fields as you like. You can fill these tag fields with any appropriately content.
You can remove tag fields with the action "Remove fields".

Example:
Actiontype 5: Format tag field
Field: ALBUM÷ARTIST
Formatstring: $if($eql('mp3',$lower(%_extension%)),%BAND%,)
Note: Replace one special character ÷ with one space character.

Hope this helps.

DD.20090629.0854.CEST


#7

DetlevD, thank you again for taking your time to help me sort this thing out!

I also kept on searching this and other forums for answers and I think not everything I would like to do is possible now, and for instance I think the cimmunity has not yet set any standards on how to handle 'Album Artist' in FLACs: I see 'Album Artist', 'AlbumArtist', and even 'Ensemble'. For MP3s the situation is much clearer because the tag TPE2 seems to be commonly used for AlbumArtist/Band, whether that was the original designed intent for that tag or not.
So please let me rephrase the question so far into a feature request and a work-around.

  1. For the use of %Band% within MP3tag when applied to FLACs: it should be helpful if an option was added to give the user a choice what VORBIS comment name in the list-view and the tag-panel will be used to write to and read from, instead of the now fixed name 'Band'.
  2. Another feature could be to add the possibilty to write the same content to two or more different tags at the same time when working in list-view or in the tag-panel. For instance, I would type the name of a band in the Band-column and MP3tag could then automatically fill a second tag 'Album Artist' with the same content.
Workaround for now: create an action Actiontype 5: Format tag field Field: ALBUM ARTIST Formatstring: $if($eql($lower(%_extension%),flac),%Band%,) Note: this will also erase any existing ALBUM ARTIST field in other filetypes than FLAC if those files are selected

Applying this action on selected files every time something changes in a Band-tag, would in FLACs create or synchronize a tag 'ALBUM ARTIST' to the value of 'Band'.
Pressing CTRL-S immediately after applying this action (with the selection still active) will remove any empty 'ALBUM ARTIST' tag that is left after having applied this action - found no more elegant solution to do that so far, sorry.


#8

This is an ongoing dilemma. If you use Mp3tag's field names, then you can tag MP3 files without much problem, but if you use them to tag FLAC or Ogg files, then you get some unusable fields in most applications that work with FLACs. On the other hand, if you use field names native to FLAC, then you end up with unusable user defined (TXXX) frames in your MP3 files.

Ultimately, the only solution that is going to be flexible enough for practical use with multiple-codec libraries is going to be user-definable field mappings.

Using $if($eql(%_extension%... is tedious if you have a couple dozen action groups defined. What I've been doing lately, since my main library is FLAC, is define all the actions for FLAC, using fieldnames like ALBUMARTIST and ARTISTSORT. Then I have one single MP3 action group that copies those fields to the correct ID3v2 frames by using the required Mp3tag fieldnames and then deletes the FLAC fields. The MP3 action group must come at the end (bottom) of all of the others. This works surprisingly well, and has the net effect of making it much easier to create and maintain action groups (no endless, nested $if($eql... statements) and confining all of the MP3 logic to a single action group.

See the attached image for the MP3 action group.



#9

Couldn't agree more!

My library is also mainly in FLAC, and I think you have a point here, your solution with the MP3 action group looks quite nice and simple.

Without a user-defined mapping the problem persists in whatever way though: my export-scripts ánd the sorting in listview are depending heavily on the existence of a "band" tag (I have a lot of classical music). So as long as MP3tag can't map the ALBUM ARTIST in FLACs (or ALBUMARTIST, is the verdict already out? :slight_smile: to what it understands as being Band, I have to keep those two tags present ánd synchronised in FLACs.


#10

I am at a loss here. I replaced your 'do flac work' with %Album Artist%
and 'do other work' with %Band%. But with me, it does not work ...
Can you actually put that statement in the FIELD area

It doesn't work for me either. That's expected - FIELD works only with a single placeholder. I know of no solution that gives a single editable column for BAND/albumartist.

FIELD could be made to accept an expression, interpreting it as delivering a placeolder rather than the value for a placeholder. But I for one would not vote for this work, since it leaves the BAND/aa problem unfixed in many other program locations.


#11

Ultimately, the only solution that is going to be flexible enough for practical use with
multiple-codec libraries is going to be user-definable field mappings.

Couldn't agree more!

I must say... couldn't agree less! :slight_smile: Mp3tag already has a solution for MP3 TPE2 v. WMA AlbumArtist and a similar one for FLAC AlbumArtist would be adequate to solve the current problem.


#12

Then you've missed the point. It's not about any single field or single tagging scheme. It's about being able to write actions which work with multiple codecs without resorting to ridiculously complex nested functions or complicated and difficult to debug multiple action groups. Just one of the problems with the current implementation is that Mp3tag interprets some field names literally and some it translates to something else, which makes things very unwieldy. The problem with your idea of starting to map FLAC tags is that it would break tens of thousands of existing action groups already in use.

The solution that I've proposed, of user-definable mappings through the use of text configuration files would change nothing for a default installation. You just recreate the existing mappings. So there's little reason to argue against adopting a flexible scheme.


#13

Then you've missed the point. It's not about any single field or single tagging scheme.

A single field is the point of this topic and I've not seen anyone give an example of another field affected.

The problem with your idea of starting to map FLAC tags is that it would break
tens of thousands of existing action groups already in use.

You may have an idea of an idea of mine idea breaking actions, but I have made no such proposal.

The solution that I've proposed, of user-definable mappings through the use of
text configuration files would change nothing for a default installation.

Then sorry it falls well short what's neede to satisfactorily address the point of thread.

there's little reason to argue against adopting a flexible scheme.

There is much reason - development cost.


#14

Then explain what you meant by:

Other than Mp3tag mapping its BAND to FLAC's ALBUMARTIST, I have no idea what else it could mean. You immediately run into two problems, just to start:

  • How would you actually write a BAND field?
  • What if you need to use 'ALBUM ARTIST' (which is used by foobar2000) in FLAC files?
Right now, you can do either one, because Mp3tag writes either field literally. Which puts us back where we began.

#15

Then explain what you meant by:

a similar one for FLAC AlbumArtist would be adequate to solve the current problem.

E.g. this proposal

Format-independent album artist
/t/8874/1
... an Album Artist placeholder that works across all formats i.e. translates to
%BAND% on WMA and MP3 and to %ALBUMARTIST% on FLAC

Other than Mp3tag mapping its BAND to FLAC's ALBUMARTIST,
I have no idea what else it could mean.

See the above.

You immediately run into two problems, just to start:
How would you actually write a BAND field?

I suggest %band% - unchanged.

What if you need to use 'ALBUM ARTIST' (which is used by foobar2000) in FLAC files?

That is separate from the current problem. I agree that is needs consideration but better in a separate topic.


#16

If I understand you correctly, you ask what to do if you actually want to create or read a field named "band". Right now that is not possible in MP3Tag for MP3 and WMA since they get automatically translated to TPE2. So IMHO translating this field to f.i. "ALBUM ARTIST' for FLAC would not add a new problem.

Yes I would strongly be in favor of "ALBUM ARTIST": as said, Foobar uses it, and WinAmp reads for FLACs both "ALBUMARTIST" and "ALBUM ARTIST", but when both fields are present displays primarily "ALBUM ARTIST" and writes itself any changes only to "ALBUM ARTIST".
But I agree with chrisjj that maybe this discussion could be held better in a separate topic.

As for breaking existing scripts, that could be overcome by making this particular mapping user-defined for FLACs. That would give the user a choice of working with a field named "BAND" (no mapping, existing situation), or to map it to "ALBUMARTIST" or "ALBUM ARTIST", whatever flavor one wants. Although indeed I do not know how much programming this involves.

OTOH scripts would simplify, since now scripts need extra $if-statements looking for the existence of BAND in MP3 and WMA and for ALBUM ARTIST in FLAC.


#17

create or read a field named "band". ... IMHO translating this field to f.i. "ALBUM
ARTIST' for FLAC would not add a new problem.

Apart from the existing scripts that it broke.

As for breaking existing scripts, that could be overcome by making this particular mapping
user-defined for FLACs. That would give the user a choice...

Agreed. That is essential. Mp3tag should make no more script breakages than it has already.


#18

Mp3tag v2.44a now supports user-defined field name mapping for the various tag types.

Kind regards,
Florian


#19

Wow, that is great news!

I mapped BAND to ALBUM ARTIST for VorbisComments. Using BAND in the tagpanel, mysteriously creates two fields named ALBUM ARTIST in FLACs, for MP3s it works fine. Filling in the BAND field in list-view works great. Sorry sorry, sorry to immediately point you to this one minor thing ...

Florian, you are a hero in developing this program, thanx a million !!!!


#20

If you want to use BAND as your Album artist placeholder for all formats then you should map VorbisComment > ALBUM ARTIST > BAND