Skip to main content
Topic: Tag-standards In Plugins<->formatting (Read 145937 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Tag-standards In Plugins<->formatting

Reply #150
In case anyone wondered, I use a combination of ID3v1 + APEv2 and don't care about ID3v2. I have also never tried the ID3v2 component.
Quote
Plus many tags aren't supported by id3v1 like composert, art etc. We cannot just go on adding our own tags to id3v1 and continue a dying standard. Also Imagine if you were ripping 10-20 cds and now you tag them using a semi-automated tagger like tag&rename it will hardly take 10-15 minutes but if you use foobar and tag them in its own special way it will take hours and hours. I wouldn't want to go through that kind of anguish nor would anyone else I guess.[a href="index.php?act=findpost&pid=276505"][{POST_SNAPBACK}][/a]
This makes it pretty obvious to me that you haven't read up on APEv2. I don't use hours tagging, because foobar can easily be configured to do alot of work in no time. Not that I actually do that much to a newly ripped CD. Adding a SORT_GENRE tag is the only thing I do to every album, and that is done from the context menu.

I don't think changing one or two tag fields will make foobar2000 a clone. What I don't like is the argument that everything should be done exactly the same way as in other players, without considering possible benefits from finding another solution. Benefits for the people that actually use foobar alot, not ignorant people that might start using it, if we you do this and that.

I'm not against standards, but aiming at support for a standard that relies on a tag format (ID3v2) that alot of people around here, don't want to use, isn't the right way to go, IMHO.

Suddenly starting to use tag names with four letter abbreviations, doesn't do any good for consistency either.

All current tags and formattings would have to be changed, and as I implied above, I don't know how many in the current userbase, would benefit from this. To me it sounds more like a lot of work for nothing. If you want to break backwards compatibility, it should be a good reason for it.

Lyx's question above is interesting, and the only thing that matters. The number of players that use ID3v2 is irrelevant, because it's been like that all along. Do some searching on HA, and you might find an answer to why it is so.

Tag-standards In Plugins<->formatting

Reply #151
It doesnt matter what applications use this particular field, or use their own database. They use their own database because its silly to modify files as theyre played. But if an application were to import or export such data to the file, those are the fields they use - because they support id3v2 and thats where such data is to be stored.

Its strange to use %pcnt% in formatting strings I agree. Most players dont use that though, they use %playcount% or equivalent, but are smart enough to know what the tag represents and where to store it.

For example, fb2k doesnt use the id3v2 frames as tags, %trck% or %tpe1% etc, but is 'smart' enough to translate the frames to/from %tracknumber% and %artist% etc.

So yes, the tag field should still be called %rating% or whatever it is thats decided upon. And not called POPM. In fact, calling it POPM wouldnt make sense, as it refers to a frame that contains both rating data and playcount data.

The trouble with calling it %rating% though, is the database saves tags as a text field called RATING rather than the correct POPM frame (in id3v2). If/when foobar properly supports id3v2, it should be smart enough to do this mapping - and it should be able to do it without writing APE tags as well, for those who dont want it.

As the people in this thread are concerned with the tags rather than the underlining implementation, this is irrelevant for this thread.

However, for %rating%, IMHO the underlying implementation should use a value 0-255, which is standard. This *does* affect people who are only concerned with tags. For example, you cant do (pseudo)

$if(%rating%=(1to5)) etc, but would need to do $if(%rating%=(1to255)) instead. Using a constant scale of 1-255, also means you can use map it to whatever scale you want, without having to rewrite your tags/database.

Tag-standards In Plugins<->formatting

Reply #152
@shaneh: Thanks for sharing your insight.

Tag-standards In Plugins<->formatting

Reply #153
Quote
Its strange to use %pcnt% in formatting strings I agree. Most players dont use that though, they use %playcount% or equivalent, but are smart enough to know what the tag represents and where to store it.

For example, fb2k doesnt use the id3v2 frames as tags, %trck% or %tpe1% etc, but is 'smart' enough to translate the frames to/from %tracknumber% and %artist% etc.


In other words, the underlying implementation (the frames) are irrelevant for this discussion anyways (as you said), because it would be a job for the core(on which we do not have any influence) to translate the tag-field to the pcnt-frame. Thus, the whole id3v2-pcnt thingie is irelevant and independent from this discussion.

So, is there any good reason to use something else than the already established (among fb2k) play_counter tagname? Something which outweights the fact that it _is_ already the standard among fb2k-users?

- Lyx
I am arrogant and I can afford it because I deliver.

Tag-standards In Plugins<->formatting

Reply #154
Its true the whole id3v2 frame thing doesnt matter for this dicussion.

But because fb2k needs to do the mapping in the core, or in the database or whatever - they are the one that will ultimately decide what maps to what. Although, they are likely to use whatever is in most common use - perhaps even look in this thread.

The id3v2 standard for rating *values* does matter somewhat however, as it does ultimately affect formatting tag standards as well.

As for the actual names of the tags - its something that should probably be discussed with the 'core' implementers, 'cause as I said, they are the ones that would ultimately do the mapping.

Tag-standards In Plugins<->formatting

Reply #155
Quote
As for the actual names of the tags - its something that should probably be discussed with the 'core' implementers, 'cause as I said, they are the ones that would ultimately do the mapping.

Thanks al ot for your explanations. Finally i've understood somethign about frames and tag fields, that I admit didn't have a clue. So it's not important at all what field is being used, but what field is linked to what frame.

Quote
The id3v2 standard for rating *values* does matter somewhat however, as it does ultimately affect formatting tag standards as well.

It makes sense. I wonder how i.e. itunes store their ratings, is it doing like you said a rating between 1-255 and transalte it to a 1-5 scale? In this case, and if it's how all players use it, I don't see any incovenient in using the 1-255 as a scale for rating, it'll be only a matter of formatting to 'translate' it to a 1-5 scale (or whatever you want).

Tag-standards In Plugins<->formatting

Reply #156
Quote
So, is there any good reason to use something else than the already established (among fb2k) play_counter tagname?
[a href="index.php?act=findpost&pid=276556"][{POST_SNAPBACK}][/a]

I don't think so. %play_counter% is the standard in fb2k and could be mapped to whatever frame it should be by 'core' developpers.

Just as a sidenote,  maybe it could be wise to also include %__last_played% (as well as other playcount plugin tag fields) in the recommended tags section, because it's what it's used if you have the mod playcount versin of kode54 that tags into the database (and appears as a metadata field).

Tag-standards In Plugins<->formatting

Reply #157
Quote
Just as a sidenote,  maybe it could be wise to also include %__last_played% (as well as other playcount plugin tag fields) in the recommended tags section, because it's what it's used if you have the mod playcount versin of kode54 that tags into the database (and appears as a metadata field).


I'd like to hear the opinion of others about this first, since this complicates the code a bit more and is about a plugin which is not that easy to install for the average user (because it requires sql). Also, if i understood correctly, last_played isn't yet the default in kode's variant. With this, i don't want to de-value kode's work, which solves the most wanted feature of playcount (db-only tags) - it's just that i'm unsure about how to handle this and therefore would prefer some other opinions before doing anything. Remember that devs are free to support non-agreed methods anyways - this is only about if it should be included in the "officially" recommended method.

- Lyx
I am arrogant and I can afford it because I deliver.

Tag-standards In Plugins<->formatting

Reply #158
Quote
and is about a plugin which is not that easy to install for the average user (because it requires sql).

No it doesn't. At first that's what I thought, but it's just as simple for the average user (that I am ) to install as:
- put the foo_playcount.dll into the component folder.
- put the sqlitle.dll into the main foobar2000 folder.

Voila.

Quote
Also, if i understood correctly, last_played isn't yet the default in kode's variant.


Not, it uses %__play_counter% and %__play_stamp%. But to use the 'recommended' format is as simple as this:

Code: [Select]
%last_played%=%Y-%m-%d %H:%M:%S

That will write %__last_played% as i.e. 2005-02-25 21:16:05

Quote
Remember that devs are free to support non-agreed methods anyways - this is only about if it should be included in the "officially" recommended method.

Yeah, sure, no problem

Tag-standards In Plugins<->formatting

Reply #159
Is foo_playcount ever going to be updated?  I would love to see FIRST_PLAYED finally employed...is anyone even considering updating this component?

Tag-standards In Plugins<->formatting

Reply #160
Quote
Is foo_playcount ever going to be updated?  I would love to see FIRST_PLAYED finally employed...is anyone even considering updating this component?
[a href="index.php?act=findpost&pid=279678"][{POST_SNAPBACK}][/a]

I asked in the playcount thread to kode54 if he was interested in implementing this (as well as last_played as default) in his mod version (which doesn't write tags, just store playcounts in a external database), but he didn't aswer so I guess he's not interested.

Tag-standards In Plugins<->formatting

Reply #161
Quote
Quote
The id3v2 standard for rating *values* does matter somewhat however, as it does ultimately affect formatting tag standards as well.

It makes sense. I wonder how i.e. itunes store their ratings, is it doing like you said a rating between 1-255 and transalte it to a 1-5 scale? In this case, and if it's how all players use it, I don't see any incovenient in using the 1-255 as a scale for rating, it'll be only a matter of formatting to 'translate' it to a 1-5 scale (or whatever you want).
[a href="index.php?act=findpost&pid=276597"][{POST_SNAPBACK}][/a]

What about rating values range? I think what shaneh explained makes sens, if players use something in the 0-255 range to tag rating and then transalte it to the 'default' player range (i.e. 1-5 or 1-10) it would makes sense to have a recommended rating format.

Tag-standards In Plugins<->formatting

Reply #162
[span style='font-size:14pt;line-height:100%']Plugin-Developer needed for the following minor changes to play_count:[/span]

Since it seems quite difficult to find someone to do the proposed changes to the playcount_plugin, i've splitted the original proposal into two variants: a simple and an "optimal" version. The simple version is a draft with only those changes which NEED to be implemented. So if you're a plugin-developer who would like to help out but who doesn't have much time, then this is the way to go.

On the other hand, if you have some extra-time then you can pick the "optimal" draft and implement the proposed changes in it.

"Simple Version":
Quote
Update tracks when playback reaches the following track-position:
<already existing song-position-slider when tags get updated>

Append the following info after the standardized date & time:
FIRST_PLAYED: [inputfield empty]    LAST_PLAYED: [inputfield empty]



"Optimal Version":
Quote
<previous song-position-slider when tags get updated>

[checkbox checked] Use new LAST_PLAYED and FIRST_PLAYED tag-standard (supported by public formattings & plugins)

<indent>Append the following info after the standardized date & time:
<indent>FIRST_PLAYED: [inputfield empty]    LAST_PLAYED: [inputfield empty]

<indent>Remove the following fields when tags are updated(seperated with semicolons):
<indent>[inputfield containing "PLAY_DATE;PLAY_TIME"]

------visual-seperation--------

[checkbox unchecked] Use additional custom-fields (not supported by public formattings and plugins)
<indent>Field 1: [inputfield containing PLAY_DATE] Format: [inputfield containing default PLAY_DATE-format]
<indent>Field 2: [inputfield containing PLAY_TIME] Format: [inputfield containing default PLAY_TIME-format]

When the user enters FIRST_PLAYED or LAST_PLAYED into the custom fields and tries to save it, then a popup-window opens saying "This will break public formattings and plugins which make use of these tags. Are you sure?"   <YES/NO choice>



We really need the above changes implemented for the new standard to take off. Even if you can just implement the "simple" variant then this would still help alot.

- Lyx
I am arrogant and I can afford it because I deliver.

Tag-standards In Plugins<->formatting

Reply #163
::crosses fingers, grimaces::

Tag-standards In Plugins<->formatting

Reply #164
Hmm, since there is nothing else happening in this thread, i'll drop in a question which is also interesting to me right now:

Is there some kind of agreed method how to give tracks a secondary genre? What i mean is this: most of the stuff to which i listen doesn't fit into the conventional genre-scheme. Currently, i'm solving this by giving tracks a primary GENRE and a secondary STYLE. The STYLE-tag can carry any kind of short description - either a word describing the mood, or a secondary genre. Like for example: "GENRE: Post-Rock, STYLE: Ambient".

Are there other established methods to do this? Or maybe just generally a better approach?

- Lyx
I am arrogant and I can afford it because I deliver.

Tag-standards In Plugins<->formatting

Reply #165
Quote
Hmm, since there is nothing else happening in this thread, i'll drop in a question which is also interesting to me right now:

Is there some kind of agreed method how to give tracks a secondary genre? What i mean is this: most of the stuff to which i listen doesn't fit into the conventional genre-scheme. Currently, i'm solving this by giving tracks a primary GENRE and a secondary STYLE. The STYLE-tag can carry any kind of short description - either a word describing the mood, or a secondary genre. Like for example: "GENRE: Post-Rock, STYLE: Ambient".

Are there other established methods to do this? Or maybe just generally a better approach?

- Lyx
[a href="index.php?act=findpost&pid=282802"][{POST_SNAPBACK}][/a]

Recently I've retagged my whole collection using AllMusicGuide's "Styles."  I used The GodFather, which adds these styles automagically into a %styles% tag (plural), separated by commas.  I don't know if %styles% is standardized or not, but I hope either it becomes the standard or The GodFather changes its tagging methods, because it makes doing this so easy.

Tag-standards In Plugins<->formatting

Reply #166
Quote
Recently I've retagged my whole collection using AllMusicGuide's "Styles."  I used The GodFather, which adds these styles automagically into a %styles% tag (plural), separated by commas.
[a href="index.php?act=findpost&pid=282811"][{POST_SNAPBACK}][/a]

Same here
I use %styles% tagged via godfather, it's easy and fast and it allows multiple values like this:

%styles%=post-rock, alternative rock, indie

I know a lot of people uses godfather and AMG as their tagging database instead of freedb, but seriously it doesn't seems to be such a standard for that. It's like the %tempo%, %situation% or %mood% (%tones% in AMG tagging), different programs uses different implementation (different values to fill the fields i.e. %mood%) or simply mix these fields (I've seen in some prog that %situation% is sometimes filled with values that should belong to %tones%/%mood%).

Anyway, AMG since like a good reference to me and in most of the cases their values for these fields are very good. most of the tmies, for %genre%, they give it a general genre and then give it much more subgenre in the %styles% tag, which I believe it's better than just give it a subgenre in the %genre% tag and forget the main genre the song/album/artist belongs to.

i.e. a grunge band in the default scenario will just have a %genre%=grunge. In the AMG approach it'll have something like this:
%genre%=rock
%styles%=grunge,alternative,alternative rock,metal

which I believe it's better because in fact 'grunge' belongs to rock 'main' genre and 'grunge' it's just a subgenre of it.

Tag-standards In Plugins<->formatting

Reply #167
Quote
Are there other established methods to do this? Or maybe just generally a better approach?[a href="index.php?act=findpost&pid=282802"][{POST_SNAPBACK}][/a]


My technique is to have multiple, ordered GENRE tags. For example, the "genre" Acid Techno would be:

GENRE=Electronic
GENRE=Techno
GENRE=Acid

The way foobar2000 handles metadata makes this reliable and workable.

Tag-standards In Plugins<->formatting

Reply #168
I've built a new version of foo_playcount that uses LAST_PLAYED by defaut (but doesn't change existing settings).  Get it here.  I'll try adding FIRST_PLAYED next, but I have very limited experience with C++ or the foobar SDK so will see how I go.

Edit 1: Version 1.5.2 now available.  Adds a FIRST_PLAYED tag. Same link as above.

Edit 2: Next major revision (1.6) will more closely represent the 'Optimal Version' Lyx described above.

Edit 3: Version 1.6.1 is now available.  Uses tags with spaces not underscores now. No longer supports custom timestamping.  Some other changes, see the link above.

Tag-standards In Plugins<->formatting

Reply #169
Woah, great! Unfortunatelly, i've got to catch the train in an hour and will be away for the weekend - but i'll definetelly give this a try when i'm back. Thanks.

- Lyx
I am arrogant and I can afford it because I deliver.

Tag-standards In Plugins<->formatting

Reply #170
Quote
Quote
Hmm, since there is nothing else happening in this thread, i'll drop in a question which is also interesting to me right now:

Is there some kind of agreed method how to give tracks a secondary genre? What i mean is this: most of the stuff to which i listen doesn't fit into the conventional genre-scheme. Currently, i'm solving this by giving tracks a primary GENRE and a secondary STYLE. The STYLE-tag can carry any kind of short description - either a word describing the mood, or a secondary genre. Like for example: "GENRE: Post-Rock, STYLE: Ambient".

Are there other established methods to do this? Or maybe just generally a better approach?

- Lyx
[a href="index.php?act=findpost&pid=282802"][{POST_SNAPBACK}][/a]

Recently I've retagged my whole collection using AllMusicGuide's "Styles."  I used The GodFather, which adds these styles automagically into a %styles% tag (plural), separated by commas.  I don't know if %styles% is standardized or not, but I hope either it becomes the standard or The GodFather changes its tagging methods, because it makes doing this so easy.
[a href="index.php?act=findpost&pid=282811"][{POST_SNAPBACK}][/a]


I use AllMusicGuide's hierarchal "styles" as well (it cuts down on main genres, and saves me a headache from all the styles, cause none of my friends can make up their minds), but I don't use GodFather, and I definitely don't need the moods or themes.  I use multiple %style% tags.  Even though most (if not all music) has more than one style, I don't like using plurals.  I also use multiple %artist% tags (and %album artist% for albums that need it), but that's slightly off-topic.  I'm also thinking about structured database support and data normalization, so I definitely prefer no plurals in tags.

As for %first played% and %last played%, I haven't completely ordered my files the way I want it, and I don't want that info in the file itself, so I haven't enabled a database yet.  Otherwise, I would definitely use it.

%rating%: definitely 0-255 (or was it 1-255), as I intend to use close to the full spectrum to rate my songs.  Also something I don't want in the file itself.

Thanks to everyone who gave input on tag standards; it makes my music experience much more lively.

Tag-standards In Plugins<->formatting

Reply #171
@ Lyx for when you return.

On the 8th of May, Canar changed the wiki so that LAST_PLAYED became LAST PLAYED.  I took it that this was the new standard and built the latest version of the foo_playcounter plugin.  I also changed PLAY_COUNTER to PLAY COUNTER for consistancy's sake.  I now realise that it was not changed here, so I assume Canar did this all on his own.  I agree with him.

The latest version of foo_playcounter automatically switches users over from FIRST_PLAYED/LAST_PLAYED/PLAY_COUNTER to the same with spaces, not underscores.  It even transfers over the number of times played to the new tag.  All that is left for you to do is update navigator so that it use LAST PLAYED instead.  This will take you all of five seconds (already done on my own copy) and you can release a new version.  I think your's is the only public FCS to support LAST_PLAYED, which means in theory no users are particularly inconvienced.

I have no intention of changing it back to LAST_PLAYED.  Considering the changes you have to make to navigator are so simple, Canar has already changed the wiki, and it would provide consistancy accross all tags (i.e. ALBUM ARTIST, PLAY COUNTER, LAST PLAYED), you should change it in the first post.

Obviously, the my version of foo_playcount will only automatically update the sings that get played.  If you want to do it for your whole collection, I made a masstagger script.  Get it here.

Tag-standards In Plugins<->formatting

Reply #172
I had posted a comment on the talk page for quite some time. Noone responded, so I took the initiative. Thanks for the agreement, kl33per.

Tag-standards In Plugins<->formatting

Reply #173
Quote
All that is left for you to do is update navigator so that it use LAST PLAYED instead.  This will take you all of five seconds (already done on my own copy) and you can release a new version.  I thinkk your's is the only public FCS to support LAST_PLAYED, which means in theory no users are particularly inconvienced.
[{POST_SNAPBACK}][/a]

Yes, but Lyx's FCS is not the only one that uses PLAY_COUNTER. And that's the point where things begin to complicate

Remember that not everyone is familiar with formatting strings. People just want to download FCS that would work without ANY changes. And without ANY [a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=20719&view=findpost&p=297483]masstagger scripting[/url]. And how are you going to enforce all popular FCS authors to use your tag-convention?

I really don't know what that whole 'standards-' and 'consistancy-' talk is about. I mean, that's very good for newly created tags (like LAST PLAYED), but I think that when almost EVERYONE is using PLAY_COUNTER (with underscore), there is no real reason to changing it, because it IS standard already.

Tag-standards In Plugins<->formatting

Reply #174
I can't please everyone can I.  Some people want LAST_PLAYED and PLAY_COUNTER, some people wnat LAST PLAYED and PLAY_COUNTER, some people want LAST PLAYED and PLAY COUNTER...

Seeing as I'm the one who finally stood up and decided to continue developing foo_playcount, I get to make the decisions.  Here it is, tags use spaces, not underscores.  If you don't like, use an older version, or take the sources and mod it yourself.  FCS developers will fall inline, or there FCS's just won't work.

I altered my foobar to work with spaced version of the tags in roughly 30 seconds.  If the FCS developers can put this much time into their designs, no one will have a problem.

 
SimplePortal 1.0.0 RC1 © 2008-2019