araz
sorry for the inconvenience. minVersion & maxVersion are fixed now.

Helps you to tag your music (manually or automatically from last.fm artist tags) and use the tag cloud to browse your music library.
I've tested it with 1.8 and it seems that everything is working fine
Great add-on! I've been waiting for something like this.
Two questions/suggestions:
Would it be able to fetch tags only from a specific (my own!) last.fm account?
I think it would be better to have the tagging form in a separate preferences window and just display the tag cloud in the media view.
Cheers!
A screenshot wouldn't be bad, too... took me 5min to figure out, that it's a Media-View ;)
Very good start! I love the tag-cloud and how it behaves. :-)
Also I would like to know, where do you save the tags?
It's the first release, so I don't know if you already like suggestions, but I do it anyway: ;)
1. The Editor-Interface is not very pretty & functional. (It doesn't work with smaller window at all, doesn't respect the colors of the feather, lags resizing functionality etc.). Would you allow me, to contribute a patch? If yes, I would try to group with Murphy, a guy who does fantastic interface design, and send you a new media-page.xul.
2. If I fetch tags from last.fm, the "tags on selected item"-field is not updated automatically. I have to select another song and switch back to the first one, to see the tags. Same thing, if I remove tags (they don't get removed from the list, i have to switch away and back again).
Thanks for your work, this is really nice feature, if been long waiting for. Keep up the good work! :-)
/(° v °)/=@
PS: I add your Media-View to my Pane Buttons Addon as soon as I can, of course ;)
The look and feel of this add-on could be improved - but I know, a programmer is not a good designer. ;) And it is of course the first version.
Nevertheless, the idea behind this add-on is ingenious. I hope you keep on working on this! :)
awesome. suggestion: could you make a progress bar of some sorts.. cause when "selecting all your music" and then "Adding tags" from last.fm (when you have a lot of music) takes a looong time to gather them; freezing a lot during the fetching... so yaaa.. that would be swell... Thanks for the add-on!
Just two short questions to the functionality:
1. What exactly is the option "Min tag count" good for?
2. "Remove all tags" removes all tags of
(a) the selected song(s) or
(b) of all songs in the list or
(c) of all songs in the library or
(d) something else?
Is there a way to have it get the tags from somewhere instead of me having to manually tag all of my songs?
Thanks
Really too wide for my taste. It could be nice to be able to import tags from last.fm, or from id-tags. It's pain to add tags to thousand and thousands of songs.
A very interesting extension! It can be quite useful.
I had a problem with the "Remove All" button (sometimes it does nothing, sometimes it works). And with the "Remove" Button when there is only one tag in the song (I get songs with no tags but with a checkbox and the remove button).
I wonder if this comment section is the best way to report problems.
When I select a tag, the list of music shows not only the music with this tag, but also music with the the text of the tag in the title, or in other metadata.
I use it but he don't work. I try to fetch tags from songs but tag's don't appear...
Is that a bug ?
There's no problem. Excuse me...
I tried but could not find a solution to the search all field problem (see my other post). I found another related problem. If you select some tags and then make a search, the tag selection is lost.
I think that the appendSearch is not the ideal method to do the filtering, but the appendFilter is not any better because it only matches the exact text in http://songbirdnest.com/tag-cloud#tags. Unfortunately I don't know the API well enough to offer a solution :-( nor to say that there is no good solution.
So i propose a different approach: what about creating a playlist for each tag?
Hi, I'm back again :-) this time with good news... I just found a solution to the filter problem.
I will post here the code, then in the next post I'll make some remarks.
var TagFilter = {
selectedTags : null,
selectedGuid : null,
filterByTags : function(mediaListView, selTags) {
if (!window.SBProperties) Components.utils.import("resource://app/jsmodules/sbProperties.jsm");
if (selTags.length < 1) {
mediaListView.filterConstraint = null;
return;
}
this.selectedTags = selTags;
mediaListView.mediaList.enumerateAllItems(this);
var builder = Components.classes["@songbirdnest.com/Songbird/Library/ConstraintBuilder;1"].createInstance(Components.interfaces.sbILibraryConstraintBuilder);
if (this.selectedGuid.length > 0) {
for (var i=0; i < this.selectedGuid.length; i++) {
builder.include(SBProperties.GUID, this.selectedGuid[i]);
}
} else {
builder.include(SBProperties.GUID, "a"); // should make an empty list
}
mediaListView.filterConstraint = builder.get();
},
onEnumerationBegin: function(list) {
this.selectedGuid = new Array();
},
onEnumeratedItem: function(list, item) {
if (item.getProperty(SBProperties.isList) == 1) return;
if (this.selectedTags.length < 1) return;
var tags = item.getProperty('http://songbirdnest.com/tag-cloud#tags');
if (tags != null) {
var tagsArray = tags.split(",");
if (tagsArray.length < 1) return;
for (var i = 0; i < tagsArray.length; i++) {
tagsArray[i] = tagsArray[i].trim();
}
for (var i = 0; i < this.selectedTags.length; i++) {
if (! this.contains(tagsArray, this.selectedTags[i].trim())) return;
}
this.selectedGuid.push(item.guid);
}
},
onEnumerationEnd: function(list) {
},
contains : function(list, item) {
for (var i = 0; i < list.length; i++) {
if (list[i] == item) {
return true;
}
}
return false;
}
}
Well, the code i just posted do the filtering. To integrate in with your code just call:
TagFilter.filterByTags(this._mediaListView, this._selectedTags);
from the filterSelectedTags function
In the onUnload function of the media-page add this lines:
if (this._mediaListView)
this._mediaListView.filterConstraint = null;
and all should work.
Having Your add-on in mind I posted an idea:
http://getsatisfaction.com/songbird/topics/an_idea_how_multiple_tagging_might_should_look_like
Hope You will like that direction and it might somewhat help You with further development of TagCloudGenerator.
And one more thing. Where can I find a file where multiple tags are stored? Is there any way to edit them "in file" cause I have some songs that have tag "X" on a cloud but don't have tag "X" in cloud controls. Tag "X" is inappropriate fot that songs but I cant remove it (cause it is not there in controls). :-(
Ok, I solved it for now. So at least in this version avoid using "spaces" in two-or-more-words tags.
Other thing is that pretty often I have to do little trick to "force refresh" tag cloud controls. The trick is change right pane and revert it back to tag cloud controls. Bit bothering. Anyways it's still the best multiple tagging add-on up to date.
Hi, back again.
This "force refresh" in the Kuba's post happens here me too.
Being more specific for me it happens when I change the focus of the media-pane. For exemple, if i am editing tags in my main library, then click in any playlist, the Tag Cloud Controls display panel get lost. even if a go back to library it don't come back to sync again.
I think its because the _mediaListView of the tag cloud control dont change when the focus of the main window is changed. Or the new media view after I change the focus dont call the onSelectionChanged function. Or something like that.
By the way,
under what license this add-on is released?
Do you intent to put the source code in some online repository like google code or something like that?
I'm not sure why but I get a "search failed 404" when attempting to tag Björk (with the umlaut). "Bjork" (no umlaut) works. Maybe special characters aren't URL-encoded properly or something?
Same issue shows up when I try to tag "Zoë Poledouris". If I switch it to "Zoe Poledouris" then it doesn't complain. Its gotta be something in how special characters are handled...
Great addon! :)
There are a few things that I think could make it better.
Firstly, It would be good if the tag cloud was cached. This would mean that it wouldn't need to be regenerated every time you wanted to look at it. Right now have 18k tracks in my library and it takes a long time to generate the tag cloud.
When I tagged my tracks from last.fm it took ages, which I would expect it to. After all the tracks were tagged there were a number of dialog boxes which were blank, they didn't have any text on them and I couldn't close them. I needed to restart songbird because I couldn't get rid of them.
Another thing which would be good is if you could specify a limit on what appears in the tag cloud to "only tags which appear more than n times" (n being a preference). Because I have so many tracks I also have loads of tags which pushes everything down and the tag cloud takes up most of the screen.
It'd be awesome if these things could be added :)
Is the code under an open license?
Hi araz
thanks for this update! You extension is a very nice and useful one.
would you mind updating the max version to make it compatible with 1.3.1 at least (may be also 1.4!!)
Thanks
Is this possible to migrate my own tag from one computer to another? I try backing up my songbird profile but it looks like the tag data is not stored in the profile. I would really appreciate if someone can tell me how to do it if there is a way.
Thanks!
love the addon! So I thought of a way that would really help boost the compatibility with iTunes. In iTunes I have smart playlists set up where they contain songs with certain tags. Since iTunes doesn't have a "tag" field, I was thinking if maybe functionality could be added to this addon: when I add a tag to a particular track in songbird, instead of just adding it to the internal database, it also writes the tag to the mp3 tag under say "Grouping" (I don't use that for anything else, and iTunes recognizes it). Too hard? Are you willing to open-source your plugin?
I would really love to have a tagging extension that adds a tag list to the filter pane. Tag clouds have extremely limited usefulness, but what I really need is a many-to-many alternative to the insufficient and outdated one-to-many genre classification system. Tags can provide exactly that, but they need to work in the filter pane just like genres, with inclusive match-any selection (and perhaps for other use cases, an additional alternate pane that offers exclusive match-all selection).
I don't know anything about extension development, but, I will look at the code and APIs myself if I get a chance before the holiday season is over.
Hi. I'm really interested in a really good media tagger. I think that the concept of the tags is a great solutions for really big collections. The id3 tag "Genre" is simply not enough, a song could be rock, electronic and instrumental. It's not possible to simplify the genre of a song in a word.
I were tagging all my music using my own method, writing in the comment id3 tag of the files. But I realized that i really need a good plugin that could not only show the cloud, I need to read all tags from my files and in the other hand suggest (when i'm tagging new mp3s) the existing tags, and manage all the tags with one operation like change a tag, add a new one, etc.
I couldn't try this Add-on with the last Songbird Version. It says that there were not compatible. I really love the possibility to an update to the new version of Songbird.
I really don't know anything about developing Songbird extensions but i'm a experienced programmer in some Object Oriented Languages.
I would like to collaborate and this is the only open source project I saw (it was a really good idea).
Sorry for my english.
Fully agree with obijuan! This can make a difference in Songbird. I'm looking for such a feature a LONG LONG time now.
BTW, please encode the tags in the meta field "comment" as comma separated values, so its easy portable (this method also works when simple comments search is supported in other players). Also tags are a bit of a comments, isn't?!
Is there any update planned?
I'd love to give this a try. Any chance of an updated version that works with the current version of songbird? Pleeeeaaaase?
GeekShadow
You need to bump minVersion to 1.2.0 and maxVersion to 1.3.0a, so people can install it !