Open Clementine-Issue-Importer opened 10 years ago
From john.maguire on May 07, 2010 06:19:08
Labels: -Type-Defect Type-Enhancement Component-MusicLibrary
From sgringwe on December 02, 2010 20:51:53
I agree completely with this idea. However, to at least be constructive here are some ideas:
I'm not a big fan of the "shuffle by similar" style that Banshee uses but that's just me.
EDIT: Looking through the source code, I can already see that this would be easy to do. You can use the lastfmtrackinfoprovider.h file to get the tags of the files.
From sgringwe on December 02, 2010 21:21:54
Ok, Wow. We have all the information needed to complete this feature. We have song tags, artist tags, and similar artists. All we need to do is read in that data and find songs in the library that are from that artist or have similar song tags/artist tags.
I only know java, c#, and c but i will try and hack a file together to do this maybe.
From gobnuts on December 03, 2010 03:39:53
Yep, this would indeed rock. Issue 1014 kinda goes hand-in-hand with this.
From sgringwe on December 05, 2010 17:59:36
Developers, please see the following file and lines 31, 188 and the end of the file for my idea on this implementation.
Scott
Attachment: libraryview.cpp
From s.rekatzky on December 06, 2010 21:49:32
I would like to see this. Adding ONE song at a time would be enough. I really like the rhythmbox plugin, and with guayadeque it's even build in. Please make it happen, since clementine is an awesome player already.
From davidsansome on January 18, 2011 10:56:12
Issue 1318 has been merged into this issue.
From cclonch on January 26, 2011 11:37:13
+1 @sgrin: I like all three options you have purposed.
I use Exaile currently because of its dynamic feature. However with a considerably large collection it can stray into stuff I'm not in the mood for. Having a dynamic option in creating smart playlists would allow me to lock it to a particular genre.
I'd also like to suggest the ability to spawn a dynamic playlist by right-clicking on song.
From rhadenstone on February 07, 2011 15:21:56
+1 This is one of the few things that keeps me from using the otherwise lovely Clementine. It would also be nice to have filters. For example, I'm a DJ, so I have loads of remixes stuffed into one or two folders and sometimes that's all I want to listen to, or make a playlist of recently acquired tracks and then let the program continue on via last.fm tags.
Thanks!
From matelich on May 11, 2011 09:10:55
Just started trying out Clementine, so I'm not sure how things have changed from AmaroK 1.4, but it had this last.fm related artist playlist feature (possibly as a plugin?).
Looks like it was called the Suggested Songs dynamic playlist.
From CoachArnold on May 11, 2011 12:08:35
AMarok's feature of providing links to one of several songs based on the current song playing is the best possibility. I assume this is coming from the Last FM scrobble.
t
From sturmgas on June 24, 2011 05:14:07
Sounds like the "smart DJ-mix" from the zune-software which i really like and use.
From keirangtp on August 18, 2011 08:33:54
Issue 2081 has been merged into this issue.
From davidsansome on December 18, 2011 10:19:02
Issue 2492 has been merged into this issue.
From john.maguire on January 11, 2012 04:07:59
Issue 2600 has been merged into this issue.
From VolpeRossa on January 20, 2012 05:13:19
I echo the desire!! The only reason to me to look at Clementine's alternatives (and I come from Amarok) is the dynamic playlist driven by fm.com-like associations. Guys, you're already half way: in the artist info you already indicate "similar artists", a first "approximation" of Genius (oops! did I say that?) would consist in picking up from collection the existent similar artists and then use a randomly generated number to pick up one of the authors eventually existing in collection. Reapplying the same more than once should build a kind of homogeneous playlist!...
From Jbuencuerpo on January 22, 2012 05:40:35
Amarok 1.4 got it, so I hope will be ported this feature.
From cedric.milesi on February 29, 2012 07:05:03
And if it could use songs from spotify or grooveshark subscription that would be awesome...
From arnaud.bienner on March 01, 2012 03:57:18
@cedric.milesi: Note that "Grooveshark radio" starts a dynamic playlist, grabbing songs from Grooveshark based on Grooveshark songs you previously listen to. Not exactly what you except I think, because it's Grooveshark only, but quite similar.
From jaosorior on July 12, 2012 11:05:31
I actually would like this feature too, is somebody working on this? or is it free to take?
From dtverder on July 12, 2012 11:16:54
Amarok 2 has this feature. That is the only reason I still use Amarok 2 occasionally.
From arnaud.bienner on July 13, 2012 01:44:31
@jaosorior: As far as I know, no one has started working on this. So if you're interested in, don't hesitate ;) If you have questions about the code or need some help, you can ask us (here or on IRC).
Also, I know that echonest (which we already use to fill Artist tab with artists' info and similar artist, etc. and Song tab) provides dynamic playlist functionalities. Not exactly "dynamic playlist populated with similar artists" but this is somehow similar I think. I know some on the team we're interested in working on the echonest dynamic playlist, but as far as I know nothing has been done yet.
From dtverder on July 13, 2012 05:43:59
It would be good if there were two options with this feature.
Hi, I would like to work on this issue. Could be by adding a new type of smaryplaylist that adds similar tracks to the current one from a set of similar tracks returned by last.fm or echonest. However, I have a little problem: no idea where to begin. I have been reading the code of Clementine and I am completely lost.
So, question to the developers of Clementine: how can I add a new type of smartplaylist? Is there any documentation about smartplaylists generators? I saw that there is a generator class in src/smartplaylists, but, how can be used to extend the functionality of smartplaylists?
Is this still being considered? I just wanted to add in case it is that Guayadeque has a pretty decent option called smart play. The playlists seems to keep on track and not wander too much across decades or genres. It also has filters for allow and deny, so you can for example deny tracks you have already listened too or allow certain ratings. Maybe this can be of some use
To mention this again: I would also be very happy to have this feature. Many other players already support it. There should be lots of code around. (-> Amarok, Ario, mpd-sima)
That reminds me, I recently tried to use the last.fm similar-artists API for another project, but I was not able to apply for an API key, and in overall it seems to me that the last.fm API is slowly dying (HTTP timeouts on the API endpoint, many unresponded API questions in the support forums, etc.). But the Spotify API also has similar artists, which could be used instead.
@rohieb Yes, the Last.fm API is unreliable these days, as they are apparently pushing forward with their new strategy of self-sabotage.
I've made (and still make) Last.fm related tools, and I have to rely on a special blend of API usage and little tricks. One of the best tricks I've learned is that you don't need the API to get station playlists with Spotify URIs (though there's no guarantee of stability).
For example, if you do a simple get
request for http://www.last.fm/player/station/music/Reigning+Sound
, you get a response like this (actually there are a lot more fields, but most of them have null
values, so I stripped those for concision):
{
"playlist": [
{
"url": "/music/Reigning+Sound/_/Falling+Rain",
"duration": 191,
"artists": [{"url": "/music/Reigning+Sound", "name": "Reigning Sound"}],
"name": "Falling Rain",
"playlinks": [
{
"url": "http://open.spotify.com/track/1H4GOvboZnTIWhfQQZ9x5H",
"id": "1H4GOvboZnTIWhfQQZ9x5H",
"affiliate": "spotify"
}
]
},
{
"url": "/music/The+Almighty+Defenders/_/The+Ghost+With+The+Most",
"duration": 244,
"artists": [{"url": "/music/The+Almighty+Defenders", "name": "The Almighty Defenders"}],
"name": "The Ghost With The Most",
"playlinks": [
{
"url": "http://open.spotify.com/track/3eLS2t2p8kQWMnD0FCWMil",
"id": "3eLS2t2p8kQWMnD0FCWMil",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Reigning+Sound/_/North+Cackalacky+Girl",
"duration": 166,
"artists": [{"url": "/music/Reigning+Sound", "name": "Reigning Sound"}],
"name": "North Cackalacky Girl",
"playlinks": [
{
"url": "http://open.spotify.com/track/2dozWR4XVaR4L0GeNmnYcc",
"id": "2dozWR4XVaR4L0GeNmnYcc",
"affiliate": "spotify"
}
]
},
{
"url": "/music/The+Detroit+Cobras/_/It%27s+Raining",
"duration": 154,
"artists": [{"url": "/music/The+Detroit+Cobras", "name": "The Detroit Cobras"}],
"name": "It's Raining",
"playlinks": [
{
"url": "http://open.spotify.com/track/7BQg6UcAsVEd5maZEfIsXZ",
"id": "7BQg6UcAsVEd5maZEfIsXZ",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Oblivians/_/Christina",
"duration": 119,
"artists": [{"url": "/music/Oblivians", "name": "Oblivians"}],
"name": "Christina",
"playlinks": [
{
"url": "http://open.spotify.com/track/7ah8dRCjJFGCWstleG0PpD",
"id": "7ah8dRCjJFGCWstleG0PpD",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Reigning+Sound/_/In+My+Dreams",
"duration": 178,
"artists": [{"url": "/music/Reigning+Sound", "name": "Reigning Sound"}],
"name": "In My Dreams",
"playlinks": [
{
"url": "http://open.spotify.com/track/2386ZbOjwKtPz3wUDbAZrd",
"id": "2386ZbOjwKtPz3wUDbAZrd",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Compulsive+Gamblers/_/Rock+&+Roll+Nurse",
"duration": 250,
"artists": [{"url": "/music/Compulsive+Gamblers", "name": "Compulsive Gamblers"}],
"name": "Rock & Roll Nurse",
"playlinks": [
{
"url": "http://open.spotify.com/track/1pOsQ80ML6F6c8QtXiirw6",
"id": "1pOsQ80ML6F6c8QtXiirw6",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Thee+Headcoats/_/Davy+Crockett",
"duration": 175,
"artists": [{"url": "/music/Thee+Headcoats", "name": "Thee Headcoats"}],
"name": "Davy Crockett",
"playlinks": [
{
"url": "http://open.spotify.com/track/2U5298Y8BAUo41n74yv16D",
"id": "2U5298Y8BAUo41n74yv16D",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Reatards/_/I%27m+Down",
"duration": 114,
"artists": [{"url": "/music/Reatards", "name": "Reatards"}],
"name": "I'm Down",
"playlinks": [
{
"url": "http://open.spotify.com/track/2xPhIaqxaOaDPkk6mKnMFY",
"id": "2xPhIaqxaOaDPkk6mKnMFY",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Reigning+Sound/_/Medication",
"duration": 83,
"artists": [{"url": "/music/Reigning+Sound", "name": "Reigning Sound"}],
"name": "Medication",
"playlinks": [
{
"url": "http://open.spotify.com/track/65BRuBhpQoIyqOSENpoVgO",
"id": "65BRuBhpQoIyqOSENpoVgO",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Thee+Mighty+Caesars/_/Wily+Coyote",
"duration": 203,
"artists": [{"url": "/music/Thee+Mighty+Caesars", "name": "Thee Mighty Caesars"}],
"name": "Wily Coyote",
"playlinks": [
{
"url": "http://open.spotify.com/track/4fBOggW0kXQDNlM9UJvrau",
"id": "4fBOggW0kXQDNlM9UJvrau",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Les+Sexareenos/_/My+Baby+Keeps+Me+Up+All+Night",
"duration": 95,
"artists": [{"url": "/music/Les+Sexareenos", "name": "Les Sexareenos"}],
"name": "My Baby Keeps Me Up All Night",
"playlinks": [
{
"url": "http://open.spotify.com/track/3wa5Hs0KlT5zy1N5oRKlHy",
"id": "3wa5Hs0KlT5zy1N5oRKlHy",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Thee+Headcoatees/_/Johnny+Jack",
"duration": 163,
"artists": [{"url": "/music/Thee+Headcoatees", "name": "Thee Headcoatees"}],
"name": "Johnny Jack",
"playlinks": [
{
"url": "http://open.spotify.com/track/09pzrcLc1fZY8rzdyFN71z",
"id": "09pzrcLc1fZY8rzdyFN71z",
"affiliate": "spotify"
}
]
},
{
"url": "/music/The+King+Khan+&+BBQ+Show/_/Animal+Party",
"duration": 217,
"artists": [{"url": "/music/The+King+Khan+&+BBQ+Show", "name": "The King Khan & BBQ Show"}],
"name": "Animal Party",
"playlinks": [
{
"url": "http://open.spotify.com/track/0OlGcfxb58mFgkCNz5547g",
"id": "0OlGcfxb58mFgkCNz5547g",
"affiliate": "spotify"
}
]
},
{
"url": "/music/The+Ettes/_/The+Pendulum",
"duration": 141,
"artists": [{"url": "/music/The+Ettes", "name": "The Ettes"}],
"name": "The Pendulum",
"playlinks": [
{
"url": "http://open.spotify.com/track/5femXsHjBxoBe6NmviYr0a",
"id": "5femXsHjBxoBe6NmviYr0a",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Blacktop/_/Blacktop+(Intro)",
"duration": 175,
"artists": [{"url": "/music/Blacktop", "name": "Blacktop"}],
"name": "Blacktop (Intro)",
"playlinks": [
{
"url": "http://open.spotify.com/track/4vrkRN4Y41xpa2pyv80WFE",
"id": "4vrkRN4Y41xpa2pyv80WFE",
"affiliate": "spotify"
}
]
},
{
"url": "/music/BBQ/_/Outta+My+Mind",
"duration": 185,
"artists": [{"url": "/music/BBQ", "name": "BBQ"}],
"name": "Outta My Mind",
"playlinks": [
{
"url": "http://open.spotify.com/track/4qfoBEEUU3RdX8lfBGn9se",
"id": "4qfoBEEUU3RdX8lfBGn9se",
"affiliate": "spotify"
}
]
},
{
"url": "/music/The+Deadly+Snakes/_/Gore+Veil",
"duration": 275,
"artists": [{"url": "/music/The+Deadly+Snakes", "name": "The Deadly Snakes"}],
"name": "Gore Veil",
"playlinks": [
{
"url": "http://open.spotify.com/track/6ug3dPZgRljwMQaGsx7xKT",
"id": "6ug3dPZgRljwMQaGsx7xKT",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Holly+Golightly/_/That%E2%80%99s+What+I+Want+For+Christmas",
"duration": 140,
"artists": [{"url": "/music/Holly+Golightly", "name": "Holly Golightly"}],
"name": "That’s What I Want For Christmas",
"playlinks": [
{
"url": "http://open.spotify.com/track/2g68J1eIHfkpdxzUuiKa6t",
"id": "2g68J1eIHfkpdxzUuiKa6t",
"affiliate": "spotify"
}
]
},
{
"url": "/music/The+Spaceshits/_/Can%27t+Fool+With+Me",
"duration": 173,
"artists": [{"url": "/music/The+Spaceshits", "name": "The Spaceshits"}],
"name": "Can't Fool With Me",
"playlinks": [
{
"url": "http://open.spotify.com/track/1syaoIvDrIAmotc382rb5b",
"id": "1syaoIvDrIAmotc382rb5b",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Nobunny/_/Motorhead+with+Me",
"duration": 149,
"artists": [{"url": "/music/Nobunny", "name": "Nobunny"}],
"name": "Motorhead with Me",
"playlinks": [
{
"url": "http://open.spotify.com/track/1s68lSsNtzSyTAu8hVx8we",
"id": "1s68lSsNtzSyTAu8hVx8we",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Jack+Oblivian/_/Rat+City",
"duration": 206,
"artists": [{"url": "/music/Jack+Oblivian", "name": "Jack Oblivian"}],
"name": "Rat City",
"playlinks": [
{
"url": "http://open.spotify.com/track/53nXMiIGwwu1r0t0tEYbSD",
"id": "53nXMiIGwwu1r0t0tEYbSD",
"affiliate": "spotify"
}
]
},
{
"url": "/music/The+Parting+Gifts/_/This+House+Ain%27t+A+Home",
"duration": 128,
"artists": [{"url": "/music/The+Parting+Gifts", "name": "The Parting Gifts"}],
"name": "This House Ain't A Home",
"playlinks": [
{
"url": "http://open.spotify.com/track/1PxJVDguyQqhIEOjE3YV1e",
"id": "1PxJVDguyQqhIEOjE3YV1e",
"affiliate": "spotify"
}
]
},
{
"url": "/music/Gore+Gore+Girls/_/Where+Evil+Grows",
"duration": 168,
"artists": [{"url": "/music/Gore+Gore+Girls", "name": "Gore Gore Girls"}],
"name": "Where Evil Grows",
"playlinks": [
{
"url": "http://open.spotify.com/track/6j9JIPQRRL4RgrhjL0C3T6",
"id": "6j9JIPQRRL4RgrhjL0C3T6",
"affiliate": "spotify"
}
]
}
]
}
+1
From phoebe@spambog.com on May 02, 2010 21:40:55
Upon playing a track query last.fm for similar artists and append an appropriate track from the collection to the end of the playlist.
Amarok2 sadly hides the toggle for this feature behind half a dozen clicks. Exaile on the other hand gets it completely right, a simple button beside shuffle/repeat, dead simple. Just turn it on, pick one track you are in the mood for, let the show run, can't imagine listening to my collection without it anymore.
Original issue: http://code.google.com/p/clementine-player/issues/detail?id=273