Replies: 5 comments 7 replies
-
Or maybe the rewrite plugin already supports this? Can you use template values on the value side? E.g. rewrite:
artist .*: $albumartist /me tests |
Beta Was this translation helpful? Give feedback.
-
If it would work to implement this feature into the rewrite:
artist: $my_artist And then set the attribute for the relevant artists: This would also enable you to use |
Beta Was this translation helpful? Give feedback.
-
An alternative, maybe more maintainable, design would be to invert the pattern, adding new template fields (or a more convenient syntax for adding defaults): fallback: # more fitting name for this version
my_album: $album ⇒ equivalent of …Maybe I can get away with just the |
Beta Was this translation helpful? Give feedback.
-
Implementation-design wise, I think the sane way to do this is a single pass (no recursion). I think I'm going to try a PR to add template rewriting to the rewrite plugin as a first pass at this (it should be useful as a base for this plugin even if the PR is rejected). |
Beta Was this translation helpful? Give feedback.
-
did you find any solution for this? I use an external script to rewrite albumartist to artist tag after import, but it is far from elegant. |
Beta Was this translation helpful? Give feedback.
-
The main use case for this plugin is interacting with less sophisticated players.
In particular, the
albumartist
field is unfortunately still unsupported in many music players.I'm not totally familiar with the history of the tag, but my impression is that it wasn't one of the original tags. Therefore, people (understandably) used the
artist
field for the album artist. Then, when people realized the need for two separate tags, they tried to addalbumartist
and thus, retroactively redefine theartist
tag.The problem is, in a distributed, consensus-based system, redefining tags never works. At least, that's what I've learned from hearing about attempts to do so in the OpenStreetMap community. You get stuck with the "redefined" tag losing all meaning, because you can never be sure whether it means the new or the old thing. In order to do it successfully, you need to convince everyone to stop using the old meaning, update every old usage to the new one, and update every piece of software that assumed the old meaning to use the new one. Effectively impossible.
The winning strategy is to deprecate the tag, and introduce a new tag. In this case, that would mean introducing two new tags,
albumartist
and something liketrackartist
. The existingartist
tag would stay as it was (something like "whatever is most appropriate if you only have one field"), and be used as a fallback if either of the new tags is undefined.I haven't yet found a FLO Android player that works properly with
albumartist
(mostly because the Android media store, aka the convenient way to get metadata info, doesn't report it).In order to get mixes and compilation albums to work on Android, I would like to write the
albumartist
data in theartist
field. However, I don't want to do that in the beets database!My idea for this plugin, then, is to define a mapping (using the existing path format syntax), where I can change which tags are written to the file:
So then when I run
beet write
, beets will replace whatever value is inartist
with thealbumartist
.And maybe also add a new field with the original value (e.g.
_og_artist
).Beta Was this translation helpful? Give feedback.
All reactions