-
Notifications
You must be signed in to change notification settings - Fork 669
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Custom tags / labels #788
Comments
From john.maguire on September 22, 2010 05:57:14 Summary: Custom tags / labels |
From davidsansome on January 13, 2011 12:48:58 Issue 1286 has been merged into this issue. |
From marcansoft on January 27, 2011 10:12:26 I agree, this enables quite a few nice use cases. For example, with Amarok 1.4 I used to tag instrumental songs as such, so I could make a smart playlist that picked up only those. Same with different styles of music (not necessarily something that can be done with just the genre field). I find this much more robust and intuitive than maintaining actual playlists for each category, and it's also by nature more powerful since you can easily combine criteria in a smart playlist. |
From jf8011 on February 02, 2011 14:19:46 This is the feature I now miss most from Amarok 1.4. Combined with smart playlists it allows for the creation of very specific playlists. |
From john.maguire on April 07, 2011 14:30:38 Issue 1288 has been merged into this issue. |
From Arpheno on April 08, 2011 07:58:20 I Would like to see the priority increased on this issue. Also, I will be investigating the subject. |
From luke.schlather on April 08, 2011 09:03:55 So basically, what we need is:
On #1 it might be cheaper since these will mostly be displayed to use a delimited As far as search, do we want something that passively integrates with the search box, a way to specify directly "show songs with these tags" or both? |
From zzanzare on April 08, 2011 09:14:59 and don't forget the possibility to create dynamic playlists based on labels.. that's exactly what I'm waiting for;-) |
From Arpheno on April 09, 2011 04:31:20 I'm still not entirely sure if this is what I am expecting of it, I was told multiple values for one property are called labels. So what I want is this:(ID3v2.4 informal standard) There's hardly one song in my library that does not look like: Does the ability to assign labels include the ability to read from ID3v2.4 compliant null seperated lists? Right now the support for ID3v2.4 is not really exuberant, maybe on the same level as iTunes, which really is a pity. Could someone with more insight to the topic explain what the database looks like and which files are responsible for its behaviour, so I have something I could start with. I'm an apprentice coder in c++ but I do well in C and python and the syntax is partly very confusing. |
From zzanzare on April 09, 2011 04:39:02 I believe this issue is more about the Labels as they were in Amarok 1.4. These labels are (to my knowledge) non-ID3 and completely custom and only kept in the collection database, not in the song file itself.. correct me if I'm wrong.. Attachment: Screenshot-Track Information: Mariella by Kate Nash - Amarok.png |
From marcansoft on April 09, 2011 05:34:37 That is correct, labels here are meant as "tags" in the Web 2.0 sense - lists of words (or possibly short phrases) that can be used to group together songs by different categories. They are kept in the database, not as ID3 tags. |
From Arpheno on April 09, 2011 05:39:12 So please unmerge the topics that were merged into here as they do not relate. I strongly reject player specific data storage because my music must be portable at any rate. |
From Arpheno on April 09, 2011 05:41:11 sorry for my double post, but i feel issue 1288 shuold instead be merged into here: http://code.google.com/p/clementine-player/issues/detail?id=409&q=ID3&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars |
From luke.schlather on April 11, 2011 08:13:32 This issue should probably be blocking the ID3 tag issue, since there are standards other than ID3 and I think we should have an internal representation before we start thinking about how to write it to files. (And the last comment in 409 also notes that implementing 409 probably requires changes across the whole application, this bug is probably one of those changes.) |
From Arpheno on April 12, 2011 02:21:33 The thing is, ID3 easily allows for custom tags/labels, you can add more than the average user would want ( MEGABYTES ). Your roadmap you gave in your earlier reply is wrong I think, because we do not need another table in the database at all. We're good to go with our current database. The only thing that needs to be changed is the type of object we're pointing at. Although I have no clue about the internals of the database because I'm simply not clever enough to decypher it, what must be there on the lowest level is some kind of string based representation of an information frame For me the situation folds out like this:!!!!!!!!TL;DR;!!!!!!!!!!!!!!!!!!!! This issue will be solved if full ID3v2.4 compability is achieved. |
From davidsansome on April 14, 2011 15:35:02 Issue 1759 has been merged into this issue. |
From neocrust on April 16, 2011 01:23:45 Any news? |
From davidsansome on June 27, 2011 09:42:26 Issue 2026 has been merged into this issue. |
From neocrust on June 27, 2011 10:30:51 Any news? It's great feature from Amarok 1.4 and Clementine will be a great fork with this =] |
From wyatt.epp on July 08, 2011 12:12:07 I'm still using KDE 3.5 and Amarok 1.4 because of this. A few notes:
Attachment: AmarokLabel1.png AmarokLabel2.png AmarokLabel3.png |
From luke.schlather on July 08, 2011 14:13:19 Yeah, we definitely don't want to shove stuff in TXXX. I think Arph is just trying to relate this to 409 when they're clearly very different issues. Wyatt, your UI sounds good. Do you have an opinion on putting in a songs_labels table vs. shoving labels into a single field in the songs table? Since you're running 1.4, could you take a look at your database and see how they do it? (I would do it myself, but I live in the mountains and don't have enough bandwidth to download a dated system image on a lark.) |
From wyatt.epp on July 08, 2011 17:16:27 Well, I had nothing to do with the design; only ideas for minor improvements. All credit goes to the Amarok devs of old for what you see there! (Though I'd totally be up for a moderate-major design overhaul if someone was interested in discussing it with me. Not feeling up to soloing because my C++ is mediocre at best). Anyway, for sake of discussion here is the full schema [1] for Amarok 1.4 (should be roughly the same regardless of type, but I'm using sqlite). Unfortunately the full schema dump jumbles things up a bit, so in brief we're most interested in the tables labels: and tag_labels (indented to ease reading): Now, the old Amarok code is rather...not especially commentful, and it's a fairly complex codebase to boot, but basically what I see happening is the tags_labels uses the deviceid, URL, and uniqueid to reference files and associate them to labels via the left join of labels.id and tags_labels.labelid Some relevant example code from src/collectiondb.cpp [2] looks to be in CollectionDB::addLabel() (lines 5972-5999). I'll note at this point that if you grep your way back to the beginning, the labels.type in Amarok 1.4.10 ends up being: ...yeah. I think this was mostly just a contingency plan in the event that they decided to integrate e.g. last.fm tags too. I don't personally consider this particularly wise, but it was never used for anything anyway. Now as for how Clementine should handle it... Though the two-table design may seem like overkill to some (not all: there are five tables each for songs, magnatune, and spotify) it's a simple canonical method of expressing this sort of relationship that scales without hundreds of columns of sparse content. While putting it in a single column in the songs table would be very simple, to be blunt, I think it's a very bad idea. Every query of labels would have to brute force search at O(n) where n is the number of songs in your database-- I don't think FTS can save you from that. Attachment: oldrokschema collectiondb.cpp |
From ddidderr@web.de on July 13, 2011 14:05:17 Portability of the songs is what matters. Therefore i would like to see the ability to show columns of custom tags. look at foobar2000, then you know what i mean. |
From luke.schlather on October 01, 2011 16:49:17 sqlite3 automatically creates a tablename.ROWID index we can use to uniquely identify songs, so a simple schema would look something like this: CREATE TABLE songs_labels ( CREATE TABLE labels ( So getting all the songs for the label with label.ROWID=2 is simply SELECT songs.title LEFT JOIN songs_labels ON songs_labels.songid = songs.ROWID WHERE songs_labels.labelid = 2; For the regular playlist browser, we should be able to display the tags on a track as a column the user can check or uncheck. This SQL would show ids, titles, and labels/labelids for the songs in playlist with id 7: SELECT playlists.ROWID,playlists.name,songs.ROWID,songs.title,group_concat(labels.label) FROM playlists LEFT JOIN playlist_items ON playlists.ROWID = playlist_items.playlist LEFT JOIN songs ON playlist_items.library_id=songs.ROWID LEFT JOIN songs_labels ON songs_labels.songid=songs.ROWID LEFT JOIN labels ON songs_labels.labelid=labels.ROWID WHERE playlists.ROWID = 7 GROUP BY songs.ROWID; I'm poking around trying to figure out where to add the join on songs_labels to get this into the actual display. |
From alphadeltapapa on January 16, 2012 00:17:49 I think when Clementine gets this feature it will have reached feature parity with Amarok 1.4 (and surpassed it in some ways, of course). |
From davidsansome on February 26, 2012 07:52:12 Issue 2750 has been merged into this issue. |
From neocrust on February 26, 2012 08:29:45 Any news? |
From davidsansome on March 07, 2012 02:46:00 Issue 2785 has been merged into this issue. |
From hector@marcansoft.com on August 14, 2012 19:12:09 Any updates? This is really one of the last few Amarok 1.4 features that I'm desperately looking forwards to. I'd attempt to work on it myself, but alas, my project stack is overflowing these days. |
From neocrust on August 14, 2012 20:06:39 Its too difficult for developers =] Just use gmusicbrowser. |
Hmmm... I have an idea but sth in 'real world' appear and I lost time to write about that feature 3 h ago ;) Think that you can add any way of grouping, labeling adding different infos about that artist - not song actually...
UX and UI - we should make a research. And first - have labels only for songs... then we will find the proper way to do it. Each displayed label should have "x" sign to remove it, and list would contain empty place with "+" to adding that. That's is only sketch of very beginning idea. We must "eat that big, ugly frog" cause it voilent for many people I thought. Any contribution are welcomed (PRs, comments, patches and so on). Have a nice day and please explain more about that @Wyatts :
|
The reason I wanted it to be attached to files is so that the methods I use to organise my music is not entirely dependent on Clementine. My own specific use case is to mark out mixes/sets and lyricless or foreign-language songs from the rest of my music, because I sometimes listen to these while working - lyrics I understand distract me. And I do not want this organisation of my music to be lost if/when I switch music players, nor do I want to maintain playlist files, which depend on the locations of files. If I change the files' names (e.g. using Picard to fix mistagged files), the playlist files will become invalid. But I like this new idea too. |
@Burrito-Bazooka , I understand that but even if we save it to file, another player must be compatibile to understand that:
If you know how different software technically done sth with music files, and it could be standard for each of: mp3, flac, ogg, acc - post it here :) You should fix mistagged files with Picard before adding to Clementine. Why are you have problem with labels when you loose it? Your every playlist will be crashed : P Of course, we could try to be compatible in another players/taggers but first of all - we must have something which work, and say - that it useful and usable. ;) @Burrito-Bazooka , I will listen to any of your ideas, cause your bounty make me look at that for a (longer) while : P |
Hello, |
@Burrito-Bazooka 2 things:
I have the same, I understand - you would make a playlist which will be compatible with another software based on search by label.
I cannot connect it with more than one label ;) Maybe later Clementine try to find that song after rename? ;) another issue... (quest :D ) @er314 if you write it to file you will have quite nice increase of disk i/o ;) |
@er314 - good example would be saving tags and recognize it by every app you mention. I think you show that compatibility between apps are not "assured" (maybe I use wrong word, sorry!). |
Hi,
|
As I said, import/export as dependency do another software should be another module (eg. plugin?).
We are talking about only "label" column for now, so it is different issue I think... @Wyatts what you think? Quot Libet is specific. I could say anything more, cause I do not know that well. But I think it is another issue. Anybody could (dis)agree?d And maybe, you are the best person to write issue about that custom tags (no. 1) and import/export to foobar/QL format files. But I think we have discuss about ocean of issues - we should CHOP that work. Maybe my knowledge is too small, but I hope it's the right way... |
@hatstand @Chocobozzz @Wyatts @er314 @Burrito-Bazooka please decide:
I bet 2nd. @Xaavier what do you think about them - i think with second you probably would have your imagine come true and @er314 would also be able to use "foobar-like tags". |
Woah, lots to catch up on. Okay... @JulianVolodia The function of labels is to enable users to search for music in terms of arbitrary features they've selected. When users consider their collections, it's in terms of songs first. So while they certainly might say "this artist is awesome", the real meaning is "this artist's songs are awesome". Maybe it's theoretically nice to have, but in practice I can't imagine any user wanting to search for songs from all "awesome" artists while excluding albums and songs that are "awesome" from artists not in that list. It's a contortion with no practical benefit for a pattern of search behaviour that I've never seen. This is why I suggest import filters as a middle ground: it lets you make those sorts of assertions that have far-reaching effect on your future library, but doesn't lock you into a situation where they can go wrong ("awesome" artist makes songs I don't think are awesome) and doesn't force a label search to build a union of sets (which greatly complicates querying). I didn't want to bring this up, but since you mentioned "comments which express your feelings": I wonder if its possible to draw a distinction between factual labels and subjective labels. Amarok's current labels widget will automatically fetch "provisional labels" from last.fm tags. They are terrible. Seriously, people abuse the crap out of them. You'll see things like "I want to marry the singer" or "Dan's favourites" or "If this song was a pokemon I'd catch it". It's the worst. @Burrito-Bazooka This also highlights the tension between objective/subjective labels outside of personal contexts. i.e. If something is instrumental or has a harpsichord lead, that's just kind of a brute fact; but if one of my flatmates is sharing his collection, I don't care that he thinks half his library is "music for banging" or whatever (TMI, dude). @er314 Mind if I ask what you use "custom tags as custom columns" for? That's way out of scope for this bug, but intriguing. @JulianVolodia |
Thanks @Wyatts !
It depends on possible use case and user. I don't believe I know how many uses could have very common and "usable in general" labels than special-designed labels. Maybe they just heard that artist is awesome and want to make sth like note? This is my way of thinking about labels. For now I understand that you agree that doing Part I,II & III from my early post is good way. Of course they should search for music using them. But in next step (not now) maybe we want to allow them to make that strange things. Bugs are here, ehm - how to set dependency/blocking status? ;) I hope I have done it good way. If any more should be - please comment here and specify. ...and remember:
you made my day ---.--- |
Sure ! I happily answer any non technical questions :-)
That's about it :-) ** : cherry on the cake : when defining the view expression, you can "process" your tags, so here for the tag "added" I do : Ok, so this is non technical, but nevertheless, advanced usage of custom tags :-) |
Storing these in the database makes more sense with an option to synchronise to files like we currently do for ratings and statistics. I think adding custom labels/tags for anything other than songs is just feature creep. |
@er314 i think the sentence:
... is the main explain and should be moved to another place, could do it, @er314 ? Thanks in advance. @hatstand I appreciate that ou agree with my plan and accept adding synchro in 2nd step? :) PS and maybe somebody want to talk how we should export them to file (how to save many labels, into one cell on many?)... |
Hi, just FYI this feature is easily available in iTunes using the "Grouping" field for a given track. If I put my tags in that field and then look at the file in Windows Explorer, the tags show up in the "Group Description" property (at least for MP3s). This has made it easy to keep my tags assigned to individual songs and have them be portable across music players. EXCEPT, no music player on Ubuntu currently searches the Grouping field; thus, the years of organizing my library along mood, month, situation, etc would be lost if I switched to Clementine. Please incorporate this into Clementine! Once it is incorporated, I will switch to Ubuntu in a heart beat. |
? |
Following up on this. It would be extremely useful to be able to better organize my rather large library. Thank you! |
Still anyone hasn't picked up on it yet? Would be really nice |
@StargazerA5 @classic0 @mgalvey in your opinion:
will be better? How much libs do you hold there? |
PS if one of you want to give it a try with some basic pull request - go ahead :) Provide patches tested against main development branch.
|
To my opinion, this is the major lack of Clementine and it would be great to see this option.
The first option is better because it would allow retrieve the information from other software and, as you point out, prevent problems if DB is corrupted. |
it will not, unless there is a widely accepted standard on the format in which the tag/label data is saved in the file. Further, these labels only make sense for the user who added them. When the file is shared with someone else, this information becomes useless, not to mention that it may be undesirable to disclose it at all. The best way to handle this, in my opinion, would be to save the tags/labels info in the database, never touch the audio files, and have an option to export the labels in CSV or other standard format that could be used to import them to any other software. |
It could make sense if one just sets up an informal standard. Everyone refers to this as "labels", so let's add a custom tag in the file with this name. I agree that it's a problem if other softwares use other conventions, but for the moment there is none. Only Amarok has "labels", but they are not saved to the file. And here is my point: if Amarok was saving them to the file, and if Clementine was using the same convention (which I want to stress again is not that silly since everyone uses the same name when looking for this feature), then I would be able to re-import all my labels in Clementine instead of loosing them. Another possibility would be to let the user choose the name of the tag, since this name can easily be changed by a tag editor software (like Ex Falso). |
Personally I'd prefer not modifying the file any more than necessary. I've had a large music collection for many years and had a few cases where disks went bad and introduced corruption. Trying to figure out where things have gone wrong is much harder when you can't compare hashes because the files get changed frequently. Much better, IMHO, to store the data in the database. |
From luke.schlather on September 21, 2010 22:51:43
Add support for labels like Gmail's. My memory says Amarok supported some sort of custom tags. Would allow people to organize their music in intuitive ways.
Original issue: http://code.google.com/p/clementine-player/issues/detail?id=788
The text was updated successfully, but these errors were encountered: