Hydrogenaudio Forums

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: JohanDeBock on 2009-11-13 02:52:17

Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-13 02:52:17
Soft Playlists 2011-02-05 (https://flattr.com/thing/55600/Last-fm-playlist-creation-and-love-track-foobar2000-component)
-added Last.fm custom playlist functionality, creating a new one must be done on www.last.fm for now

IMPORTANT: For the playlist generation features to work, the foobar2000 Media Library must include at least one folder with music, the more the better!

Can create different Last.fm related playlists:
->loved tracks of a single user, multiple users, friends or neighbours.
->recent tracks of a single user, multiple users, friends or neighbours.
->top tracks of a single user, multiple users, friends or neighbours over different periods.
->top tracks of an artist.
->top tracks of artists similar to an artist.
->top tracks with certain tag.
->tracks similar to a track.
Can also...
-love, unlove, ban and unban a track on your Last.fm account.
-add a track to a custom playlist on your Last.fm account.
-save and load XSPF playlists (make playlists without hard paths). This makes it possible to easily share playlists with other people. Also when you restructure your library (change location of your music files), these playlists will continue to work.

Code: [Select]
Changelog:

2011-02-05:
-added Last.fm custom playlist functionality, creating a new one must be done on www.last.fm for now
2011-02-04:
-changed feed downloading to match Last.fm api changes
-recent tracks playlist: duplicates are not removed anymore
2011-02-03:
-fixed fetching large track feeds for Top Tracks and Recent Tracks
2010-10-21:
-fixed sorting top tracks by playcount when including partial title matches
2010-10-20.2:
-fixed bug when tracks with only artist or title tag are present in library
-more error handling and output
2010-10-20:
-fixed partial title matching
-more error handling and output
2010-10-16:
-added unlove, ban and unban track function
-more error handling and output
-linked against SDK 2010-10-02
2010-08-28:
-added option to also include partial title matches
2010-08-16:
-added option to prefer latest or oldest tracks
-matching 100000 tracks in a library of 20000 tracks is now 9x faster, now takes 870ms on a core i7
2010-08-15:
-added option to prefer highest bitrate, lowest bitrate, longest or shortest tracks
2010-08-11.2:
-fetching more than 1500 loved tracks should now work
2010-08-11:
-using foobar internal http interface which mean proxy should now work
-fixed startup delay issue
2010-08-06:
-fixed some bugs
2010-07-08:
-Added: Last.fm Top Tracks, Loved Tracks and Recent Tracks for each single user of the custom Last.fm user list
2010-07-06:
-Now fully compatible with foobar2000 1.0
2009-12-30.2:
-Added: Last.fm User, Friends and Neighbours Recent Tracks
-Added: Last.fm Top Tracks, Loved Tracks and Recent Tracks of a custom Last.fm user list
2009-12-30:
-Added: Last.fm Top Tags Top Tracks
-Added: Last.fm Custom Tags Top Tracks
-Added: ability to prefix generated Last.fm playlists
-Fixed: crash when loving a track without an internet connection
2009-12-06:
-Added: handling of <duration> and <trackNum> tags when saving and loading XSPF playlists
-Changed: more error handling
2009-12-05:
-Changed: fixed various bugs
2009-12-04:
-Added: ability to output unmatched track info to console
-Added: aborting code, possibly time consuming tasks can be aborted now
-Changed: various strings cleanup
2009-12-03:
-Added: Last.fm Similar Artists Top Tracks
-Added: Last.fm Similar Tracks
-Changed: renamed and added config dialog parameters
-Changed: simplified main menu commands layout
2009-12-01.4:
-Changed: undid a mistake in the last 2 versions, top tracks from artists with special chars should work again
2009-12-01.3:
-Changed: fixed utf8 related bug in saving and loading of XSPF playlists
2009-12-01.2:
-Changed: fixed various special character bugs
2009-12-01:
-Added: Last.fm Love Track
-Added: saving and loading of XSPF playlists
-Changed: fixed some bugs
-Changed: optimized some code
2009-11-26:
-Added: Last.fm Friends Top Tracks over different periods
-Added: Last.fm neighbours Top Tracks over different periods
2009-11-22:
-Added: Last.fm Friends Loved Tracks
-Added: Last.fm Neighbours Loved Tracks
-Added: Last.fm User Top Tracks over different periods
2009-11-22:
-Added: proper settings dialog
2009-11-19:
-Added: Last.fm Artist Top Tracks
2009-11-14:
-Changed: optimized the library querying code: 18 times faster for looking up 1000 tracks in a database of 18686 tracks



Code: [Select]
Todo:

-exploit artist.getTopTags,  track.getTopTags, tag.getTopArtists, tag.getTopTracks
-exploit tag.search, tag.getTopArtists, tag.getTopTracks
-exploit user.getRecentTracks in combination with user.getNeighbours, user.getFriends
-exploit library.getTracks
-option for creating playlist from context menu (on selected tracks)
Title: foo_softplaylists
Post by: Jack Schmaltz on 2009-11-13 03:24:17
that sounds like an intesesting component, thank you.

look forward to giving it a play with
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-13 03:24:49
topic title name is too large as the menu item name (and shouldn't be in "File" instead of "Library") 
and entering the name in advanced preferences is not very comfort
how about adding matches for artist similar charts (like foo_scrobblecharts which is now problematic component)?
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-13 03:46:00
topic title name is too large as the menu item name (and shouldn't be in "File" instead of "Library") 
and entering the name in advanced preferences is not very comfort
how about adding matches for artist similar charts (like foo_scrobblecharts which is now problematic component)?


Yeah did't know it wasn't possible to have long titles , if someone wants to fix it please do.

Library is more logical to me

Was a quick way to add the settings.

Started from the foo_scrobblecharts code, I couldn't get the code to compile, and because I wanted to learn everything (It's the first time I write a plugin), I wrote this from 0.
Normally I will include as much as possible that has something to do with soft playlists.
Title: foo_softplaylists
Post by: shakey_snake on 2009-11-13 04:06:12
Title fixed.
Title: foo_softplaylists
Post by: vogliadicane on 2009-11-13 09:23:16
sounds very interesting, thank You!
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-13 17:05:23
Hmm, I can't edit my own post?
Title: foo_softplaylists
Post by: shakey_snake on 2009-11-13 17:25:10
http://www.hydrogenaudio.org/forums/index....showtopic=72003 (http://www.hydrogenaudio.org/forums/index.php?showtopic=72003)
Title: foo_softplaylists
Post by: Dirhael on 2009-11-13 19:39:29
Didn't know I wanted a component like this, but now I do. Thanks!  Would be even better if, in a future version, functionality to easily (not having to open the preferences dialogue) grab loved tracks from other users (perhaps a dialogue offering to grab lists from your friends on last.fm?) could be added.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-13 19:58:00
Didn't know I wanted a component like this, but now I do. Thanks!  Would be even better if, in a future version, functionality to easily (not having to open the preferences dialogue) grab loved tracks from other users (perhaps a dialogue offering to grab lists from your friends on last.fm?) could be added.


Yes that was the first plan, but my knowledge in that domain (win gui stuff) is too little at the moment.

New version:

Soft Playlists 2009-11-13.2
http://telin.ugent.be/~jdebock/foobar2000/...ftplaylists.dll (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

Changed: Optimized the library querying code, should work faster for big libraries and path preferences.
Title: foo_softplaylists
Post by: dreadroach on 2009-11-13 20:17:01
Great component! Exactly what i was looking for.

Keep up the good work, adding some new features (playling band's charts and stuff) would be nice too.

This is great start.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-13 23:47:03
New version:

Soft Playlists 2009-11-14 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

Changed: Optimized the library querying code again
4857 ms --> 263 ms
For looking up 1000 tracks in a database of 18686 tracks. This should be fast enough
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-14 00:03:47
your link is truncated: http://telin.ugent.be/~jdebock/foobar2000/...ftplaylists.dll (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
Title: foo_softplaylists
Post by: Fractal_Mortality on 2009-11-16 15:20:32
Awesome, AWESOME component! I've always wanted something like this!
Title: foo_softplaylists
Post by: dhromed on 2009-11-16 17:01:17
Excellent! This kind of automation is why we have computers in the first place.

Some suggestions:
- shorter menu item label, such as "Generate last.fm Loved playlist". The username is implied, as I'm the one using it.
- move preferences to the Tools item, instead of Advanced. They're not advanced options, they're just plain ol' component prefs.

There's a lot of potential for expanding the functionality, such as the ability to create playlists from other last.fm sources, with relevant options; generating from other users through a quick dialog window, etc etc.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-19 00:34:15
New version:

Soft Playlists 2009-11-19 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

Added: Last.fm artist top tracks playlist generation.
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-19 02:18:44
works great
now can we expect similar artist charts: artist.getSimilar / if library match artist.getTopTracks / library match / sort all by playcount - it seems easy?
Title: foo_softplaylists
Post by: Fractal_Mortality on 2009-11-19 04:20:52
foo_scrobblecharts actually already does what you're asking:

http://www.hydrogenaudio.org/forums/index....showtopic=53695 (http://www.hydrogenaudio.org/forums/index.php?showtopic=53695)
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-19 10:56:07
Indeed it is more or less a contination, a much speedier one.
Top Charts was already included, Loved Tracks not. And foo_scrobblecharts has been put on the crash list.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-19 11:00:45
works great
now can we expect similar artist charts: artist.getSimilar / if library match artist.getTopTracks / library match / sort all by playcount - it seems easy?

Will do it in next version.
Title: foo_softplaylists
Post by: Fractal_Mortality on 2009-11-19 15:18:05
Indeed it is more or less a contination, a much speedier one.
Top Charts was already included, Loved Tracks not. And foo_scrobblecharts has been put on the crash list.


True. I also like how this component doesn't automatically start playing the playlist like scrobblecharts did.

However, if this component will be a full replacement, I might also make a request for a "sort" option... Which just sorts the selected artist tracks by their placement in their last.fm top tracks list. This is a handy feature for quickly finding that artists most popular songs when they are already in a playlist.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-22 03:34:32
New version:
Soft Playlists 2009-11-22 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

Added: proper settings dialog.
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-22 03:48:01
filesize is half than previous, and you managed to make preferences page but I guess you will need to update it for newest foobar version
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-22 13:04:08
filesize is half than previous, and you managed to make preferences page but I guess you will need to update it for newest foobar version


Ok, will have a look what the problems are, is there some info on what has changed or what I should change to get it working again?
Title: foo_softplaylists
Post by: Yirkha on 2009-11-22 13:27:57
The preferences API changed to work in the new/traditional Apply/OK/Cancel mode. But the updated SDK is not out yet, so nothing you can do now anyway.
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-22 16:56:59
-xspf import and export ( http://www.xspf.org (http://www.xspf.org) ).

I just now saw your updated OP - XSPF support is planned. That is great it hear, so I got little excited and thought to ask something, although more related to your matching algorithm then XSPF:
While searching for this post (http://www.hydrogenaudio.org/forums/index.php?showtopic=72068) I stumbled on your post (http://www.hydrogenaudio.org/forums/index.php?showtopic=57784) and I must ask if you can do something like that, i.e.:
- I got some list of lines - could be playlist or simple text file (I think that simple text file with entries line by line would surround more usage examples)
- I enter line pattern i.e. %artist% - %title% as for example in the linked post
- now, can you manage you matching code to look for those entries in user's media library?

Entering "line pattern" would not be mandatory, you can restrict it to your coding preference but it would be easier or course for end user usage.
What do you think?
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-23 11:34:11
That would be exactly what I was planning to do with XSPF. The only difference would be that the %artist% %track% couples would be in XML tags.

Moderation: Removed useless full quote of the preceding post.
Title: foo_softplaylists
Post by: q-stankovic on 2009-11-23 17:11:04
Hello JohanDeBock,

if you have selected multiple items the "artist top tracks" context menu command chooses the first artist of the selection. Would be nicer if the command is only shown if the selection contains the same artist and disappears if the selection contain more than one artist.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-24 00:37:07
New version:
Soft Playlists 2009-11-23 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

-Added: Last.fm Friends Loved Tracks (change max amount fetched: User Feed Limit)
-Added: Last.fm Neighbours Loved Tracks (change max amount fetched: User Feed Limit)
-Added: Last.fm User Top Tracks over different periods
Title: foo_softplaylists
Post by: Galleon on 2009-11-24 04:28:27
New version is just brilliant! Thanks for new features JohanDeBock.
Title: foo_softplaylists
Post by: Keesface on 2009-11-24 22:55:24
Awesome features, but i can't put them in the context menu with foobar1.0beta. Is there a way to do this?
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-26 22:23:28
Awesome features, but i can't put them in the context menu with foobar1.0beta. Is there a way to do this?


A the moment no, I think. The new SDK is not public yet, so I can't make it 1.0 compatible just yet.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-26 22:24:05
New version:
Soft Playlists 2009-11-26 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

-Added: Last.fm Friends Top Tracks
-Added: Last.fm neighbours Top Tracks
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-27 10:54:43
Component is evolving so quick, that's great and it works great - don't hold your breath

When I run friends top tracks for example, and I got track match as example: "Tuxedomoon - Some Guys", and component matched that with track from compilation "Wings of Desire / Der Himmel Über Berlin" where Tuxedomoon participated, so I got:

"Wings of Desire / Der Himmel Über Berlin" - "Tuxedomoon - Some Guys"
which matches this pattern: "%album artist% / %album%" - "%artist% - %title%"

instead of:

"Tuxedomoon / Holy Wars / Some Guys" (release where the track is from)
this matches pattern "%album artist% / %album% / %title%"

So I would suggest instead of matching %artist% - %title%, the match to be "%album artist%" - %title%
And if %album artist% - %title% match fails, then %artist% - %title%, but than matching will slow down a bit
Title: foo_softplaylists
Post by: dreadroach on 2009-11-27 12:32:05
Feature proposal: How about adding possibility to generate playlists by last.fm tags?

I.E: Library >> Play tag >> Rock. Something like last.fm radio. It would be great.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-27 13:34:46
Some good suggestions mentioned.
I will try to implement them when I have time
Title: foo_softplaylists
Post by: Keesface on 2009-11-27 13:37:24
That would be awesome
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-28 00:02:26
New version:
Soft Playlists 2009-11-28 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

+Main Menu Command: Library/Load XSPF Playlist...
+Main Menu Command: Library/Save To XSPF Playlist...
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-28 00:55:43
Very pleased to see this alive  I made xspf playlist with artist - title nodes, but guess that's impossible right now as foobar crashed?
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-28 00:57:24
Can you give more information?
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-28 01:02:30
sure:

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 71351CEEh
Access violation, operation: read, address: 00000000h

Call path:
threaded_process thread

Code bytes (71351CEEh):
71351CAEh:  00 00 00 EB 0B 81 F9 00 00 10 00 1B C0 F7 D8 40
71351CBEh:  03 F8 83 FE FF 72 B3 8B C7 5F 5E 59 C3 CC CC CC
71351CCEh:  CC CC 83 EC 08 53 55 56 33 F6 8D 5E 01 EB 03 8D
71351CDEh:  49 00 83 C8 FF 2B C6 0F 84 80 00 00 00 83 F8 01
71351CEEh:  0F B7 04 77 75 07 B9 01 00 00 00 EB 50 33 D2 85
71351CFEh:  C0 74 44 8B C8 81 E1 00 FC 00 00 BA 01 00 00 00
71351D0Eh:  81 F9 00 D8 00 00 75 2F 0F B7 4C 77 02 8B E9 81
71351D1Eh:  E5 00 FC 00 00 81 FD 00 DC 00 00 75 1A 25 FF 03

Stack (132DFC64h):
132DFC44h:  A96D1BF4 82C50745 FFFFFD34 000002E4
132DFC54h:  FFFFFD34 000002CC 00000018 00000000
132DFC64h:  132DFCDC 00000000 7135750C 689E38DA
132DFC74h:  7134115E 7134C15E 9129C069 00000000
132DFC84h:  132DFD24 00000000 132DFD34 71355498
132DFC94h:  00000000 71344418 132DFCDC 00000000
132DFCA4h:  9129C041 08AF05C0 1948A070 1948A0A8
132DFCB4h:  1948A088 00000000 19167E58 00000000
132DFCC4h:  19167E98 00000000 19167DD8 19167E18
132DFCD4h:  19167ED8 0000000D 00000000 00000000
132DFCE4h:  00000000 14286CB8 00000007 00000007
132DFCF4h:  14286CA8 00000007 00000007 713583E0
132DFD04h:  00000000 0000048C 7135837C 19128FD8
132DFD14h:  00000736 00000736 00000725 7135837C
132DFD24h:  00000000 00000000 00000000 00000006
132DFD34h:  132DFD6C 71356772 0000000C 71348F3B
132DFD44h:  1948A0A8 1948A0B8 1948A0C8 9129C1BD
132DFD54h:  08AF05CC 08AF05A0 132DFDBC 00000000
132DFD64h:  00000000 00000000 132DFDB0 713568F0
132DFD74h:  00000000 002911B6 0034A674 08AF05CC

Registers:
EAX: FFFFFFFF, EBX: 00000001, ECX: 689E38DA, EDX: 0000013C
ESI: 00000000, EDI: 00000000, EBP: 00000000, ESP: 132DFC64

Crash location:
Module: foo_softplaylists
Offset: 11CEEh
Symbol: "foobar2000_get_interface" (+128Eh)

Loaded modules:
foobar2000                      loaded at 001D0000h - 0038A000h
ntdll                            loaded at 776B0000h - 777EC000h
kernel32                        loaded at 75C00000h - 75CD4000h
KERNELBASE                      loaded at 759D0000h - 75A18000h
COMCTL32                        loaded at 74750000h - 748EC000h
msvcrt                          loaded at 77130000h - 771DC000h
GDI32                            loaded at 774B0000h - 774FE000h
USER32                          loaded at 76250000h - 7631B000h
LPK                              loaded at 75E80000h - 75E8A000h
USP10                            loaded at 76320000h - 763BD000h
SHLWAPI                          loaded at 75B00000h - 75B57000h
DSOUND                          loaded at 740D0000h - 74143000h
ADVAPI32                        loaded at 77840000h - 778E0000h
sechost                          loaded at 763C0000h - 763D9000h
RPCRT4                          loaded at 77580000h - 77621000h
ole32                            loaded at 75EF0000h - 7604C000h
WINMM                            loaded at 70990000h - 709C2000h
POWRPROF                        loaded at 73D00000h - 73D25000h
SETUPAPI                        loaded at 75CE0000h - 75E7D000h
CFGMGR32                        loaded at 759A0000h - 759C7000h
OLEAUT32                        loaded at 772E0000h - 7736F000h
DEVOBJ                          loaded at 75AE0000h - 75AF2000h
UxTheme                          loaded at 745D0000h - 74610000h
dbghelp                          loaded at 70400000h - 704EC000h
SHELL32                          loaded at 764B0000h - 770F6000h
shared                          loaded at 10000000h - 1002B000h
imagehlp                        loaded at 77100000h - 7712A000h
COMDLG32                        loaded at 77630000h - 776AB000h
IMM32                            loaded at 77560000h - 7757F000h
MSCTF                            loaded at 763E0000h - 764AC000h
CRYPTBASE                        loaded at 75750000h - 7575C000h
CLBCatQ                          loaded at 75B60000h - 75BE3000h
MMDevApi                        loaded at 742C0000h - 742F9000h
PROPSYS                          loaded at 74610000h - 74705000h
dwmapi                          loaded at 742A0000h - 742B3000h
foo_input_tak                    loaded at 72D80000h - 72DC3000h
tak_deco_lib                    loaded at 00660000h - 0067C000h
foo_softplaylists                loaded at 71340000h - 71366000h
WININET                          loaded at 771E0000h - 772D4000h
Normaliz                        loaded at 75E90000h - 75E93000h
urlmon                          loaded at 77370000h - 774A5000h
CRYPT32                          loaded at 75880000h - 7599C000h
MSASN1                          loaded at 75870000h - 7587C000h
iertutil                        loaded at 76050000h - 76249000h
MSVCR90                          loaded at 68980000h - 68A23000h
foo_vis_shpeck                  loaded at 692D0000h - 69311000h
MSIMG32                          loaded at 74900000h - 74905000h
foo_playcount                    loaded at 00690000h - 006C0000h
foo_utils                        loaded at 68850000h - 68894000h
foo_dumb                        loaded at 01A20000h - 01AAF000h
foo_dsp_downmix                  loaded at 01870000h - 018A8000h
libfftw3f-3                      loaded at 63740000h - 6380B000h
foo_biometric                    loaded at 027F0000h - 02827000h
FooID                            loaded at 01AE0000h - 01AFA000h
foo_dbsearch_api_demo            loaded at 02830000h - 02851000h
foo_dsp_freeverb                loaded at 02860000h - 0287F000h
foo_crystalizer                  loaded at 02890000h - 028B0000h
foo_rgscan                      loaded at 02950000h - 0299F000h
foo_dsp_span                    loaded at 72D50000h - 72D7E000h
foo_ui_columns                  loaded at 02B30000h - 02CA0000h
gdiplus                          loaded at 74440000h - 745D0000h
foo_random                      loaded at 029A0000h - 029D9000h
foo_uie_bookmarks                loaded at 029E0000h - 02A41000h
foo_wave_seekbar                loaded at 687B0000h - 6884E000h
d3d9                            loaded at 682A0000h - 68463000h
VERSION                          loaded at 74CC0000h - 74CC9000h
d3d8thk                          loaded at 73280000h - 73286000h
d3dx9_42                        loaded at 67F70000h - 68155000h
WS2_32                          loaded at 77800000h - 77835000h
NSI                              loaded at 777F0000h - 777F6000h
foo_dsp_continuator              loaded at 02A60000h - 02A78000h
MSVCP80                          loaded at 70E50000h - 70ED7000h
MSVCR80                          loaded at 71130000h - 711CB000h
foo_lyricsdb                    loaded at 02AA0000h - 02AD0000h
foo_discogs                      loaded at 02E90000h - 02EF5000h
foo_dsp_soundtouch              loaded at 02AF0000h - 02B17000h
foo_convolve                    loaded at 02E20000h - 02E71000h
foo_input_adplug                loaded at 03110000h - 03191000h
foo_osd                          loaded at 02F20000h - 02F54000h
foo_dsp_loudspeakereq            loaded at 02F90000h - 02FBC000h
foo_dsp_fsurround                loaded at 03000000h - 03031000h
foo_skip                        loaded at 73440000h - 7345D000h
foo_ui_std                      loaded at 03270000h - 0337E000h
foo_dsp_winamp                  loaded at 02FC0000h - 02FE8000h
foo_dsp_tube                    loaded at 03080000h - 030A6000h
foo_input_ksp_midi              loaded at 73070000h - 73081000h
foo_np_simple                    loaded at 69220000h - 6924E000h
foo_dsp_dolbyhp                  loaded at 68950000h - 68972000h
foo_uie_console                  loaded at 031A0000h - 031BA000h
foo_dsp_crossfader              loaded at 03200000h - 03233000h
foo_menu_addons                  loaded at 033F0000h - 03415000h
foo_uie_biography                loaded at 03420000h - 03471000h
foo_uie_wsh_panel_mod            loaded at 67ED0000h - 67F68000h
foo_uie_vis_peakmeter_spectrum  loaded at 03480000h - 034BF000h
foo_musicbrainz                  loaded at 68750000h - 687AC000h
WINHTTP                          loaded at 70580000h - 705D8000h
webio                            loaded at 70530000h - 7057F000h
foo_converter                    loaded at 03610000h - 03680000h
foo_channel_mixer                loaded at 03530000h - 0356A000h
foo_dbsearch                    loaded at 03790000h - 03800000h
foo_scrobblecharts              loaded at 035A0000h - 035D3000h
foo_preview                      loaded at 03680000h - 036A2000h
foo_jesus                        loaded at 68720000h - 68742000h
foo_cmd_playlist                loaded at 03580000h - 03589000h
foo_dsp_bs2b                    loaded at 036C0000h - 036E7000h
foo_input_avs                    loaded at 03700000h - 03720000h
foo_lyricsgrabber                loaded at 68550000h - 685B5000h
foo_uie_lyrics_panel            loaded at 03800000h - 03864000h
foo_quicktag                    loaded at 03890000h - 038C4000h
foo_wave_cache                  loaded at 67AA0000h - 67B41000h
foo_out_wasapi                  loaded at 03920000h - 03946000h
foo_uie_playlists_dropdown      loaded at 03970000h - 039AC000h
foo_freedb2                      loaded at 03B20000h - 03B62000h
foo_verifier                    loaded at 03B70000h - 03BB3000h
foo_run                          loaded at 03C10000h - 03C6F000h
foo_uie_typefind                loaded at 03BC0000h - 03BF0000h
foo_chacon                      loaded at 68530000h - 68550000h
foo_benchmark                    loaded at 03C70000h - 03C9D000h
foo_bitcompare                  loaded at 03CB0000h - 03CD8000h
foo_input_tta                    loaded at 03D00000h - 03D2B000h
foo_dsp_vlevel                  loaded at 03D40000h - 03D4B000h
foo_grabber_python              loaded at 68240000h - 68297000h
python25                        loaded at 1E000000h - 1E208000h
MSVCR71                          loaded at 7C360000h - 7C3B6000h
foo_cdda                        loaded at 03F00000h - 03F4D000h
foo_uie_albumlist                loaded at 03F60000h - 03FA3000h
foo_abx                          loaded at 03DB0000h - 03DE2000h
foo_playlist_bind                loaded at 03E10000h - 03E42000h
foo_dsp_resampler_SoX_mod        loaded at 03E60000h - 03E9F000h
foo_mouse_gesture                loaded at 03FB0000h - 03FDA000h
foo_input_monkey                loaded at 04050000h - 04098000h
foo_facets                      loaded at 040B0000h - 04131000h
foo_uie_panel_splitter          loaded at 04190000h - 041D8000h
foo_ac3                          loaded at 04010000h - 04040000h
foo_playlist_attributes          loaded at 04230000h - 04274000h
foo_albumlist                    loaded at 043B0000h - 0440C000h
foo_uie_ptb                      loaded at 041E0000h - 04205000h
foo_unpack                      loaded at 04410000h - 0443F000h
foo_dsp_mm                      loaded at 045D0000h - 04611000h
foo_runcmd                      loaded at 04630000h - 04664000h
foo_out_asio                    loaded at 04680000h - 046B6000h
foo_customdb                    loaded at 04790000h - 04830000h
foo_fileops                      loaded at 04730000h - 04778000h
foo_cuefilter                    loaded at 73500000h - 7350D000h
foo_input_std                    loaded at 04CA0000h - 04DEA000h
foo_input_dts                    loaded at 04860000h - 048CA000h
foo_input_alac                  loaded at 046C0000h - 046E0000h
foo_masstag                      loaded at 04940000h - 04994000h
foo_dsp_std                      loaded at 048E0000h - 04929000h
foo_dockable_panels              loaded at 04A20000h - 04A53000h
foo_dsp_xover                    loaded at 04AF0000h - 04B72000h
foo_dsp_delta                    loaded at 049B0000h - 049CF000h
foo_texttools                    loaded at 67730000h - 67763000h
SXS                              loaded at 75760000h - 757BF000h
WindowsCodecs                    loaded at 74170000h - 7426B000h
jscript                          loaded at 68A30000h - 68AE1000h
pdm                              loaded at 69540000h - 69596000h
CRYPTSP                          loaded at 75270000h - 75286000h
rsaenh                          loaded at 75020000h - 7505B000h
RpcRtRemote                      loaded at 757F0000h - 757FE000h
msdbg2                          loaded at 694F0000h - 69532000h
winroll                          loaded at 04BA0000h - 04BA7000h
igdumd32                        loaded at 0C000000h - 0C3B7000h
_socket                          loaded at 05E40000h - 05E4D000h
sud                              loaded at 66710000h - 667CB000h
ADVPACK                          loaded at 688F0000h - 6891F000h
DUI70                            loaded at 74380000h - 74431000h
dsp_vst                          loaded at 06D80000h - 06E05000h
EffectChainer                    loaded at 071A0000h - 071CF000h
EffectChainerTransform          loaded at 0E5C0000h - 0E6D5000h
profapi                          loaded at 75800000h - 7580B000h
GlissEQ                          loaded at 0E8A0000h - 0F3E2000h
explorerframe                    loaded at 717D0000h - 7193E000h
DUser                            loaded at 74350000h - 7437F000h
mswsock                          loaded at 75230000h - 7526C000h
wshtcpip                        loaded at 74D50000h - 74D55000h
apphelp                          loaded at 75700000h - 7574B000h
EhStorShell                      loaded at 716F0000h - 71721000h
cscui                            loaded at 71680000h - 716EA000h
CSCDLL                          loaded at 71670000h - 71679000h
CSCAPI                          loaded at 71660000h - 7166B000h
ntshrui                          loaded at 715F0000h - 7165F000h
srvcli                          loaded at 75650000h - 75669000h
slc                              loaded at 73B70000h - 73B7A000h
msls31                          loaded at 74960000h - 7498A000h
tiptsf                          loaded at 73FB0000h - 74008000h
xmllite                          loaded at 74270000h - 7429F000h
ntmarta                          loaded at 73CA0000h - 73CC1000h
WLDAP32                          loaded at 75EA0000h - 75EE5000h
StructuredQuery                  loaded at 73520000h - 7357C000h
Secur32                          loaded at 756C0000h - 756C8000h
SSPICLI                          loaded at 756E0000h - 756FA000h
actxprxy                        loaded at 6FC70000h - 6FCBE000h
ieproxy                          loaded at 6F380000h - 6F3AB000h
thumbcache                      loaded at 73CD0000h - 73CE6000h
PSAPI                            loaded at 75BF0000h - 75BF5000h
SHDOCVW                          loaded at 74A60000h - 74A8D000h
ieframe                          loaded at 6B9C0000h - 6C43B000h
OLEACC                          loaded at 6C880000h - 6C8BC000h
SearchFolder                    loaded at 73170000h - 7320F000h
samcli                          loaded at 74010000h - 7401F000h
SAMLIB                          loaded at 74710000h - 74722000h
netutils                        loaded at 74030000h - 74039000h
NetworkExplorer                  loaded at 73690000h - 73828000h
LINKINFO                        loaded at 74A50000h - 74A59000h
MPR                              loaded at 71D60000h - 71D73000h
AdobeDriveCS4_NP                loaded at 11830000h - 11843000h
drprov                          loaded at 74340000h - 74348000h
WINSTA                          loaded at 757C0000h - 757E9000h
ntlanman                        loaded at 74320000h - 74334000h
davclnt                          loaded at 74300000h - 74316000h
DAVHLPR                          loaded at 748F0000h - 748F8000h
NetworkItemFactory              loaded at 74A40000h - 74A4D000h
dtsh                            loaded at 72FE0000h - 72FEB000h
FirewallAPI                      loaded at 74CD0000h - 74D46000h
wkscli                          loaded at 74020000h - 7402F000h
PortableDeviceApi                loaded at 6C7A0000h - 6C829000h
WINTRUST                        loaded at 75A20000h - 75A4D000h
EhStorAPI                        loaded at 72DD0000h - 72DF2000h
npmproxy                        loaded at 6FBF0000h - 6FBF8000h
FunDisc                          loaded at 70AF0000h - 70B1B000h
ATL                              loaded at 73BA0000h - 73BB4000h
msxml6                          loaded at 72140000h - 72297000h
fdproxy                          loaded at 6F4E0000h - 6F4EA000h
fdwcn                            loaded at 69270000h - 69287000h
wcnapi                          loaded at 67830000h - 67849000h
fdWNet                          loaded at 73210000h - 73219000h
IPHLPAPI                        loaded at 72770000h - 7278C000h
WINNSI                          loaded at 72760000h - 72767000h
dfscli                          loaded at 73030000h - 7303D000h
browcli                          loaded at 73020000h - 7302D000h
wpdshext                        loaded at 66000000h - 66238000h
audiodev                        loaded at 67E40000h - 67E7F000h
WMVCore                          loaded at 65560000h - 657C7000h
WMASF                            loaded at 666D0000h - 6670D000h

Stack dump analysis:
Address: 7135750Ch (foo_softplaylists+1750Ch), symbol: "foobar2000_get_interface" (+6AACh)
Address: 689E38DAh (MSVCR90+638DAh), symbol: "free" (+ECh)
Address: 7134115Eh (foo_softplaylists+115Eh)
Address: 7134C15Eh (foo_softplaylists+C15Eh)
Address: 71355498h (foo_softplaylists+15498h), symbol: "foobar2000_get_interface" (+4A38h)
Address: 71344418h (foo_softplaylists+4418h)
Address: 713583E0h (foo_softplaylists+183E0h), symbol: "foobar2000_get_interface" (+7980h)
Address: 7135837Ch (foo_softplaylists+1837Ch), symbol: "foobar2000_get_interface" (+791Ch)
Address: 7135837Ch (foo_softplaylists+1837Ch), symbol: "foobar2000_get_interface" (+791Ch)
Address: 71356772h (foo_softplaylists+16772h), symbol: "foobar2000_get_interface" (+5D12h)
Address: 71348F3Bh (foo_softplaylists+8F3Bh)
Address: 713568F0h (foo_softplaylists+168F0h), symbol: "foobar2000_get_interface" (+5E90h)
Address: 002911B6h (foobar2000+C11B6h)
Address: 0034A674h (foobar2000+17A674h)
Address: 10002774h (shared+2774h), symbol: "uPrintCrashInfo_OnEvent" (+B0h)
Address: 00325B48h (foobar2000+155B48h)
Address: 002FE610h (foobar2000+12E610h)
Address: 00291147h (foobar2000+C1147h)
Address: 002FBA79h (foobar2000+12BA79h)
Address: 75C510DCh (kernel32+510DCh), symbol: "BaseThreadInitThunk" (+12h)
Address: 7770A0E0h (ntdll+5A0E0h), symbol: "LdrInitializeThunk" (+FAh)
Address: 75C62AA5h (kernel32+62AA5h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 75C62AA5h (kernel32+62AA5h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 776CE7D5h (ntdll+1E7D5h), symbol: "DbgPrint" (+37Bh)
Address: 7770A0B3h (ntdll+5A0B3h), symbol: "LdrInitializeThunk" (+CDh)
Address: 00291110h (foobar2000+C1110h)
Address: 00291110h (foobar2000+C1110h)

Environment:
App: foobar2000 v1.0 beta 2a
OS: Windows 6.1.7127 x86
CPU: Intel® Celeron® D CPU 3.06GHz, features: MMX SSE SSE2 SSE3
Audio: Speakers (Realtek High Definition Audio)
UI: Columns UI 0.3.8.0

Components:
Core (2009-11-27 19:56:00)
    foobar2000 core 1.0 beta 2a
foo_abx.dll (2009-06-07 13:25:26)
    ABX Comparator 1.3.4
foo_ac3.dll (2009-05-09 16:27:36)
    AC3 decoder 0.9.3
foo_albumlist.dll (2009-11-27 17:59:38)
    Album List 4.4
foo_benchmark.dll (2008-12-31 19:23:04)
    Decoding Speed Test 1.1
foo_biometric.dll (2009-03-14 20:42:35)
    Fingerprint tools 0.3
foo_bitcompare.dll (2008-12-05 15:08:02)
    Binary Comparator 1.2
foo_cdda.dll (2009-11-27 17:59:28)
    CD Audio Decoder 3.0
foo_chacon.dll (2009-02-14 03:50:06)
    Chacon 0.0.2
foo_channel_mixer.dll (2008-03-12 09:37:48)
    Channel Mixer 0.9.6.5
foo_cmd_playlist.dll (2007-03-17 23:00:00)
    Playlist Command Line Tools 0.0.2
foo_converter.dll (2009-11-27 17:59:22)
    Converter 1.4
foo_convolve.dll (2006-08-04 21:57:26)
    Convolver 0.3
foo_crystalizer.dll (2009-10-10 00:27:06)
    Crystalizer v1
foo_cuefilter.dll (2009-06-18 05:21:54)
    Cue sheet filter 0.0.1
foo_customdb.dll (2009-05-09 18:17:06)
    Custom Database 0.0.9a
foo_dbsearch.dll (2007-01-25 20:58:48)
    Database Search 1.4
foo_dbsearch_api_demo.dll (2007-01-22 12:01:38)
    Database Search Toolbar Demo 1.0
foo_discogs.dll (2009-11-20 21:11:57)
    Discogs Tagger 1.22
foo_dockable_panels.dll (2009-04-24 01:56:15)
    Dockable Panels 1.0.7b [Mar 28 2007 - 09:18:48]
foo_dsp_bs2b.dll (2009-06-08 11:30:06)
    bs2b 3.1.0
foo_dsp_continuator.dll (2009-11-24 01:34:44)
    Continuator 0.6.1
foo_dsp_crossfader.dll (2009-01-05 19:43:56)
    Gapless Crossfader 0.3.4.1 (SSE)
foo_dsp_delta.dll (2008-10-24 15:57:16)
    Noise Sharpening DSP 1.0.0
foo_dsp_dolbyhp.dll (2008-12-04 21:37:20)
    Dolby Headphone Wrapper 1.3.1
foo_dsp_downmix.dll (2009-03-09 00:14:52)
    Downmix AC3/DTS to PL2 0.2
foo_dsp_freeverb.dll (2009-10-31 06:41:20)
    Freeverb 0.1
foo_dsp_fsurround.dll (2009-03-09 00:14:02)
    FreeSurround 0.3.5
foo_dsp_loudspeakereq.dll (2009-07-02 07:52:58)
    Loudspeaker Equalizer 1.0.1
foo_dsp_mm.dll (2008-06-06 06:29:12)
    Matrix Mixer 0.3
foo_dsp_resampler_SoX_mod.dll (2009-11-17 19:22:49)
    SoX Resampler modified 0.5.4.1 mod
foo_dsp_soundtouch.dll (2009-01-05 20:43:40)
    SoundTouch DSP 0.1 (SSE)
foo_dsp_span.dll (2009-04-07 12:35:32)
    Surround Pan 1.3
foo_dsp_std.dll (2009-11-27 17:59:36)
    Standard DSP Array 1.0
foo_dsp_tube.dll (2007-02-07 00:17:56)
    Tube Sound 0.8
foo_dsp_vlevel.dll (2008-03-03 00:42:06)
    VLevel 20080302.0
foo_dsp_winamp.dll (2009-04-18 17:53:00)
    Winamp DSP Bridge 1.4.5
foo_dsp_xover.dll (2009-01-15 22:08:22)
    Crossover 0.38a
foo_dumb.dll (2009-10-23 20:16:26)
    DUMB module decoder 0.9.9.8
foo_facets.dll (2008-06-01 03:40:42)
    Facets 2008-02-25
foo_fileops.dll (2009-11-27 17:58:42)
    File Operations 2.1.2
foo_freedb2.dll (2009-11-27 17:58:44)
    freedb Tagger 0.6.2
foo_grabber_python.dll (2009-02-06 13:40:15)
    Lyrics Grabber Dances With Python 0.1.12 Alpha
foo_input_adplug.dll (2009-07-21 19:35:22)
    AdPlug 1.21
foo_input_alac.dll (2009-03-22 15:15:46)
    ALAC Decoder 1.0.3
foo_input_avs.dll (2009-07-30 17:04:24)
    AVS input 0.2
foo_input_dts.dll (2009-05-02 13:58:30)
    DTS decoder 0.2.4
foo_input_ksp_midi.dll (2009-07-10 15:36:41)
    KspMidiPlayer 1.001
foo_input_monkey.dll (2009-05-01 13:40:52)
    Monkey's Audio Decoder 2.1.4
foo_input_std.dll (2009-11-27 17:59:22)
    Standard Input Array 1.0
foo_input_tak.dll (2009-06-15 21:44:54)
    TAK Decoder 0.4.3
foo_input_tta.dll (2008-11-29 14:55:14)
    TTA Audio Decoder (unofficial) 2.4.2
foo_jesus.dll (2009-11-20 22:41:02)
    Autosave & Autobackup 6
foo_lyricsdb.dll (2009-10-05 11:35:38)
    foo_lyricsdb 0.0.8 beta 0
foo_lyricsgrabber.dll (2009-02-07 07:12:47)
    Lyrics Grabber 0.3.0.7 Alpha
foo_masstag.dll (2009-09-18 10:01:36)
    Masstagger 1.8.4
foo_menu_addons.dll (2007-02-12 23:04:32)
    Menu Addons 0.3.9
foo_mouse_gesture.dll (2009-08-29 17:58:18)
    Mouse Gesture Host 0.4.2
foo_musicbrainz.dll (2009-04-10 21:27:28)
    MusicBrainz Tagger 0.2
foo_np_simple.dll (2009-01-10 18:11:51)
    Now Playing Simple 1.8
foo_osd.dll (2009-05-09 16:32:12)
    On-Screen Display 1.52
foo_out_asio.dll (2009-03-22 15:15:46)
    ASIO support 1.2.7
foo_out_wasapi.dll (2009-05-19 21:45:18)
    WASAPI output support 2.1
foo_playcount.dll (2009-04-29 19:09:32)
    Playback Statistics 2.1.9
foo_playlist_attributes.dll (2009-11-16 20:33:44)
    Playlist Attributes 0.2.2 [Nov 16 2009 - 20:33:31]
foo_playlist_bind.dll (2009-04-30 15:43:54)
    Playlist Bind 4.1
foo_preview.dll (2008-12-22 21:41:11)
    Preview 1.4
foo_quicktag.dll (2008-05-01 19:39:02)
    Quick Tagger 1.0.1
foo_random.dll (2009-06-30 22:06:58)
    Randomized Playlist Entry 1.3.0
foo_rgscan.dll (2009-11-27 17:59:10)
    ReplayGain Scanner 2.0.9
foo_run.dll (2009-06-07 14:15:18)
    Run services 0.3.7
foo_runcmd.dll (2007-08-16 20:08:42)
    Run Command 1.0 beta 3
foo_scrobblecharts.dll (2007-03-31 15:36:48)
    Last.fm Chart Player 0.2.3
foo_skip.dll (2009-01-03 17:04:18)
    Skip Track 0.4
foo_softplaylists.dll (2009-11-28 01:03:25)
    Soft Playlists 2009-11-28
foo_texttools.dll (2009-01-31 13:23:38)
    Text Tools 1.0.3
foo_ui_columns.dll (2009-08-30 16:21:36)
    Columns UI 0.3.8.0
foo_ui_std.dll (2009-11-27 17:59:48)
    Default User Interface 0.9.5
foo_uie_albumlist.dll (2009-06-13 23:49:19)
    Album list panel 0.3.5
foo_uie_biography.dll (2009-11-06 21:09:12)
    Biography View 0.3.3.3
foo_uie_bookmarks.dll (2008-07-19 18:29:50)
    Bookmarks 0.2.6
foo_uie_console.dll (2009-08-29 17:06:24)
    Console panel 0.4
foo_uie_lyrics_panel.dll (2007-08-17 22:56:36)
    Lyrics panel 0.35
foo_uie_panel_splitter.dll (2008-05-31 12:19:42)
    Panel Stack Splitter 0.3.4(alpha)
foo_uie_playlists_dropdown.dll (2009-09-23 23:44:46)
    Playlists Dropdown 0.7.6
foo_uie_ptb.dll (2008-02-16 08:45:33)
    Playback Toolbars 0.2
foo_uie_typefind.dll (2007-10-22 22:30:44)
    Typefind 0.2 beta 2
foo_uie_vis_peakmeter_spectrum.dll (2008-04-19 19:18:50)
    Peakmeter Spectrum Visualisation 0.2.0.0 beta
foo_uie_wsh_panel_mod.dll (2009-11-25 07:24:25)
    WSH Panel Mod 1.2.0 Beta 1
foo_unpack.dll (2009-11-27 17:58:28)
    RAR reader 1.3
    ZIP/GZIP reader 1.0
foo_utils.dll (2008-02-08 23:26:58)
    Playlist Tools 0.6.2 beta 6
foo_verifier.dll (2009-10-05 10:39:20)
    File Integrity Verifier 1.1
foo_vis_shpeck.dll (2009-09-28 10:32:16)
    Shpeck - Winamp vis plugins wrapper 0.3.7
foo_wave_cache.dll (2009-11-27 16:47:40)
    Waveform cache 0.0.24
foo_wave_seekbar.dll (2009-11-27 17:28:12)
    Waveform seekbar 0.0.24

Recent events:
"Modified Today" : 0:00.249366
"Modified Yesterday" : 0:00.265986
"Played this Week" : 0:00.283469
"RGA missing" : 0:00.062687
"RGT missing" : 0:00.066683
"STYLE missing" : 0:00.031806
"Spectrum missing" : 0:00.095943
"Verify" : 0:00.040865
Startup time : 0:11.321843
Autobackup: Backed up 130 items to autobackup.20091128-015054.zip

is .dmp file needed?
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-28 01:05:13
dmp and the playlist you were trying to load.

Merged: It's ok, already know the problem.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-28 01:43:35
Bug is solved.
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-28 01:48:23
indeed
it's so fast, thanks
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-28 01:51:32
Normally for XSPF, it should first try to match %title%-%artist%-%album%.
If no match is found it will go for %title%-%artist%.

Merged: BTW does anyone know of any other music players that can do all these soft playlist things?
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-28 06:25:20
Here is vbscript that can transform clipboard data line by line into XSPF playlist which can be read by foo_softplaylist:

Code: [Select]
'On Error Resume Next

Set oShell = CreateObject("WScript.Shell")
Set oHtml = CreateObject("htmlfile")
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFile = fso.opentextfile("foobar.xspf",2,true,-2)

sClip = oHtml.ParentWindow.ClipboardData.GetData("text")

If InStr(sClip,vbCrLf) Then
sClipArr = Split(sClip,vbCrLf, -1, 1)
Else
If InStr(sClip,vbLf) Then : sClipArr = Split(sClip,vbLf, -1, 1) : Else : sClipArr = Split(sClip,vbCr, -1, 1) End If
End If
If Ubound(sClipArr) = 0 Then Bye("no clipboard")

cInp = InputBox("Enter the format of clipboard single line:" + vbCrLf + vbCrLf + _
"%a - Artist Name" + vbCrLf + _
"%r - Album Name" + VbCrLf + _
"%t - Track Title" + vbCrLf + _
"%x - Any Words" + vbCrLf, "Clipboard Line Format","%a - %t")

Arr = Split(cInp, Chr(37))

xml = "<?xml version=""1.0"" encoding=""UTF-8"" ?>" + VbCrLf
xml = xml + "<playlist version=""1"" xmlns=""http://xspf.org/ns/0/"">" + VbCrLf
xml = xml + vbTab + "<trackList>" + VbCrLf

For i = 0 to Ubound(sClipArr)
xml = xml + vbTab + vbTab + "<track>" + VbCrLf

value = Split(sClipArr(i), Right(Arr(1), Len(Arr(1)) - 1))
xml = xml + vbTab + vbTab + vbTab + "<" + GetTag(Left(Arr(1), 1)) + ">" + _
value(0) + _
"</" + GetTag(Left(Arr(1), 1)) + ">" + VbCrLf
xml = xml + vbTab + vbTab + vbTab + "<" + GetTag(Left(Arr(2), 1)) + ">" + _
value(1) + _
"</" + GetTag(Left(Arr(2), 1)) + ">" + VbCrLf

xml = xml + vbTab + vbTab + "</track>" + VbCrLf
Next

xml = xml + vbTab + "</trackList>" + VbCrLf
xml = xml + "</playlist>"

oFile.write xml
oFile.close

Function GetTag(tag)
Select Case tag
  Case "a"
    pat = "creator"
  Case "r"
    pat = "album"
  Case "t"
    pat = "title"
  Case Else
    Bye("wrong tag")
End Select
GetTag = pat
End Function

Sub Bye(why)
WScript.Echo why
WScript.Quit
End Sub

EXE version here: http://www.hydrogenaudio.org/forums/index....ost&id=5529 (http://www.hydrogenaudio.org/forums/index.php?act=Attach&type=post&id=5529)

How it works: Just run the script/exe after you have copied some data in clipboard which will be processed line by line by user pattern.
For example I make copy of this lines:

Interstellar Overdrive - Pink Floyd
Bike - Pink Floyd
Arnold Layne - Pink Floyd
See Emily Play - Pink Floyd
Astronomy Domine - Pink Floyd

then I run the script, and enter pattern in input dialog: %t - %a (which is abbreviation for %title% - %artist%) and of course there always should be arbitrary separator, in this example " - ". Then script will make XSPF playlist in folder where the script is and which can be loaded in foobar and foo_softplaylist will try to find matching tracks.

Input pattern is limited on two tag patterns right now, so only two mutually combinations for artist, album, or title would work which means 4 usable combinations:
artist - title
title - artist
album - title
title - album
Also encodings and XML entities aren't considered

Maybe tomorrow I'll try with XMLDOM and rewrite the script for arbitrary patterns. For now this is working for me
Title: foo_softplaylists
Post by: Keesface on 2009-11-29 18:38:37
Could you also make an option to search for last.fm similar artists?
Title: foo_softplaylists
Post by: _oao on 2009-11-30 01:12:09
Merged: BTW does anyone know of any other music players that can do all these soft playlist things?

You could be interested in Playdar (http://www.playdar.org/), a project created by former Last.fm founder Richard Jones and XSPF music playlist format creator Lucas Gonze.

Another developer called Toby Padilla has created Playgrub (http://www.playgrub.com/), a bookmarklet that creates playlists from websites and play them in Playdar or save them as XSPF playlists
These are the supported sites:
Quote
Using the bookmarklet on any of the following sites will create a playlist out of the listed songs.

Last.fm
Apple.com iTunes Charts
Musicbraniz Releases
BBC Radio Programmes
Songkick Setlists
The Y! Radish
FIQL Playlists
Grooveshark Playlist Export

you can watch a demo video here: http://playgrub.posterous.com/7637940 (http://playgrub.posterous.com/7637940)
Title: foo_softplaylists
Post by: 2E7AH on 2009-11-30 01:20:41
JohanDeBock, can you see why is this happening: http://www.hydrogenaudio.org/forums/index....showtopic=76575 (http://www.hydrogenaudio.org/forums/index.php?showtopic=76575)
Title: foo_softplaylists
Post by: Yirkha on 2009-11-30 01:30:13
Maybe possibly unmatched [font= "Courier New"]metadb_lock[/font]/[font= "Courier New"]unlock()[/font] somewhere in your code? Better use one of the [font= "Courier New"]in_metadb_sync*[/font] objects, which are released automagically even when an exception is thrown or on early return. Or maybe a crash eaten by some Windows API (it usually ignores any exceptions, including hard Access violations during callbacks like window or timer procedures)?
Title: foo_softplaylists
Post by: JohanDeBock on 2009-11-30 16:57:17
I've already seen a position where this could happen.
How should I use the in_metadb_sync objects?
Title: foo_softplaylists
Post by: Yirkha on 2009-11-30 20:18:00
For example, instead of this:
Code: [Select]
handle->metadb_lock();
// Call some handle->*_locked() methods or whatever
handle->metadb_unlock();
Do this:
Code: [Select]
{
  in_metadb_sync_fromhandle lock(handle);
  // Call some handle->*_locked() methods or whatever
}
See SDK/metadb.h for others - [font= "Courier New"]in_metadb_sync[/font] instantiates [font= "Courier New"]metadb[/font] (for access to the lock/unlock methods) itself internally, [font= "Courier New"]in_metadb_sync_fromptr[/font] uses an external pointer (for contexts where it's already available).
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 02:37:51
New version:
Soft Playlists 2009-12-01 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

-Added: Last.fm Love Track command (enter Last.fm password in configuration)
-Changed: Fixed some bugs
-Changed: Optimized some code
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 02:41:51
JohanDeBock, can you see why is this happening: http://www.hydrogenaudio.org/forums/index....showtopic=76575 (http://www.hydrogenaudio.org/forums/index.php?showtopic=76575)


made some changes, does this still happen?
Title: foo_softplaylists
Post by: 2E7AH on 2009-12-01 03:10:13
works great, thank you

don't want to spoil the party, but when I press abort if component is parsing last.fm - it just stays locked that way until I exit foobar. does it happens at yours foobar also?

[edit] well it just doesn't abort, it's not locked
if I limit users to 50, and press abort, then it waits for all download to finish - that's all
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 03:19:05
I actually didn't do anything special yet for the abort function. Haven't figured it out yet how to correctly implement it.
I think now it just tries to finish the command, without actually aborting, no?
Just update the XSPF load code, should be much faster for 10000+ playlists.
Title: foo_softplaylists
Post by: 2E7AH on 2009-12-01 03:23:22
yes, I'm on restricted 10 KB/s for couple of hours, that's why I noticed
I'll play now with XSPF
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 03:25:17
Does the love track feature work for you?
It should normally write
foo_softplaylists: successfully loved Event Horizon They Waited by Christ.
on the console if it worked.
Title: foo_softplaylists
Post by: 2E7AH on 2009-12-01 03:31:01
yeah, works fine - this is my first loved track, I never used such function
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 03:35:19
Then there will finally be something in your playlist when you do User Loved Tracks
Title: foo_softplaylists
Post by: 2E7AH on 2009-12-01 03:48:07
+ your component will make me scrobble again, after I stopped as last.fm radio stopped working for me
Title: foo_softplaylists
Post by: carmenm on 2009-12-01 07:56:56
THANK YOU!
Title: foo_softplaylists
Post by: Keesface on 2009-12-01 08:01:23
Thanks a ton
Title: foo_softplaylists
Post by: Fractal_Mortality on 2009-12-01 08:06:35
-Added: Last.fm Love Track command


You sir, are my hero.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-01 10:10:52
this is pretty cool. but i have a little problem...

if you try and love a track with an "&" in it, it fails. console message-

Code: [Select]
foo_softplaylists: failed to love Son & Moon by Cortney Tidwell

Title: foo_softplaylists
Post by: wojtek on 2009-12-01 11:14:13
-Added: Last.fm Love Track command (enter Last.fm password in configuration)


WOW, brilliant!
Two things tho:
- would it be possible to somehow synchronize love tracks from last.fm with tags (for the moment one can't know if the track is already marked, I solved it by retrieving my love tracks and tagging it and then adding separate column, but something more automatic would be nice  )
- using new menu would be nice, at the moment context commands are in "Legacy commands" category.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 13:07:13
if you try and love a track with an "&" in it, it fails. console message-

Will check it out.
- using new menu would be nice, at the moment context commands are in "Legacy commands" category.

Can't do anything about that now, must wait for new SDK.
Title: foo_softplaylists
Post by: dreadroach on 2009-12-01 13:12:15
Thank you for "love track" feature, works great!
If you add support for generating playlist based on last.fm tags, this will be my favorite foobar component
Title: foo_softplaylists
Post by: wojtek on 2009-12-01 14:35:11
- using new menu would be nice, at the moment context commands are in "Legacy commands" category.

Can't do anything about that now, must wait for new SDK.


Hmm... weird. I have some plugins (i.e. last.fm radio or foo_uie_tagger_mod) that put commands in context menu outside Legacy group. I just thought it was already possible, therefore the suggestion. Sorry if I made wrong assumption.
Title: foo_softplaylists
Post by: Yirkha on 2009-12-01 15:00:32
There are fallbacks for some of the common group names, so that at least some of the non-updated components don't not end up in the Legacy group. If one context menu service doens't return multiple different default paths, that is. Or provide dynamic submenus, I think.
Title: foo_softplaylists
Post by: Fractal_Mortality on 2009-12-01 15:19:34
- would it be possible to somehow synchronize love tracks from last.fm with tags (for the moment one can't know if the track is already marked, I solved it by retrieving my love tracks and tagging it and then adding separate column, but something more automatic would be nice  )


Great suggestion. Something like a simple masstagger script to tag each track with "loved track" would be sufficient enough, unless anyone else has any suggestions.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-01 16:09:06
for anybody that uses columns UI, i've made a WSH panel mod button that can "love" a track and also tag the file at the same time.

download (includes WSH panel mod + images) - http://cid-649d3bfeaf541fbb.skydrive.live....oobar/loved.zip (http://cid-649d3bfeaf541fbb.skydrive.live.com/self.aspx/.Public/foobar/loved.zip)

extract contents into foobar directory. add a WSH panel to your layout. now right click it and choose "Configure". use the text from "code.txt" to replace the existing contents. it should work straight away but check the comments at the top for settings you might want to change.

when playing, it works on the "now playing" item and when playback is stopped, you can use it to love/tag the selected item.
Title: foo_softplaylists
Post by: carmenm on 2009-12-01 16:30:03
- would it be possible to somehow synchronize love tracks from last.fm with tags (for the moment one can't know if the track is already marked, I solved it by retrieving my love tracks and tagging it and then adding separate column, but something more automatic would be nice  )


Great suggestion. Something like a simple masstagger script to tag each track with "loved track" would be sufficient enough, unless anyone else has any suggestions.

ACtually the lastfm api can tell you if a track is loved (track.getInfo)
So one thing we could do is do something like what biography_view does, which is add a temp tag to the playing song with the flag for loved. That way we could now if the playing track is already loved.
After that we could imagine a masstag script to do so  as a permanent tag.

What do you think JohanDeBock?

On something else, i dont know if you saw my last comment in audioscrobbler thread but i feel today like we have too much lastfm related plugins(lastfm_radio, biography_view and softplaylists), and that maybe, if all dev would agree, they should be combined in one ULTIME plugin. What do you think?
Title: foo_softplaylists
Post by: Keesface on 2009-12-01 17:26:08
On something else, i dont know if you saw my last comment in audioscrobbler thread but i feel today like we have too much lastfm related plugins(lastfm_radio, biography_view and softplaylists), and that maybe, if all dev would agree, they should be combined in one ULTIME plugin. What do you think?

I totally agree. I would love to have one plugin that grabs all kinds of data from last.fm and puts it into custom taggin fields or temporary fields. I currently use biography_view to show similar artists and last.fm playcount, and make playlists with soft_playlists. I would love to hear the opinion of some component developers .
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 17:51:34
Code: [Select]
foo_softplaylists: failed to love Son & Moon by Cortney Tidwell


This is already fixed, but not released yet.
Also trying to solve problems with special characters like in "Röyksopp".
I can already correctly get the top tracks of Röyksopp", but not love any tracks of Röyksopp".
I'm sending the parameters utf8 encoded like they should be, but it still doesn't work.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-01 17:58:30
well that's odd. because i can love tracks with Ø and ö in.

Code: [Select]
foo_softplaylists: successfully loved Headphones (Ø Remix) by Björk
Title: foo_softplaylists
Post by: Keesface on 2009-12-01 17:59:16
Is the problem not in retrieving them correctly?

edit: I can't generate playlists nor love tracks with Röyksopp and Trentemøller

edit2: Scrobblecharts (http://www.hydrogenaudio.org/forums/index.php?showtopic=53695&hl=msn++now++playing) can do the job with both, so maybe you should have a look at that
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 18:00:44
Thanks for the info! Probably tried to do too much conversions.

New version:
Soft Playlists 2009-12-01.2 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

-Changed: Fixed various special character bugs
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 18:30:36
Is the problem not in retrieving them correctly?

edit: I can't generate playlists nor love tracks with Röyksopp and Trentemøller

edit2: Scrobblecharts (http://www.hydrogenaudio.org/forums/index.php?showtopic=53695&hl=msn++now++playing) can do the job with both, so maybe you should have a look at that


1. generate Röyksopp playlist: is fixed now
2. love Röyksopp track: was already possible normally.

Can you verify this with new version?
Make sure they are correctly named.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-01 19:21:47
thanks for the update. 
Title: foo_softplaylists
Post by: frnk on 2009-12-01 19:29:49
Hey this is good stuff! And development is going fast too!

I can't wait for the similar artists feature to be implemented, so I can chuck the old last.fm plugin.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 19:30:46
New version:
Soft Playlists 2009-12-01.3 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

-Changed: Fixed utf8 related bug in saving and loading XSPF playlists
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 19:51:56
On something else, i dont know if you saw my last comment in audioscrobbler thread but i feel today like we have too much lastfm related plugins(lastfm_radio, biography_view and softplaylists), and that maybe, if all dev would agree, they should be combined in one ULTIME plugin. What do you think?


I don't think this will make it easier to develop things.
As long as no overlapping things are done and it's not too fragmented it's ok to have multiple last.fm related plugins.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-01 20:50:59
1. generate Röyksopp playlist: is fixed now


for me, this was already working in today's first version. but now it's broken.  both v2 and v3 return empty playlists. loving tracks still works though. i've tested these 2 artists....

Björk
Emilíana Torrini
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 22:54:50
New version:
Soft Playlists 2009-12-01.4 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)

-Changed: Undid a mistake in the last 2 versions, Top Tracks from artists with special chars should work again
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-01 23:56:52
How do you want the similar artist chart implemented?
-> get similar artists with a limit on the number
-> get the top tracks for these artists
-> sort them all on playcount

Other suggestions?
Title: foo_softplaylists
Post by: Keesface on 2009-12-02 00:39:41
How do you want the similar artist chart implemented?
-> get similar artists with a limit on the number
-> get the top tracks for these artists
-> sort them all on playcount

Other suggestions?

Limit on the number of artists and number of songs, sorted on top tracks would be awesome (track feed limit per artist and artist feed limit)
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-02 01:19:43
made the todo list a bit longer:
-exploit artist.getSimilar in combination with artist.getTopTracks
-exploit recursive track.getSimilar calls
-exploit artist.getTopTags, track.getTopTags, tag.getTopArtists, tag.getTopTracks
-exploit tag.search, tag.getTopArtists, tag.getTopTracks
-exploit user.getRecentTracks in combination with user.getNeighbours, user.getFriends
-exploit library.getTracks
Title: foo_softplaylists
Post by: _oao on 2009-12-02 01:29:01
Other suggestions?
is it possible to also fetch the similar tracks for a selected track?
i'm talking about this: http://www.last.fm/music/Radiohead/_/Idioteque/+similar (http://www.last.fm/music/Radiohead/_/Idioteque/+similar)

it uses the API service track.getSimilar: http://www.last.fm/api/show?service=319 (http://www.last.fm/api/show?service=319)

imo this could provide automatic playlists a little more similar to iTunes Genius...

currently i been playing around with Playgrub (http://www.playgrub.com/), a bookmarklet that can create XSPF playlists from web pages to take advantage of this last.fm feature, but it would be handy to do it inside fb2k...

edit: nice, i see that track.getSimilar is on your todo list! 

another sugestion:
you can get XSPF playlists with Top Tracks from a certain Tag using this link:

http://ws.audioscrobbler.com/1.0/tag/*insert tag name here*/toptracks.xspf

example: http://ws.audioscrobbler.com/1.0/tag/rock/toptracks.xspf (http://ws.audioscrobbler.com/1.0/tag/rock/toptracks.xspf)

i'm not sure if this could be useful to this component... 
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-02 01:35:17
Other suggestions?
is it possible to also fetch the similar tracks for a selected track?


Yes, see my previous post, it's already on todo list
Title: foo_softplaylists
Post by: Fractal_Mortality on 2009-12-02 02:49:21
made the todo list a bit longer:
-exploit artist.getSimilar in combination with artist.getTopTracks
-exploit recursive track.getSimilar calls
-exploit artist.getTopTags, track.getTopTags, tag.getTopArtists, tag.getTopTracks
-exploit tag.search, tag.getTopArtists, tag.getTopTracks
-exploit user.getRecentTracks in combination with user.getNeighbours, user.getFriends
-exploit library.getTracks


How about the option to place a tag on any track "loved?" If it's something too foreign for your developing skills, I understand, but I definitely think it would be a great feature. It's unfortunate that foobar doesn't have any such thing as making "macro" commands, as then users could easily just combine any tagging script they wanted with your love track action.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-02 07:57:12
would it be possible to add an option to "unlove" a track?

oh, and thanks for the fix last night.
Title: foo_softplaylists
Post by: carmenm on 2009-12-02 08:27:03
made the todo list a bit longer:
-exploit artist.getSimilar in combination with artist.getTopTracks
-exploit recursive track.getSimilar calls
-exploit artist.getTopTags, track.getTopTags, tag.getTopArtists, tag.getTopTracks
-exploit tag.search, tag.getTopArtists, tag.getTopTracks
-exploit user.getRecentTracks in combination with user.getNeighbours, user.getFriends
-exploit library.getTracks


How about the option to place a tag on any track "loved?" If it's something too foreign for your developing skills, I understand, but I definitely think it would be a great feature. It's unfortunate that foobar doesn't have any such thing as making "macro" commands, as then users could easily just combine any tagging script they wanted with your love track action.

I agree on the tag thing, at least on the playing track would be great!

Thanks for the last version
Title: foo_softplaylists
Post by: marc2003 on 2009-12-02 23:22:07
hmmn, still having issues with this.

example....

Code: [Select]
foo_softplaylists: successfully loved Headphones (Ø Remix) by Björk
foo_softplaylists: failed to love Headphones by Björk


infact, i can't seem to love any tracks by Björk except that first one????

all other stuff with no special characters is fine.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-02 23:40:27
That's really weird. Can you check the exact %artist% and %title% tags?
Title: foo_softplaylists
Post by: marc2003 on 2009-12-02 23:58:20
edit: problem was my end. sorry about that.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-03 00:10:03
So Björk's Top Tracks also doesn't work? I just tried this in foobar 1.0b2a with 2009-12-01.4 and it worked.
Maybe some system dependancy?
Title: foo_softplaylists
Post by: marc2003 on 2009-12-03 00:25:55
it wasn't working but i've sorted it now.....

it's conflicting with something in my columns UI layout. apologies for wasting your time. 
Title: foo_softplaylists
Post by: Benji99 on 2009-12-03 00:53:43
-Added: Last.fm Love Track command (enter Last.fm password in configuration)


WOW, brilliant!
Two things tho:
- would it be possible to somehow synchronize love tracks from last.fm with tags (for the moment one can't know if the track is already marked, I solved it by retrieving my love tracks and tagging it and then adding separate column, but something more automatic would be nice  )
- using new menu would be nice, at the moment context commands are in "Legacy commands" category.


I second this.
In lieu of a sync, it would be simply cool if the plugin would just tag the file at the same time as updating last.fm. As long as we always use your plugin, things would stay in sync. Oh and if you do this. Please make the tag user definable!

Keep up the great work, this plugin is becoming extremely useful!!
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-03 02:13:29
New version:
Soft Playlists 2009-12-03 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-Added: Last.fm Similar Artists Top Tracks (fiddle with Artist Top Tracks Feed Limit, Similar Artists Feed Limit)
-Added: Last.fm Similar Tracks (fiddle with Similar Tracks Feed Limit, Similar Tracks Recursion Limit)
-Changed: renamed and added config dialog parameters
-Changed: changed main menu commands layout
Title: foo_softplaylists
Post by: Fractal_Mortality on 2009-12-03 03:09:41
Hey Johan, could you briefly explain what the Recursion Limite does?
Title: foo_softplaylists
Post by: Dr_Colossus on 2009-12-03 04:36:30
Could you add playlists generated from the overall top tracks (http://www.last.fm/charts/track), hyped tracks (http://www.last.fm/charts/hypetrack),loved tracks (http://www.last.fm/charts/lovetrack). Obviously some people may not have any of these tracks but I think it could be useful for people with a lot of pop music.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-03 08:43:09
i don't know if you looked at the link i posted in my PM last night but this is really bugging me why my script should cause your component to fail. this is the only relevant part of my script....

Code: [Select]
var username = "marc2003";
var api_key = "my_api_key";
var artist = fb.TitleFormat("$replace(%artist%,&,'%'26)").EvalWithMetadb(g_metadb);
var track = fb.TitleFormat("$replace(%title%,&,'%'26)").EvalWithMetadb(g_metadb);
var url = unescape(encodeURIComponent("http://ws.audioscrobbler.com/2.0/?method=track.getinfo&api_key=" + api_key + "&username=" + username + "&artist=" + artist + "&track=" + track));
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
xhttp.open("GET",url,false);
xhttp.send();


i don't think there is anything i can change?

i looked at the server response when your component fails to love a track after my script runs and it says this...

Quote
POST /2.0/?method=track.love&track=Come%20To%20Me&artist=Bj.rk&api_key=REMOVED&api_sig=REMOVED&sk=REMOVED HTTP/1.1

User-Agent: foo_softplaylists

Host: ws.audioscrobbler.com

Content-Length: 0

Cache-Control: no-cache

HTTP/1.0 403 Forbidden

Date: Thu, 03 Dec 2009 08:23:35 GMT

Server: Apache/1.3.39 (Unix)

X-Proxy-Fix-Up: headers fixed up

X-Web-Node: www185

Connection: close

Content-Type: text/xml; charset=utf-8;

<?xml version="1.0" encoding="utf-8"?>
<lfm status="failed">
<error code="13">Invalid method signature supplied</error></lfm>


the server responses for my script all work as expected. just to be clear - this only happens when the artist or title has special characters in - very strange. i fully understand if you don't have time to look into this - afterall your component works perfectly when my script isn't running. but i'd really like to run the 2 side by side if i can.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-03 11:27:59
Hey Johan, could you briefly explain what the Recursion Limite does?


When set to default 0, it just lists the similar tracks.
When set to 1, it lists the tracks similar to the similar tracks together with the similar tracks...
And so on...
So don't set it too high.

For next version I will put a global track limit for all the playlists, this will make it impossible for a certain request to keep running endlessly when putting some parameter too high.
Title: foo_softplaylists
Post by: Keesface on 2009-12-03 13:33:04
I just tried with recursion of 2 and 20 feed limit... Took too long .

I love similar tracks with recursion of 1 and feed 10 though.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-03 14:59:27
the server responses for my script all work as expected. just to be clear - this only happens when the artist or title has special characters in - very strange. i fully understand if you don't have time to look into this - afterall your component works perfectly when my script isn't running. but i'd really like to run the 2 side by side if i can.
At the moment I can't really see what the problem could be. Maybe some more experienced dev can shed a light on this?
Maybe it has omething to do with the connections to or the service provided by Last.fm.
The really strange thing is that it only happen for special chars.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-03 16:01:57
ah well not to worry. i can live with it. i'll just use the website to love tracks with special chars in.
Title: foo_softplaylists
Post by: Yirkha on 2009-12-03 22:01:02
this only happens when the artist or title has special characters. your component works perfectly when my script isn't running.
At the moment I can't really see what the problem could be. Maybe it has omething to do with the connections to or the service provided by Last.fm. The really strange thing is that it only happen for special chars.
Well, I don't know anything about the Last.fm API, however Googling reveals that "Invalid method signature supplied" is returned when the api_sig doesn't match the data (http://www.last.fm/group/Last.fm+Web+Services/forum/21604/_/428269). Perhaps another charset conversion issue somewhere, like the MD5 sum is calculated on something else than what the server sees and validates it against? Hard to guess why it would be affected by some unrelated script, but it would at least make sense that it happens only on tracks with extended characters.

marc2003, you might want to provide the packet capture in the raw binary format, so that Johan could at least look if the request was sent in proper UTF-8, the signature matches and it's some problem on Last.fm's side, or if it really is not a valid signature for the request and there is some weird bug in the component. But I understand you are sensitive about your API key and stuff.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-04 01:01:11
New version:
Soft Playlists 2009-12-04 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-Added: possibility to output unmatched track info to console
-Added: aborting code, possibly time consuming tasks can be aborted now
-Changed: various strings cleanup
Title: foo_softplaylists
Post by: marc2003 on 2009-12-04 10:51:59
marc2003, you might want to provide the packet capture in the raw binary format


i had another look at this and it is the encoding.....

successful action....

Code: [Select]
POST /2.0/?method=track.love&track=Unison&artist=Bj..rk


unsuccesful action

Code: [Select]
POST /2.0/?method=track.love&track=Unison&artist=Bj.rk


and as the api_sig is the same in both cases, that would explain why one fails. but it's still no clearer why it's affected by my script. all this stuff really is way over my head. i'm no programmer.

@Johan, i'm trying to write my own "love" track feature in javascript but i'm falling over at the last hurdle. i've succesfully managed to create a valid api_sig so i can retrieve a session key but i can't create a valid one to love a track. is there anything obviously wrong with what i'm doing? i'm getting the same error 13 as above.

Code: [Select]
var api_sig = md5("api_key" + api_key + "artist" + artist + "methodtrack.lovesk" + sk + "track" + track + secret);
var url = "http://ws.audioscrobbler.com/2.0/?method=track.love&track=" + track + "&artist=" + artist +  "&api_key=" + api_key + "&api_sig=" + api_sig + "&sk=" + sk;
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-04 15:40:45
Yes this indeed shows why the signature didn't match, and indeed we still don't know why they influence eachother.
For some reason the data is sended non UTF encoded and then it fails. But why does it do that?

About your code:
Seems to be ok.
Is your sk ok?
Are you doing a http POST?
Title: foo_softplaylists
Post by: marc2003 on 2009-12-04 17:01:22
i'm making some slight progress. earlier on i was using the javascript function encodeURIComponent on track.getinfo feeds and it was working perfectly. so i stupidly assumed i could use encodeURIComponent on track.love too but i'm completely wrong. removing this function allows my api_sig to check out ok and i can even love tracks - but only plain text ones. i'm back to square one if they have special characters. 
Title: foo_softplaylists
Post by: Yirkha on 2009-12-04 23:33:37
For some reason the data is sended non UTF encoded and then it fails. But why does it do that?
Obviously it's the XMLHTTP ActiveX object doing something weird with the WinInet API, because it affects whole process and not just its own HINTERNET. However you can specify that you are always going to push the host/path/query data in UTF-8, and you don't want anyone meddling with it, using the following code:
Code: [Select]
  DWORD value = CP_UTF8;
  InternetSetOptionA(hInternet, INTERNET_OPTION_CODEPAGE, &value, sizeof(value));
  InternetSetOptionA(hInternet, INTERNET_OPTION_CODEPAGE_PATH, &value, sizeof(value));
  InternetSetOptionA(hInternet, INTERNET_OPTION_CODEPAGE_EXTRA, &value, sizeof(value));
It makes the encoding problem go away, at least here on Win7/x64.
Note you probably shouldn't be very strict in checking the return values here (well not that your current code does...), because according to MSDN, there are some limitations for those flags:
Quote
Windows XP with SP2 and Windows Server 2003 with SP1:  This flag is not supported.
Version: Requires Internet Explorer 7.0.

Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-05 01:25:03
Ok, thanks for hopefully clearing this out!
Will try the changes for next version.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-05 17:47:13
New version:
Soft Playlists 2009-12-05 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-Changed: fixed various bugs

Try this version marc2003 and report.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-05 18:07:37
yup, working fine. many thanks for your efforts.

it's now running it complete harmony with my script. using WSH panel mod i've created a button that runs your component and then immediately queries the track.getinfo service to pull the playback stats and "loved" status and writes it to my file tags. 

(http://k5sbdw.blu.livefilestore.com/y1p-h7v0PpJDGMCDEiOa6JeDlN_tBA7rt4eYwr-2LEeRY01q_L9Aanfsnv5uc93YXNvFbvEGok1_H-CzoIukgU4Ny5jBvEMXRzT/lastfm.png)


Title: foo_softplaylists
Post by: ExUser on 2009-12-05 18:57:28
^ that is a very nicely designed UI, IMO
Title: foo_softplaylists
Post by: Fractal_Mortality on 2009-12-06 02:21:30
yup, working fine. many thanks for your efforts.

it's now running it complete harmony with my script. using WSH panel mod i've created a button that runs your component and then immediately queries the track.getinfo service to pull the playback stats and "loved" status and writes it to my file tags. 

Title: foo_softplaylists
Post by: marc2003 on 2009-12-06 03:17:36
nope. wsh panel mod is columns UI only. you can easily run it with a standard columns layout though. it doesn't have to use PSS/el_playlist like i'm using.
Title: foo_softplaylists
Post by: halluci on 2009-12-06 04:02:54
For the next version, can you add an option to include the original track from which a similar songs playlist is generated?
Title: foo_softplaylists
Post by: marc2003 on 2009-12-06 13:26:21
nope.


i've changed my mind. it is possible using foo_dockable_panels. i've tested it and it works fine. i'll post up a "how to" when i can be bothered. (sorry Johan for all this off-topic talk )

screenshot (http://k5sbdw.blu.livefilestore.com/y1pWsE_gRBg3g8h6T6srH0BKfxHluxrsFhwQmKZNLq3dqkgF5WqbGgNWiL1ZBQ-s3UZIvAjG_1sWD9dmRlUID2M2otkmG9eSxx9/dui_lastfm.png)
(note the little panel in the bottom right corner)
Title: foo_softplaylists
Post by: Fractal_Mortality on 2009-12-06 15:15:20
Awesome, I'd be really interested in seeing how you do this.
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-06 23:28:46
New version:
Soft Playlists 2009-12-06 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-Added: handling of <duration> and <trackNum> tags when saving and loading XSPF playlists
-Changed: more error handling
Title: foo_softplaylists
Post by: Galleon on 2009-12-07 03:41:05
Sorry for off top. Is there software to generate XSPF playlists from Last.fm?
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-08 14:51:54
No idea, I know they provide XSPF playlists as an alternative for some feeds.
Maybe I can include a special Last.fm -> XSPF submenu in future plugins with the same fucntion but for  Last.fm -> XSPF playlist instead of  Last.fm -> foobar library based playlist.
Title: foo_softplaylists
Post by: _oao on 2009-12-08 16:54:14
Sorry for off top. Is there software to generate XSPF playlists from Last.fm?
http://www.playgrub.com/ (http://www.playgrub.com/)

i already talked about this in a few posts before, it's a bookmarklet that can create XSPF playlists from websites, it works with last.fm and some other sites:
Quote
Apple.com iTunes Charts
Musicbraniz Releases
BBC Radio Programmes
Songkick Setlists
The Y! Radish
FIQL Playlists
Grooveshark Playlist Export
Title: foo_softplaylists
Post by: NullString on 2009-12-10 12:03:49
would it be possible of adding the "love track" context menu for the selected elements on the playlist? that way I can love all the tracks that I have with 5 stars on my library, not doing that 1 by 1
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-10 12:18:10
Risk of abusing last.fm is too high.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-10 12:20:04
if you use columns UI/or DUI with dockable panels, you could use WSH panel mod to automatically trigger this component to automatically love 5 star rated tracks when playback begins. if you want help with this, give me a shout.
Title: foo_softplaylists
Post by: marc2003 on 2009-12-10 18:08:06
a problem to report. if there is no network connection, attempting to love a track causes foobar to crash. using the other options does nothing but create an empty playlist so no problems there. see if you can re-produce by temporarily disabling your network adapter.
Title: foo_softplaylists
Post by: YoG on 2009-12-24 12:27:05
Wow what a great add-on !!
The Love features means i can finally get rid of the LastFM client

But its a real pity i cant use the Love-feature with my remote, although WinLIRC is capable of using some elements of your component, such as 'Load XSPF Playlist' and 'Friends'... they show up in the list of WinLIRC, but other like 'Love Track' don't .. how come?
Title: foo_softplaylists
Post by: carmenm on 2009-12-24 16:17:50
Wow what a great add-on !!
The Love features means i can finally get rid of the LastFM client

But its a real pity i cant use the Love-feature with my remote, although WinLIRC is capable of using some elements of your component, such as 'Load XSPF Playlist' and 'Friends'... they show up in the list of WinLIRC, but other like 'Love Track' don't .. how come?

you can! Just add a global shortcut for love track and associate that keyboard shortcut with a button of your remote.
Title: foo_softplaylists
Post by: YoG on 2009-12-24 20:56:23
Thanks but, which add-on will let me associate a keyboard shortcut? Afaik, Foo_Lirc can only be associated with Foobars' standard menu commands
Title: foo_softplaylists
Post by: carmenm on 2009-12-24 21:40:43
Thanks but, which add-on will let me associate a keyboard shortcut? Afaik, Foo_Lirc can only be associated with Foobars' standard menu commands

You dont need an addon for that. just go into the preferences->keyboard shortcuts.
Then just trigger that keyboard shortcut from winlirc, or as i do eventghost
Title: foo_softplaylists
Post by: YoG on 2009-12-24 22:43:33
Quote
Then just trigger that keyboard shortcut from winlirc
Eh, how do i do that? Its only possible to execute menu-commands from within Foo_LIRC
Appreciate the help though
Title: foo_softplaylists
Post by: BuZ on 2009-12-25 07:18:40
Awesome plug! Thank you so very much!
Title: foo_softplaylists
Post by: carmenm on 2009-12-25 11:25:21
Quote
Then just trigger that keyboard shortcut from winlirc
Eh, how do i do that? Its only possible to execute menu-commands from within Foo_LIRC
Appreciate the help though

Now you dont get it. From foobar just associate the keyboard shortcut to loving the current playing track. There is no lirc in that.
Then associate that keyboard shortcut from within winlirc. I dont see the need of foo_LIRC there.
From what i have seen on the net you can associate a button with a keyboard shortcut from within your winlirc config.

Have you ever take a look at eventghost? It s pretty amazing!
Title: foo_softplaylists
Post by: wojtek on 2009-12-25 20:05:42
I can't "love" tracks in RTL characters ( eg. Hebrew )
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-26 16:51:11
a problem to report. if there is no network connection, attempting to love a track causes foobar to crash. using the other options does nothing but create an empty playlist so no problems there. see if you can re-produce by temporarily disabling your network adapter.


I will add some extra error checking to prevent this.
Title: foo_softplaylists
Post by: 2E7AH on 2009-12-26 22:04:28
Johan, I see there is space in preferences for some XSPF settings: for example enable/disable writing of:
  - album
  - tracknumber
  - length
when creating playlist

Maybe even option for creating playlist from context menu (on selected tracks)?
Title: foo_softplaylists
Post by: Zirafarafa on 2009-12-27 05:04:21
I have been looking for a component with type of functionlity for a while now - thanks.

The last piece of functionality I am looking for is for it to be able to continually add music to an existing playlist, instead of it generating a once-off new playlist.

Ie, after a song has finished playing, lookup a further set of matching tracks and add them to the end of the current playlist (keeping track of duplicates so songs don't start repeating). 

Does this make sense?

It is a feature I use all the time in Linux music players (Exaile/Listen)
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-28 23:14:06
Johan, I see there is space in preferences for some XSPF settings: for example enable/disable writing of:
  - album
  - tracknumber
  - length
when creating playlist

These are only written when they exist.
Only when a perfect match can be found, they are actually used when loading a playlist.
So is it still useful to have that option?

Maybe even option for creating playlist from context menu (on selected tracks)?

Can indeed also be handy.
Title: foo_softplaylists
Post by: 2E7AH on 2009-12-28 23:41:31
OK, it was example with i.e. FLAC playlist and other OGG playlist (converted from FLACs) and problem of finding which FLACs weren't converted. So saving OGG XSPF and loading should match FLACs (as your matching code matches alphabetically) and then with the help of foo_utils unconverted FLACs should emerged.
It was example at the time and I wrote that, but it's not big deal manually deleting lines in such cases, or removing OGGs from library and then finding the matches as in example

While thinking of another examples it occurred to me if it would be possible an option for returning more then one results: i.e. artist / track match in FLAC format than in OGG format if it exist or from the original release and if found in some compilation etc?
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-30 01:46:00
New version:
Soft Playlists 2009-12-30 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-Added: Last.fm Top Tags Top Tracks
-Added: Last.fm Custom Tags Top Tracks
-Added: ability to prefix generated Last.fm playlists
-Fixed: crash when loving a track without an internet connection
Title: foo_softplaylists
Post by: wojtek on 2009-12-30 10:49:23
Thanks for the new version. Loving tracks with RTL characters works now.
Also I love new top tags / custom tags feature!
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-30 19:40:18
New version:
Soft Playlists 2009-12-30.2 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-Added: Last.fm User, Friends and Neighbours Recent Tracks
-Added: Last.fm Top Tracks, Loved Tracks and Recent Tracks of a custom Last.fm user list
Title: foo_softplaylists
Post by: dreadroach on 2009-12-30 19:49:26
Thanks for new version!

About the top tags.. Would it be possible to fetch ie. all Rock artists, albums and songs with rock tag instead of just "top tracks"?
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-30 19:53:53
About the top tags.. Would it be possible to fetch ie. all Rock artists, albums and songs with rock tag instead of just "top tracks"?


As far a I know, in a way that is not too taxing for the Last.fm servers, sadly no.
Title: foo_softplaylists
Post by: dreadroach on 2009-12-30 20:05:22
As far a I know, in a way that is not too taxing for the Last.fm servers, sadly no.


That's pity..i was just wondering..probably it would took hours to generate playlists with the large music library :/
Title: foo_softplaylists
Post by: JohanDeBock on 2009-12-30 20:48:11
An option could be to do a full library check with a certain amount of requests per second and write the last.fm tags to the music files.

Or do a full library check write all the information to an XSPF playlist and reuse that playlist to tag files.

Personally I would like to use an custom database plugin to save these tags. Is there still a stable plugin to do this?
Title: foo_softplaylists
Post by: shiphtfour on 2009-12-31 05:28:59
Thanks, this plugin is great! If you are taking requests, can you add a playlist mode that only returns results for tracks selected or from the same album or something similar? Basically I want a playlist generated of users' favorite songs off particular albums.
Title: foo_softplaylists
Post by: Hitchhiker427 on 2010-01-04 02:58:18
How about the option to place a tag on any track "loved?" If it's something too foreign for your developing skills, I understand, but I definitely think it would be a great feature. It's unfortunate that foobar doesn't have any such thing as making "macro" commands, as then users could easily just combine any tagging script they wanted with your love track action.


I know it was mentioned multiple times before, but is there any plan to add this feature?  It'd be really nice to see which of my tracks are loved straight from the foobar2000 playlist.
Title: foo_softplaylists
Post by: Keesface on 2010-01-04 07:45:13
How about the option to place a tag on any track "loved?" If it's something too foreign for your developing skills, I understand, but I definitely think it would be a great feature. It's unfortunate that foobar doesn't have any such thing as making "macro" commands, as then users could easily just combine any tagging script they wanted with your love track action.


I know it was mentioned multiple times before, but is there any plan to add this feature?  It'd be really nice to see which of my tracks are loved straight from the foobar2000 playlist.

Like zis?

http://www.hydrogenaudio.org/forums/index....showtopic=76772 (http://www.hydrogenaudio.org/forums/index.php?showtopic=76772)
Title: foo_softplaylists
Post by: Hitchhiker427 on 2010-01-04 10:43:40
Like zis?

http://www.hydrogenaudio.org/forums/index....showtopic=76772 (http://www.hydrogenaudio.org/forums/index.php?showtopic=76772)


Thanks, but that's only really suitable for ColumnsUI.  The dockable panels workaround for the DefaultUI isn't very tolerable.  It's a shame though, because the script posted there is exactly what I want.
Title: foo_softplaylists
Post by: nascent on 2010-01-07 15:29:39
This sounds pretty cool.  I'm kind unclear on exactly what this does though.  Does it scrobble and then take songs that are played lots and mark them as loved? is it automated or does it require interaction.  Does it not scroble and only provide "love" functionality?
Title: foo_softplaylists
Post by: JohanDeBock on 2010-01-07 15:50:36
It is cool , it can love a track with context menu, it can generate playlists based on last.fm and it can save and load XSPF playlists.
Anyway just try it out.
Title: foo_softplaylists
Post by: nascent on 2010-01-07 16:31:53
Ah ok so it doesn't replace foo_audioscrobbler it compliments it?  I might have to give it a try, I was kinda hoping it replaced foo_audioscrobbler with a more intelligent "only scroble tracks that are rated" or something. Oh well.
Title: foo_softplaylists
Post by: ernstblaauw on 2010-01-10 21:15:16
Looks great this plugin!
I have a small question: is it correct this extension does not have a function like the 'dynamic playlist'  function from Exaile? If enabled, that function takes the n last played songs (default is 10, I believe) and based on those last played tracks, I finds related tracks via Last.fm and fills the playlist, so that at all times 5 numbers are available to listen to.

Could such feature be implemented?

I believe also Amarok has such a feature, but that's a little bit more complicated to configure.
Title: foo_softplaylists
Post by: Sparanoid on 2010-01-12 09:54:28
My foobar2000 become laggy after installing this component, starting foobar2000, opening prefs panel and other window, I try a fresh installation with only this but nothing help, I'm runing Win 7 64-bit and foobar2000 version 1.0
Title: foo_softplaylists
Post by: q-stankovic on 2010-01-12 22:07:17
Maybe even option for creating playlist from context menu (on selected tracks)?

Can indeed also be handy.


Why don't you implement the xspf-functionality in the style like foo_xspf did: in the dropdown menu for filetypes in windows related to loading/saving playlist. So it would be available for "(main menu) save playlist...", "save all playlists...", "(context menu) save playlist" and "load playlist".

(Sorry for my english: if you don't understand you can take a look in foo_xspf)
Title: foo_softplaylists
Post by: JohanDeBock on 2010-01-12 22:28:26
[quote author=q-stankovic link=msg=679763 date=1263334037]
Maybe even option for creating playlist from context menu (on selected tracks)?

Can indeed also be handy.


Why don't you implement the xspf-functionality in the style like foo_xspf did: in the dropdown menu for filetypes in windows related to loading/saving playlist. So it would be available for "(main menu) save playlist...", "save all playlists...", "(context menu) save playlist" and "load playlist".

(Sorry for my english: if you don't understand you can take a look in foo_xspf)
[/quote]

I first tried it this way, but it wasn't possible, atleast with my experience.
An xspf playlist without hard links is not you typical playlist.
I need access to the database to load playlists without hard links and I was unable to to that in the traditional way.
The original foo_xspf only could be used for playlists with hard links.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-01-12 22:29:34
My foobar2000 become laggy after installing this component, starting foobar2000, opening prefs panel and other window, I try a fresh installation with only this but nothing help, I'm runing Win 7 64-bit and foobar2000 version 1.0


Hmm strange, never had this problem, do you also have this behaviour with versions without the tag based playlists?
Title: foo_softplaylists
Post by: JohanDeBock on 2010-01-12 22:31:25
I have a small question: is it correct this extension does not have a function like the 'dynamic playlist'  function from Exaile? If enabled, that function takes the n last played songs (default is 10, I believe) and based on those last played tracks, I finds related tracks via Last.fm and fills the playlist, so that at all times 5 numbers are available to listen to.
Could such feature be implemented?


No the playlists are not dynamic. Should be possible I think. No idea if I will ever have the time to implement it.
Title: foo_softplaylists
Post by: Sparanoid on 2010-01-13 00:33:55
My foobar2000 become laggy after installing this component, starting foobar2000, opening prefs panel and other window, I try a fresh installation with only this but nothing help, I'm runing Win 7 64-bit and foobar2000 version 1.0


Hmm strange, never had this problem, do you also have this behaviour with versions without the tag based playlists?


It become laggy while I'm torrenting and uploading with full speed, such as 'Love' a track to Last.fm will freeze the main window 2 or 3 secs.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-01-13 00:37:31
Well it needs to upload and download data.
It is never a good idea when torrenting to upload at full speed, it slows down all internet traffic, even your torrent download.
Try to determine the maximum speed of your internet connection and set your upload and download limits to 80% of that.

Moderation: Removed unnecessary full quote of the preceding post.
Title: foo_softplaylists
Post by: Sparanoid on 2010-01-13 02:22:46
Well it needs to upload and download data.
It is never a good idea when torrenting to upload at full speed, it slows down all internet traffic, even your torrent download.
Try to determine the maximum speed of your internet connection and set your upload and download limits to 80% of that.

Moderation: Removed unnecessary full quote of the preceding post.

Such as foo_audioscrobbler, torrenting with full upload speed doesn't make foobar2000 freeze or make it 'Not Responding', it will stop scrobbling and try again later I think? maybe it's good for foo_softplaylists to do like this.
Title: foo_softplaylists
Post by: hanshans on 2010-01-17 20:24:56
I am searching for a way to synchronize my playlists between two foobar installations on different machines.
In a perfect world, this would be possible through an online service, like it is possible with xmarks to sync bookmarks in firefox.

But maybe it also could be done by using the xspf file format and a network share?
Would it be possible to export all playlists automatically to an specified directory from time to time? every x minutes or when the playlist has been changed? Maybe only some playlists which are explicitly selected.

THX so far for this great component
Title: foo_softplaylists
Post by: foosion on 2010-01-17 21:36:56
I need access to the database to load playlists without hard links and I was unable to to that in the traditional way.
I had to solve the same problem for foo_random. I ended up maintaining a copy of the ML track list that I can access from arbitrary threads (using proper synchonization, of course).

Well it needs to upload and download data.
Do you do the network I/O in a background thread? If not, that would be a good idea.
Title: foo_softplaylists
Post by: ernstblaauw on 2010-01-18 00:34:13
No the playlists are not dynamic. Should be possible I think. No idea if I will ever have the time to implement it.

I hope you can find someday some time for this feature :-). Can I help, for example to look for the code used by Exaile to implement this?  Or are you not interested in their code?
Title: foo_softplaylists
Post by: thadeous on 2010-01-19 09:18:08
Is there any way, in addition to individual tracks, this could work with importing based off Artists and Albums charts? That would be fantastic- thanks
Title: foo_softplaylists
Post by: Keesface on 2010-01-19 21:39:11
Foobar has been starting up a lot slower for me lately (up to 20 seconds sometimes). I just started troubleshooting by removing and readding components one by one and after i removed softplaylists i had a startup time of 1,7 seconds. My startup times used to be fine, any idea what has gone wrong?
Title: foo_softplaylists
Post by: marc2003 on 2010-01-19 21:51:43
whatever the problem, it's unlikely to be softplaylists. it only performs actions when you explicitly tell it to.
Title: foo_softplaylists
Post by: Keesface on 2010-01-19 21:53:13
Yeah that's what i figured too. However, i replaced the newer version with the 12-06 version and now everything is running smooth again :/.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-01-19 22:06:01
It has something to do with the downloading of the most popular taglists on startup in the newer version I suspect. I should use some timeout mechanism.
Title: foo_softplaylists
Post by: Dr_Colossus on 2010-01-26 06:50:34
Here's a bug.

If a song name has parentheses or square brackets in it, it won't be matched to the last.fm charts. This is not a problem with foo_scrobblecharts.dll. Please consider adding an option to neglect the appended strings in parenthesis and brackets since the naming convention most popular on lastfm generally neglects them as well.

Compare the top charts created by foo_scrobblecharts.dll and foo_softplaylists.dll.

First foo_scrobblecharts.dll for the artist Antônio Carlos Jobim.
Code: [Select]
Insensatez
Desafinado (Off Key)
Triste
Corcovado (Quiet Nights Of Quiet Stars)
Água De Beber
Águas De Março (Waters Of March)
Vivo Sonhando
O Grande Amor
Favela
Borzeguim


Now foo_softplaylists.dll for the same artist.
Code: [Select]
Insensatez
Triste
Água De Beber
Vivo Sonhando
O Grande Amor
Favela
Borzeguim
Title: foo_softplaylists
Post by: senil on 2010-01-30 13:03:23
Hi!

Thanks for your amazing plugin! Have you thought about adding scrobbling to this plugin? Unfortunately, foo_audioscrobbler is broken, and hasn't been fixed for several months...

Thank you!
Title: foo_softplaylists
Post by: marc2003 on 2010-01-30 13:10:26
LOL. foo_audioscrobbler is not broken at all. i think you must have some sort of problem your end. 
Title: foo_softplaylists
Post by: dreadroach on 2010-01-30 13:21:34
I think it refers to official foo_audioscrobbler provided with last.fm scrobbler, as far is i know that version doesn't work with foobar v1.0.

Florian's standalone version (http://www.hydrogenaudio.org/forums/index.php?showtopic=44320) works without probs.
Title: foo_softplaylists
Post by: senil on 2010-01-30 13:50:35
I'm not trying to hijack this thread, I'll continue in the foo_audioscrobbler thread instead...
Title: foo_softplaylists
Post by: Sparanoid on 2010-01-31 13:33:03
well, any idea about disable the drag to change the offset, or scroll to change the offset?
Title: foo_softplaylists
Post by: Gnuzifer on 2010-02-03 12:07:11
Hi!
I have not read the whole thread, so sorry if there was a question like this before.

Is it possible to add a feature where a predefined tag is set for a track that is loved on last.fm?
That would make it possible to mark the loved tracks in the playlist view. That would be great.

Nice tool anyway. Thanks.

greetings: Martin
Title: foo_softplaylists
Post by: marc2003 on 2010-02-04 09:07:06
^ you might be interested in a script i've made. as well as providing a clickable button to run this component, it can also automatically fetch a track's loved status and playcount directly from last.fm's servers as you play them. you can then display this information in your playlist.

unfortunately it's not a proper component but a collection of 3rd party tools. i've put together a full guide with all required files here (http://cid-649d3bfeaf541fbb.skydrive.live.com/self.aspx/.Public/foobar/guide/playcount%20sync.zip)

Title: foo_softplaylists
Post by: SHADOW-XIII on 2010-02-04 23:27:49
marc2003 is already pissed with me but he helped me with setting the skin (http://inappropriatenudging.deviantart.com/art/MonoLite-Plus-Mod-v3-1-152653819) working and it did work.
{@marc2003: Hello, yup, it's me - the same pissing you off guy from DA, sorry}

I am having problems with SOFTPLAYLIST

I got skin everything is configured properly, entered username & password
It was working, I managed to LOVEd one music through it but now it stopped working, I cannot LOVE any more music
As well I am testing it through menu "LOVED last.fm -> USER" and it returns playlist with 0 entries.
I tested it with PURE portable installation, was working at the beginning but stopped :/

I got username/pass in foo_softplaylist, in foo_audioscrobbler plus username/apikey in code
After pressing LOVE button, console displays:

Playcount sync: Contacting Last.fm....
Playcount sync: Last.fm responded "OK"
Playcount sync: Updating LASTFM_PLAYCOUNT 7 > 8
Playcount sync: Not updating LASTFM_LOVED. No changes found.
Reopening played file after update: "D:\Music\Test\Test.mp3"

(or normally without changing PLAYCOUNT, just this one was updated at the end of the listening)
So ... why foo_softplaylist doesn't connectect with last.fm to ?!
Apparently it can download data but not upload (PLAYCOUNT taken after foo_audioscrobbler updated online data?)
or maybe sometimes doesn't have any connection at all (thus empty USER Top Tracks playlist?)
Title: foo_softplaylists
Post by: marc2003 on 2010-02-05 00:38:31
*sigh* how do you expect anyone here to have a clue what you're talking about. this isn't the place to ask for help with 3rd party skins. your problem is still with my script and has nothing to do with this component whatsoever.

Title: foo_softplaylists
Post by: Candar on 2010-02-11 04:48:34
Hi everyone.
Im feeling a bit thick, but i can't seem to get this to work. I'm almost positive that i have it configured incorrectly though. I think my issue is an incorrect path preference...but i really don't know!

Anyway, could anyone help me out and explain what needs to change from the default settings to get playlists to be made?
Title: foo_softplaylists
Post by: marc2003 on 2010-02-11 07:12:21
you have the media library configured to watch your music folder(s)? it uses this to generate playlists. also, it might be worth checking the console (found on the view menu) to see if there are any softplaylist messages.
Title: foo_softplaylists
Post by: Candar on 2010-02-11 09:02:27
you have the media library configured to watch your music folder(s)? it uses this to generate playlists. also, it might be worth checking the console (found on the view menu) to see if there are any softplaylist messages.

Yup, that was it. After i installed 1.0 i forgot to update my watched libraries. Knew i had missed something obvious!
Thanks so much for the quick reply.
Title: foo_softplaylists
Post by: malkav30 on 2010-02-16 10:33:08
Hi everybody
I would like to say thank you for your wonderful plugin (btw, thanks marc2003 for your great script)
Two questions :
- I can fetch as much songs as I want using  user loved tracks, but user overall top tracks seems to clip to 50 first tracks or so. is it normal ?
- how can I deal with japanese artists ? I have a bunch of Japanese artist in my library, having their name tagged using latin alphabet. everything's fine when scrobbling these artists, but they don't show up when I use softplaylists.
I have a request too : would it be possible to have a playlist containing loved tracks with a certain tag instead of top tracks ? maybe by crossing the results of user.getlovedtracks and tag. gettopartists or tag.gettoptracks ?
usage scenario : I use specific tags for mood/context classification, and I would like to generate playlists of my loved tracks depending on the context/mood. so far I just have a playlist of the top tracks concerning one tag.
hope this make sense...

Title: foo_softplaylists
Post by: kopf on 2010-02-16 16:11:07
Hi, it'd be really really really nice to be able to specify a single playlist for foo_softplaylists to use, so it doesn't create a new one with each different query.

Also, I'd like to be able to enter in Custom Users each time I select the function. Perhaps there could be two options - querying saved custom users, and querying a new list? Or, there could be just one option, with a text box for entering custom users displayed, already populated with the list of saved users

Other than that, great plugin, thanks! Any chance we could have a look at the source?
Title: foo_softplaylists
Post by: kopf on 2010-02-24 17:04:46
Also, it'd be an idea to be able to do things with artists as you can with users (play top tracks, play related artists, etc)
Title: foo_softplaylists
Post by: Joffi on 2010-02-24 23:25:29
Love this plugin. And now, my wishlist *chuckle* one entry:

The issue:
When items are added from library to create the various playlists, it appears to grab the first artist-title match and adds it with no other variables processed.

The wish:
If it could do something like check all matches against first the %rating% and then by %bitrate% it would ensure the preferred copy of the track is the one added to the playlist and not one of lower quality. When I have track rated 5, it's going to be a preferred copy.

The reasoning:
I have quite a number of sampler, various artists, soundtrack albums, plus many, many loose singles which are always of medium to low quality. But the actual full albums are much more often high quality. When I have a lossless copy, or even high lossy, I'm going to want it over some 128 to 192kb/s giveaway version. As it stands, I get the lower quality copies added with enough frequency to post this.

I realize that adds to the overhead, reduces speed, etc, but that's why it is a wish *grin*
Title: foo_softplaylists
Post by: revenant on 2010-03-25 21:32:26
How about getting out of "Legacy" state, by using new SDK?
Title: foo_softplaylists
Post by: revenant on 2010-03-30 09:54:17
Fails behind proxy:

foo_softplaylists: failed to love 'Echidna's Arf (Of You)' by 'Frank Zappa'

Almost identical installation at home works ok, the only major difference is internet access via proxy.
Title: foo_softplaylists
Post by: verdemar on 2010-04-07 14:26:07
I just recently discovered this thread, it seems like a very interesting approach.

I have been playing with an idea of loading playlists by searching the library for unique ids, that sounds like a trivial addon to this work, no? E.g. musicbrainz track ids, combination barcode-disc-track, amazon ids, md5sum of audio (as in flac) etc.  Or is this already covered by the xspf part? I have lots of tracks with similar tagging (e.g. different transfers of same 78rpms etc)

I tried installing the plugin, but the preferences page is very last.fm oriented, where does the xspf functionality appear? [EDIT:] I found it on the Library menu now, but it seems you cannot currently configure fields to include in the playlist. I would want to add one or more id fields, what do you think?
Title: foo_softplaylists
Post by: csthopper on 2010-04-13 17:45:42
Man this plugin is golden! I've been struggling for years to create a system that allows me to rate certain songs in my playlist as "favorites". Finally last.fm came along and gave me that ability. The problem with last.fm was that it had no connection to my physical music collection, so there wasn't much that i could do with last.fm's Loved list except stare at it. Well you sure did solve that problem, thus ending my many years of struggle.

I love my simple setup now. I listen to my music at work and have a shortcut sitting in my task bar, which when pressed, uses the run command plug-in to mark the song as Loved. Too easy!

I hope you're [the developer] still around and reading the comments in this thread. I i definitely hope you still plan to work on your plug-in.

If you do plan another release then I second some of the other comments about needing an option to add many songs for one last.fm playlist item. I have many versions/mixes of the same song and sometimes the plug-in matches the last.fm playlist to one file when i really wanted it mapped to another. I'd be happy for an option to include all matches then I can edit the playlist as needed.

Thanks again!!
Title: foo_softplaylists
Post by: Moth on 2010-04-14 01:28:22
amazing plugin. Keep up the good work!
Title: foo_softplaylists
Post by: DivinityCycle on 2010-04-27 02:09:19
I'm running foobar2000 version 1.0.2.1 on Windows 7 Ultimate x86.
Just wanted to post in to say that I experienced a kinda weird problem when using this component with COM Server 2. Basically if you have both components installed, Global hotkeys no longer work globally, but instead only work with Foobar2000 focused.

I resolved this issue by removing COM Server 2, since I wasn't actually using it for anything...
Title: foo_softplaylists
Post by: revenant on 2010-04-28 18:26:44
i wonder how 'Tracks feed limit' parameter works?
when i set it to '1000' only 869 tracks are fetched.

and why 1000 is the max? is it lastfm api limitation?
Title: foo_softplaylists
Post by: icedtea on 2010-05-13 19:19:45
Can this be updated to move commands out of Legacy Commands (unsorted) please?
Thanks
Title: foo_softplaylists
Post by: JohanDeBock on 2010-05-16 12:59:10
Just to let you know I'm still alive but at the moment I don't have the time to work on the component.
Most pressing change is indeed the update to the new SDK.
Title: foo_softplaylists
Post by: Nowings69 on 2010-06-20 04:48:23
Could you add Last.fm Hate Track?
Right now,Last fm remove country-limited(US,UK,GER)
But only listen on Foobar(maybe with no audioscrobbler)
Title: foo_softplaylists
Post by: dave_in_gva on 2010-06-21 07:46:14
I downloaded the .dll, placed it in my Components folder and restarted foobar.

Don't see any changes in my context menu or anything. How do you use this component? In case its an issue I am running foobar 9.5.2 because thats the last release that supports my preferred pui...

Title: foo_softplaylists
Post by: YoG on 2010-06-26 12:46:18
You can configure the plugin in the Tools Section of the Preferences menu.. if it doesnt show up in your contextmenu then i think you should try an older build of the plugin (http://telin.ugent.be/%7Ejdebock/foobar2000/)

________________

I was was wondering why not all commands show up in the "Run Command"-menu ?  I want to manually integrate the Love Track command, but it doesnt show up there?

Thanks for writing this plugin, its awesome
Title: foo_softplaylists
Post by: dave_in_gva on 2010-06-26 16:14:27
Got it, thanks.

Actually I had found the config page in the preferences but I had not found it in the context menu in the new skin i was using till I noticed it in a submenu of a Legacy commands dropdown list.

It's sitting there next to my other commands for the audioscrobbler component. I have started playing around with the two components on the same songs and notice some interesting differences.

With both plugins I am most interested in the similar artist playlist options.

With audioscrobbler I get a greater variety of tracks being proposed and I also get tracks from the artist I have used to launch the inquiry.

Anyone else notice advantages/disadvantages between these two?

Dave M
Title: foo_softplaylists
Post by: Firsh on 2010-06-26 17:17:33
HUH! Awesome!!  One little idea: differentiation between users, at least the custom users. I'd like to have a separate loved playlist for x and y, not necessarily merged together.
Title: foo_softplaylists
Post by: YoG on 2010-06-26 20:30:46
Maybe im overlooking the feature, but is it possible to get me to the Track-specific page on LastFM? You know, the webpage where people can leave their comments on how they (dis)like a track

Thanks!
Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-05 23:31:35
New version:
Soft Playlists 2010-07-06 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-Now fully compatible with foobar2000 1.0
Title: foo_softplaylists
Post by: icedtea on 2010-07-06 13:24:14
Thanks for the update but this component seems to cause large startup delays. Without it I get the startup time of about 1.5 seconds and with it 4.0 seconds, worse for cold startups. Also while starting up it seems to lock the GUI in both DUI/CUI for a couple of seconds. Can this be fixed please?
Thanks
Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-06 14:10:10
It is probably because of the internet connection it makes at startup to get the top tags.
I will try to fix it in next version with a time out or some detection mechanism to see if inet is available and that is hopefully fast enough.
Do you have an internet connection when you start up? Is it congested?

My startup time is 1.3 s in total.

It also works without inet connection on my pc, it just removes the top tags then.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-06 14:30:34
HUH! Awesome!!  One little idea: differentiation between users, at least the custom users. I'd like to have a separate loved playlist for x and y, not necessarily merged together.

I will make a separate entry where you can do the same things for each custom user independantly.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-06 14:32:36
Maybe im overlooking the feature, but is it possible to get me to the Track-specific page on LastFM? You know, the webpage where people can leave their comments on how they (dis)like a track

Thanks!
You can do that with foo_run but I will try make an entry for it in the Last.fm context submenu
Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-06 14:35:19
With audioscrobbler I get a greater variety of tracks being proposed and I also get tracks from the artist I have used to launch the inquiry.
Isn't audioscrobbler for scrobbling?
Title: foo_softplaylists
Post by: icedtea on 2010-07-06 15:08:34
It is probably because of the internet connection it makes at startup to get the top tags.
I will try to fix it in next version with a time out or some detection mechanism to see if inet is available and that is hopefully fast enough.
Do you have an internet connection when you start up? Is it congested?

My startup time is 1.3 s in total.

It also works without inet connection on my pc, it just removes the top tags then.


Yup I have an always on 100mbit cable...
Can the top tags fetching be done in a different thread?
Title: foo_softplaylists
Post by: dave_in_gva on 2010-07-06 15:15:12
With audioscrobbler I get a greater variety of tracks being proposed and I also get tracks from the artist I have used to launch the inquiry.
Isn't audioscrobbler for scrobbling?


Yup...sorry I meant to say scrobblecharts....

Still, great component and thanks for bringing it out and coming back to it.

Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-06 15:16:34
Yup I have an always on 100mbit cable...
Can the top tags fetching be done in a different thread?
Will check that out.
Title: foo_softplaylists
Post by: marc2003 on 2010-07-06 17:36:31
thanks for the update.
Title: foo_softplaylists
Post by: Nemphael on 2010-07-07 02:52:49
I love this plugin and use it a lot! Thanks!

Could you implement some kind of prefer/ban system? The component often picks live versions of song rather than album versions, which is really annoying.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-07 10:22:06
I love this plugin and use it a lot! Thanks!

Could you implement some kind of prefer/ban system? The component often picks live versions of song rather than album versions, which is really annoying.
Is there an automatic way to differentiate between the two? track length?
What you can do is tag these versions differently, for example add (live version) to the track name.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-08 01:45:54
New version:
Soft Playlists 2010-07-08 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-Added: Last.fm Top Tracks, Loved Tracks and Recent Tracks for each single user of the custom Last.fm user list
Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-08 01:47:19
HUH! Awesome!!  One little idea: differentiation between users, at least the custom users. I'd like to have a separate loved playlist for x and y, not necessarily merged together.
Done!
Title: foo_softplaylists
Post by: Nemphael on 2010-07-08 14:37:18
@JohanDeBock: It would of course be possible, but I don't like to tag fiels like that, seeing as many of those tracks are from live concert albums.
Title: foo_softplaylists
Post by: hymerman on 2010-07-26 09:09:42
First of all: brilliant component, this is exactly the direction I think media players should be going in.

Second: I have the same problem as Nemphael, I've got a large library and there tend to be several versions of a song available, and the component seems to choose randomly between them, often picking either a live (or remix etc.) version, a low quality version (when there is a flac version available), or a version from some various artists album or other compilation. I don't want to change the way I tag things, but I'm very much in the habit of tagging things from MusicBrainz, so there are things like album artist and release type available, which it would be possible to distinguish between tracks on. Just a simple order of preference would suffice, but some kind of amalgamated rating that took into account all these things would be better. I appreciate that doing all that would probably be a fair bit of work though - would you consider open-sourcing this, or maybe allowing a couple of other people to help? I'm willing and able.
Title: foo_softplaylists
Post by: revenant on 2010-07-26 09:24:50
omg. use foobar2000 proxy settings. what's wrong with that?
Title: foo_softplaylists
Post by: JohanDeBock on 2010-07-26 13:13:31
omg. use foobar2000 proxy settings. what's wrong with that?
Should be fixed in next version.
Title: foo_softplaylists
Post by: Chainyk on 2010-07-30 13:13:35
Quote
-love a track on your Last.fm account.

how it works ?
Title: foo_softplaylists
Post by: marc2003 on 2010-07-30 13:22:59
right click a track in your playlist>Last.fm>Last.fm love....

you can check the console to see if it worked.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-06 16:29:22
New version:
Soft Playlists 2010-08-06 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-fixed some bugs
Title: foo_softplaylists
Post by: krisimov on 2010-08-09 12:09:37
Softplaylists plugin was a musical revolution for me! Thanks a lot Johan, live long and well!

New version:
Soft Playlists 2010-08-06 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-fixed some bugs

Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-11 12:44:54
New version:
Soft Playlists 2010-08-11 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-using foobar internal http interface which mean proxy should now work
-fixed startup delay issue
Title: foo_softplaylists
Post by: revenant on 2010-08-11 13:30:15
the proxy is working at last, thanks.

but strange behavior with fetching the loved tracks still remains - now, with 3000 tracks limit set in preferences, i got only 46 from 'overall loved' (instead of 1k+).
is it last.fm api glitch?
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-11 13:33:44
I have about 400 loved tracks and they all get fetched and matched.
What is your last.fm username?
Do you get a long list of unmatched pairs in the console?
Title: foo_softplaylists
Post by: marc2003 on 2010-08-11 13:49:06
i just tested with someone's account that has 1800 loved tracks. the API craps out around 1500 (tested in a web browser). l'm surprised they let you grab that many at once as most other services are limited to 50 and if you want the whole lot, you have to fetch paginated results.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-11 20:36:27
New version:
Soft Playlists 2010-08-11.2 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-fetching more than 1500 loved tracks should now work
-using foobar internal http interface which mean proxy should now work
-fixed startup delay issue
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-11 20:38:06
but strange behavior with fetching the loved tracks still remains - now, with 3000 tracks limit set in preferences, i got only 46 from 'overall loved' (instead of 1k+).
is it last.fm api glitch?
Can you confirm this works now?
Title: foo_softplaylists
Post by: revenant on 2010-08-11 21:29:19
Can you confirm this works now?


unfortunately, the same thing, 46 tracks (the order seems to be correct though).

console shows the following:


foo_softplaylists: unmatched: 'Kruder & Dorfmeister' - 'Roni Size / Heroes (Kruder's Long Loose Bossa)'
foo_softplaylists: unmatched: 'DJ Shadow' - 'Excessive Ephemera 2'
foo_softplaylists: unmatched: 'Kruder & Dorfmeister' - 'Depeche Mode / Useless (K&D Session)'
foo_softplaylists: unmatched: 'Jackson 5' - 'Maybe Tomorrow'



btw, my page is here - http://www.last.fm/user/bashirov (http://www.last.fm/user/bashirov)
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-11 21:38:49
Works here so probably something proxy related and difficult to track down.
Title: foo_softplaylists
Post by: revenant on 2010-08-12 06:42:02
Works here so probably something proxy related and difficult to track down.


Last time I tried this at home, with no proxies.

It's weird, but it looks like as some kind of caching is performed on server side.
Title: foo_softplaylists
Post by: muzack on 2010-08-12 16:26:28
I have one request.
your component handle xpsf playlists without paths.
It would be awesome if it could read/write paths (<location>) too (optional).
foo_xspf doesn't work on 64 bit OS and it seems it is not develop any longer.
cheers m.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-15 00:50:45
New version:
Soft Playlists 2010-08-15 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-added option to prefer high bitrate, low bitrate, long or short tracks
Title: foo_softplaylists
Post by: rowolta on 2010-08-15 13:44:38
Nice work. Wanted to make something similar to foobar2000, but since I suck on C/C++ it poured out in the sand.
Instead I published a site with similar features: http://lastm3u.powha.net/ (http://lastm3u.powha.net/)

However, could you add an option to use an more "greedy" match algorithm? Like the library search?
Perhaps this will be slower and sometimes match more than one track, but if it is an option I don't see the problem.

Example
foo_softplaylists: unmatched: 'Torture Division' - 'Bludgeoning Your Flesh Into Dust'
In library: 'Torture Division' - 'Bludgeoning Your Flesh Into Du'
The library search does this match, perhaps this is because the library also searches the filename?

Another thing, I often use the "Save All As..." when right clicking the playlist view, could you add support for XSPF there?

Cheers and thank you for a great plugin.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-16 00:53:09
New version:
Soft Playlists 2010-08-16 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-added option to prefer latest or oldest tracks
-matching 100000 tracks in a library of 20000 tracks is now 9x faster, now takes 870ms on a core i7
Title: foo_softplaylists
Post by: Dr_Colossus on 2010-08-16 18:26:07
Hi Johan, I'm curious if you have given any more consideration to this behavior. Now that I am using Windows 7 foo_scrobblecharts.dll crashes so your component is my only option. I would imagine this is a problem in both cases where lastfm charts has song names with parenthesis and the client does not and vice versa.

Here's a bug.

If a song name has parentheses or square brackets in it, it won't be matched to the last.fm charts. This is not a problem with foo_scrobblecharts.dll. Please consider adding an option to neglect the appended strings in parenthesis and brackets since the naming convention most popular on lastfm generally neglects them as well.

Compare the top charts created by foo_scrobblecharts.dll and foo_softplaylists.dll.

First foo_scrobblecharts.dll for the artist Antônio Carlos Jobim.
Code: [Select]
Insensatez
Desafinado (Off Key)
Triste
Corcovado (Quiet Nights Of Quiet Stars)
Água De Beber
Águas De Março (Waters Of March)
Vivo Sonhando
O Grande Amor
Favela
Borzeguim


Now foo_softplaylists.dll for the same artist.
Code: [Select]
Insensatez
Triste
Água De Beber
Vivo Sonhando
O Grande Amor
Favela
Borzeguim
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-16 19:27:15
Will make an option for that in next version.
Title: foo_softplaylists
Post by: dkg on 2010-08-24 04:46:02
Hi.  I was playing with the XSPF functionality, and some concerns came up (similar to what I see some others have already expressed).  You see, a significant part of my library is multi-disc releases.  I *really* dislike tacking "(disc 2)" to the end of a release title, because I prefer to treat them as a single album.  So instead, I use a disc-number tag.  So for track-number to make any real sense, album + disc-number + track-number is needed.

I tried digging into the XSPF specs a little, and it looks like disc-number is not explicitly supported, but maybe you know some way around that.  Alternatively, someone mentioned musicbrainz IDs.  This would work great for me (MUSICBRAINZ_TRACKID, specifically), since nearly everything in my library has those tags.

Thanks.
Title: foo_softplaylists
Post by: Arkhon on 2010-08-24 21:03:44
Function "Love Track" crashes the player most of the time.
And if there is no crash, the interface freezes for several seconds before operation succeeds.

foobar 1.0 & 1.1, Soft Playlists 2010-08-16, Win 7 x64.
Title: foo_softplaylists
Post by: Sparanoid on 2010-08-26 05:09:29
It seems it cannot love a streaming radio like soma fm.
Title: foo_softplaylists
Post by: Arkhon on 2010-08-26 15:49:28
For me it can in principle love tracks from foo_lastfm_radio. But crashes as often as with my local tracks.
Title: foo_softplaylists
Post by: krisimov on 2010-08-26 16:01:22
it crashes when i try to love a song name containing "#" or "/" character. like:

"Les Baxter - Chopin / Prelude #4 In E Minor"

beside that there's no problem...

Function "Love Track" crashes the player most of the time.
And if there is no crash, the interface freezes for several seconds before operation succeeds.

foobar 1.0 & 1.1, Soft Playlists 2010-08-16, Win 7 x64.

Title: foo_softplaylists
Post by: Arkhon on 2010-08-26 18:54:57
krisimov
I think that's different problem.

I try to love the same track for example 5 times, it crashes 4 times and 1 time succeeds.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-28 11:41:03
I try to love the same track for example 5 times, it crashes 4 times and 1 time succeeds.

Did you always have this problem?
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-28 11:52:22
Nice tip for people with a squeezebox that want to copy their loved track playlist to it:
- enter the path that squeezeboxserver scans into 'Path Preference' setting
- let foobar reload your loved track playlist
- save the playlist as .m3u
- change the paths and line endings according to the platform squeezeboxserver is running on, in my case sparc-linux:
-- change line ending to unix, encoding must be ansi i think (you can easily do this with notedpad++)
-- change '\' to '/' and change 'Z:/Music/' to '/c/media/Music/'
- copy the playlist to the squeezeboxserver playlist scanning folder
- let squeezeboxserver rescan playlists
And then the playlist is ready to use!
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-28 19:52:27
New version:
Soft Playlists 2010-08-28 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-added option to also include partial title matches

And if you like this plugin:
Donate with Flattr (http://flattr.com/thing/55600/Last-fm-playlist-creation-and-love-track-foobar2000-component)
Title: foo_softplaylists
Post by: Arkhon on 2010-08-29 05:02:57
I try to love the same track for example 5 times, it crashes 4 times and 1 time succeeds.

Did you always have this problem?

I started using Soft Playlists a week ago, and yeah, I've had the problem all this time . I've tried foobar 1.0 & 1.1, Soft Playlists from 2010-08-16 & 2010-08-28.
My past experience shows inverted success/crash ratio, like 4/1, but anyway.

Yesterday I installed WireShark (a protocol analyzer) and made some investigation. There have been many cases of packets incorrectly sent to server or broken. I wrote a detailed post about it, but then decided to check also the foo_audioscrobbler's behavior. And it behaves the same way (except it doesn't crash). So I conclude that the problem is within foobar's HTTP engine.

But where are some measures the plugin can take to prevent crashes.

I've checked crash reports and identified 3 cases.

1. The message for this case is "Bad Request (400)".
It is caused by broken packet (only header with no data) sent to server. The server then responds with
Code: [Select]
HTTP/1.0 400 Bad Request
Date: Sat, 28 Aug 2010 18:40:42 GMT
Server: Apache/1.3.39 (Unix)
X-Proxy-Fix-Up: headers fixed up
X-Web-Node: www195
Connection: close
Content-Type: text/xml; charset=utf-8;

<?xml version="1.0" encoding="utf-8"?>
<lfm status="failed">
<error code="3">Invalid Method - No method with that name in this package</error></lfm>


2. Message: "Invalid data, received line length exceeds limit".
I can't figure out what is causing this. Received packets seem normal.

3. Message: "Could not connect to host".
I have only one such case out of 37 crashes.

I think there can be other abnormal situations.

I guess you use the method http_request::run, which (cite from its comment) "Throws an exception on failure (connection error, invalid response from the server, reply code other than 2XX)". I think catching these exceptions will prevent the crashes.
There is also http_request::run_ex, which "Throws an exception on failure but returns normally if the HTTP server returned a valid response other than 2XX, so the caller can still parse the received data stream if the server has returned an error". It can be useful in aforementioned case 1.

Hope this will help.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-29 09:45:42
You can also try earlier versions. They don't use foobars internal http.
I will add more error catching in next version. But that won't solve your real problem.
Title: foo_softplaylists
Post by: Arkhon on 2010-08-29 10:59:50
Detailed report about my investigation in tech support forum (http://www.hydrogenaudio.org/forums/index.php?showtopic=83288)

I will add more error catching in next version. But that won't solve your real problem.

That won't solve the root problem indeed. But that at least will make an illusion of solution. Like in foo_audioscrobbler. It often shows errors in console and can't submit scrobble data, but doesn't crash and retries after some time.

And anyway, exception handling is generally good. For example, "Could not connect to host" is not a result of some bug, it's normal (although rare) situation.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-08-29 14:11:18
Thanks for the info, will definately help me.
Title: foo_softplaylists
Post by: Jubei on 2010-09-01 19:49:38
New to this component, but please correct me on this => if name of track is not the same as title in last.fm then track won't get loved properly?

Example : track in my library is Alan Parsons Project - Eye In The Sky, but last.fm corrects it to THE Alan Parsons Project - Eye In The Sky (auto-corrected by last.fm). According to Console, foo-Softplaylists successfully loved the track, but when I went to last.fm to check it wasn't "loved".

Am I correct or am I missing something here?
Title: foo_softplaylists
Post by: JohanDeBock on 2010-09-02 15:43:10
Normally you can love every track, to check see if it gets added in you online loved playlist.
Title: foo_softplaylists
Post by: Jubei on 2010-09-03 07:25:21
Oddly I tried to love Van Morrison's Brown Eyed Girl off the Best of Van Morrison disc but instead it loved Radio Song by R.E.M.!!

Code: [Select]
[14:11:46] Opening track for playback: "E:\Classic Rock\Van Morrison\The Best Of Van Morrison\06  Van Morrison - Brown Eyed Girl.mp3"
[14:11:47] Audioscrobbler: Submitting track...
[14:11:48] Audioscrobbler: Submission succeeded.
[14:13:01] foo_softplaylists: successfully loved 'Radio Song' by 'R.E.M.'


Tags for Brown Eyed Girl looks right to me too. What's the deal?
Title: foo_softplaylists
Post by: JohanDeBock on 2010-09-03 12:20:05
It just takes the tags of the highlighted track.
Title: foo_softplaylists
Post by: Jubei on 2010-09-03 12:55:52
It just takes the tags of the highlighted track.


But the R.E.M. track wasn't on the playlist! And the Van Morrison track was highlighted.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-09-03 13:04:47
Did you do it by right-clicking or with shortcut? Make your tags are correct and the shortcut binding is correct.
Title: foo_softplaylists
Post by: Jubei on 2010-09-03 18:20:29
Did you do it by right-clicking or with shortcut? Make your tags are correct and the shortcut binding is correct.


Added a button in the playback toolbar (context menu options) to love tracks. Tracks are properly tagged - look fine in properties dialog box and last.fm registers it correctly in the recently listened tracks list.
Title: foo_softplaylists
Post by: jaedma on 2010-09-06 02:51:30
Hi. Works for me in v1.1. Tks.

There is a way to add tags to a song?
Title: foo_softplaylists
Post by: Jubei on 2010-09-06 06:35:03
Hi. Works for me in v1.1. Tks.

There is a way to add tags to a song?


Oh, it works for me too ... I just happen to have experienced a weird exception that was a bit baffling that's all.
Title: foo_softplaylists
Post by: Dr_Colossus on 2010-09-08 06:14:47
Thanks for the partial track name matching, but it seems to be broken. No other artist I have tried show such a dramatic difference as Nujabes.

The regular Nujabes top chart as matched by
Code: [Select]
Nujabes - [With Rainy Eyes CD1 #03] Reflection Eternal
NUJABES - [Metaphorical Music #04] Kumomi
Nujabes - [Metaphorical Music #06] Beat laments the world
NUJABES - [Metaphorical Music #02] Horn In The Middle
Nujabes - [Metaphorical Music #09] A day by atmosphere supreme
Nujabes - [Modal Soul #05] Music Is Mine
NUJABES - [Metaphorical Music #14] The Final View
Nujabes - [Flowers VLS #01] Flowers
NUJABES - [Metaphorical Music #13] Summer Gypsy
Nujabes - [Modal Soul #09] World's End Rhapsody
Nujabes - [Modal Soul #12] Sea Of Cloud
Nujabes - [Modal Soul #14] Horizon
Nujabes - [Modal Soul #13] Light On The Land
NUJABES - [Metaphorical Music #15] Peaceland
NUJABES - [Metaphorical Music #07] Letter From Yokosuka
Nujabes - [Hydeout Productions - 2nd Collection #06] Counting Stars
Nujabes - [Hydeout Productions - 2nd Collection #07] Another Reflection
Nujabes - [Samurai Champloo Music Record: Departure #03] Aruarian Dance
Nujabes - [Hydeout Productions - 2nd Collection #01] Voice Of Autumn
Nujabes - [Modal Soul #06] Eclipse (feat. Substantial)
Nujabes - [Hydeout Productions: First Collection #05] Still Talking To You
Nujabes - [Samurai Champloo Music Record: Departure #05] Mystline
Nujabes - [Flowers VLS #02] After Hanabi (Listen To My Beat)
Nujabes - [Samurai Champloo Music Record: Departure #02] The Space Between Two World
Nujabes - [Hydeout Productions: First Collection #07] Steadfast
Nujabes - [Samurai Champloo Music Record - impression #11] tsurugi no Mai
Nujabes - [Hydeout Productions: First Collection #01] Moon Strut (Intro)
Nujabes - [Samurai Champloo Music Record: Impression #14] World Without Words
Nujabes - [Modal Soul #01] Feather
Nujabes - [Summer Spirits #10] Modal Soul (ft. Uyama Hiroto)
[/size]

This is the console output
Code: [Select]
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Think Different (feat. Substantial)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'F.I.L.O. (feat. Shing02)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Next View (feat. Uyama Hiroto)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Feather (feat. Cise Starr & Akin from Cyne)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Sky is falling (featuring C.L. Smooth)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Hikari (featuring Substantial)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Ordinary Joe (feat. Terry Callier)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Fly by night (featuring Five Deez)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Modal Soul (feat. Uyama Hiroto)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Latitude -Remix (feat. Five Deez)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Thank You (feat. Apani B)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Luv (Sic) Pt3 (Feat. Shing02)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Letter form Yokosuka'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Blessing It (remix, feat. Substantial & Pase Rock from Five Deez)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Lady Brown (Feat. Cise Starr form Cyne)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Highs 2 Lows (Feat. Cise Starr form Cyne)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Sign (Feat. Pase Rock)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Feather (Ft. Cise Starr&Akin from CYNE)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'ordinary joe (Ft. Terry Callier)'
foo_softplaylists: unmatched: 'Nujabes' - '' - 'Eclipse (Ft. Substantial)'
[/size]

When partial matches are enabled only one track is outputted, and there is strangely no console output.
Code: [Select]
Nujabes - Funky DL - Don't Even Try It


Title: foo_softplaylists
Post by: JohanDeBock on 2010-09-08 13:28:02
Yeah foobar's standard partial matching function doesn't seem to be symmetric, I will write my own.
Title: foo_softplaylists
Post by: dimi_ghost on 2010-09-13 08:53:13
great plugin!

what about fetching last.fm tags for all artists from the library to be able to create a playlist with specific tags? something like last.fm boffin
http://blog.last.fm/2009/03/11/introducing...-mp3-collection (http://blog.last.fm/2009/03/11/introducing-boffin-lastfms-music-knowledge-meets-your-mp3-collection)

i believe it would be a very usefull feature.
Title: foo_softplaylists
Post by: Wooops on 2010-09-13 10:15:09
Amazing component just checking it and playing  ....

Some questions, is in the roadmap/possible to include panels (even if they are ugly console ones  displaying for example similar tracks (found in the library and not found-with a link to custom music engines (as Marc´s WSH script)) or artists based on the playing/selected track? I´m thinking on the fly and it´s late* so I apologize if this is utopic : D

Also a lot more near to ground is it possible to customize the query syntax used to query Last.FM? I got that it works by querying tagged tracks. In the case of the untagged songs it could try to use the filename like
Code: [Select]
$replace($if([%artist%],[%artist%],$stripprefix($substr([%title%],1,$sub($strstr(%title%,-),2)),-)),_, )

for artist
or
Code: [Select]
$replace($if([$meta(title)],[$meta(title)],$stripprefix($substr([%title%],$strstr(%title%,-),1000),-)),_, )

for title

I guess there may be more efficient codes, but that´s what I´ve managed to build so far...


..and Thank you!!!
Title: foo_softplaylists
Post by: Habitats on 2010-09-26 04:41:39
Hello, I wondered if it's possible to make this work with custom playlists (other than "loved tracks") I've created on last.fm.

I'm sorry if this has been asked before, but I couldn't find anything when I searched.
Title: foo_softplaylists
Post by: maXelo on 2010-10-04 19:42:16
I love this component, but is there any way to make the softplaylists select the oldest songs of the artist? i mean, when i use the "Last fm '%artist% Top Tracks" option, the component put the newest version of the songs:
(http://img408.imageshack.us/img408/2239/softplaylistsexample.jpg)
Title: foo_softplaylists
Post by: PeterB on 2010-10-08 09:55:34
Hi guys,

I have been using foobar for quite some time now and not so long ago I discovered the foo_audioscrobbler & foo_softplaylists plugins.

After a tryout of summarize, I had an issue with foobar of a nagscreen regarding a dll so I reinstalled completely.
Not realizing that I should have backed up the additional dll files, I deleted the whole directory after uninstalling and of course had to search again for the right plugins - also didn't remember which ones I was using... 

So no, I have added those two again, foo_audioscrobbler v1.4.7.0 and foo_sofrplaylists from this thread but I have a problem:
1) before, I had more last.fm options rightclicking a song, now there are only 4: Top Tracks, Similar Top Tracks, Level 0 Similar Tracks, Love a track on Last.fm
2) Love a track on Last.fm doesn't work, it produces a 'foo_softplaylists: failed to love' message everytime

Does any of you have a clue what might be wrong?
TIA!
Peter
Title: foo_softplaylists
Post by: Brizz on 2010-10-09 19:33:33
I just installed this plugin for the first time..

I'm also having this problem like the above user...

1) before, I had more last.fm options rightclicking a song, now there are only 4: Top Tracks, Similar Top Tracks, Level 0 Similar Tracks, Love a track on Last.fm
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-11 13:12:34
More then 4 options when right-clicking:
Which were those extra options?

2) Love a track on Last.fm doesn't work, it produces a 'foo_softplaylists: failed to love' message everytime
Can you give more details?
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-11 13:19:04
I love this component, but is there any way to make the softplaylists select the oldest songs of the artist? i mean, when i use the "Last fm '%artist% Top Tracks" option, the component put the newest version of the songs:
With option prefer oldest tracks, normally. Are tags correct?
Title: foo_softplaylists
Post by: Brizz on 2010-10-11 21:29:10
Johan...isn't it supposed to have more than 4 options?  In your original post...

Can create different Last.fm related playlists:
->loved tracks of a single user, multiple users, friends or neighbours.
->recent tracks of a single user, multiple users, friends or neighbours.
->top tracks of a single user, multiple users, friends or neighbours over different periods.
->top tracks of an artist.
->top tracks of artists similar to an artist.
->top tracks with certain tag.
->tracks similar to a track.
Can also...
-love a track on your Last.fm account.
-save and load XSPF playlists (make playlists without hard paths). This makes it possible to easily share playlists with other peo



....
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-12 00:10:08
Yes the rest is accessible in the library menu.
Title: foo_softplaylists
Post by: Brizz on 2010-10-12 22:06:29
thank you Johan

I actually found that yesterday accidently...I appreciate it.  awesome plugin!


This is a little off topic, but I really want this foobar : http://img408.imageshack.us/img408/2239/so...istsexample.jpg (http://img408.imageshack.us/img408/2239/softplaylistsexample.jpg)  ( the one the user posted a few posts before )

can anyone help?  Already PM'd him....  I'd love an iTunes clone..and thats what this appears to be!

Right now I'm just using the default layout....I'd LOVE to have this...
Title: foo_softplaylists
Post by: PeterB on 2010-10-13 01:18:57
2) Love a track on Last.fm doesn't work, it produces a 'foo_softplaylists: failed to love' message everytime
Can you give more details?
Hi Johan, thanks for replying.
What kind of details do you need?

Regarding the extra menu options: before there was a way to save all your last.fm loved tracks into a playlist but cannot find that anymore.

What did cause these changes? I have tried different versions of foobar but no difference.

TIA
Peter
Title: foo_softplaylists
Post by: Dr_Colossus on 2010-10-13 17:42:36
One feature I miss from foo_scrobblecharts is the ability to select a number of tracks from a certain artist and selecting "Sort by Artist's Charts". This sorts the selected tracks without the need to create a new playlist.
Title: foo_softplaylists
Post by: Habitats on 2010-10-13 20:00:49
Quote
foo_softplaylists: successfully loved 'Airplanes Part 2 (ft. Eminem And Hayley Williams of Paramore)' by 'B.O.B.'
foo_softplaylists: unmatched: 'B.o.B' - '' - 'Airplanes Part 2 (ft. Eminem And Hayley Williams of Paramore)'


What happened to partial matches ? Only thing different is an extra 'dot' in B.O.B. These kinds of errors happens all the time.
Title: foo_softplaylists
Post by: Solipcyst on 2010-10-15 16:59:40
2) Love a track on Last.fm doesn't work, it produces a 'foo_softplaylists: failed to love' message everytime
Can you give more details?
Hi Johan, thanks for replying.
What kind of details do you need?

Regarding the extra menu options: before there was a way to save all your last.fm loved tracks into a playlist but cannot find that anymore.

What did cause these changes? I have tried different versions of foobar but no difference.

TIA
Peter

Playlist generation works perfectly, but I too am completely unable to "Love" tracks.  Furthermore, if you were able to implement "Love" submissions, why not "Ban" as well?  Using 2010-08-28 version of your component with fb2k 1.1.
Title: foo_softplaylists
Post by: tuptus9 on 2010-10-15 22:11:52
Hello. I am modyfing my foo skin, and I want to make a "intelligent" button, who can love and unlove tracks. I think that there's no unlove or ban track function, but is it possible to make - temporarily - button who can love now playing track? I tried
Code: [Select]
$button(01,0,0,0,20,20,$get(foo_path)'images/'$get(config_name)'/bt/love.png',$get(foo_path)'images/'$get(config_name)'/bt/love_on.png','Last.fm Love '%title%' By '%artist%'',)
, but it doesn't work. Can you help me? Thanks!
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-16 15:40:14
I am limited by the api of last.fm, but it seems they have added interfaces for unlove, ban and unban!
I still have to solve the partial matching problem.
For all the people with problems loving tracks, was this also happening in older versions? I've recently made the switch to the buildin http interface in foobar, to make proxy support possible. That could maybe have created the troubles now.
Or maybe Last.fm changed something, I thought you could love any track before, but now it seems it has to be in last.fm library.
Title: foo_softplaylists
Post by: PeterB on 2010-10-16 19:38:40
To all of you who have loved tracks in the past and are not able to do this anymore, can you provide some details so it could help Johan to solve this?
I think about:
OS
Foobar version
Maybe other plugins
version of foo_softplaylists and where you got it from

My details:
OS: W7
Foobar v1.1
Other plugins: audioscrobbler v1.4.7 and DarkOne v2.1 skin
Latest foo_softplaylists from this forum (startpost)
Title: foo_softplaylists
Post by: PeterB on 2010-10-16 19:41:02
@Brizz: have a look at this DarkOne 2.1 skin (http://tedgo.deviantart.com/art/DarkOne-v2-1-156697932)
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-16 20:54:03
New version:
Soft Playlists 2010-10-16 (http://telin.ugent.be/~jdebock/foobar2000/foo_softplaylists.dll)
-added unlove, ban and unban track function
-more error handling and output
-linked against SDK 2010-10-02
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-16 20:57:10
To all people with problems loving tracks, make sure you enter your username and password in the Soft Playlists settings!!
If you then still have problem post the console output, the newest version shows more information why it failed.
Title: foo_softplaylists
Post by: Nowings69 on 2010-10-17 12:29:51
Thank you for adding those track function.
That set me free from pain .

(http://img193.imagevenue.com/loc130/th_14177_01_122_130lo.jpg) (http://img193.imagevenue.com/img.php?image=th_14177_01_122_130lo.jpg)

Well,really so happy to ban
(http://img151.imagevenue.com/loc448/th_16204_01_122_448lo.jpg) (http://img151.imagevenue.com/img.php?image=th_16204_01_122_448lo.jpg)
Title: foo_softplaylists
Post by: ubercow on 2010-10-17 15:41:43
Hey Johan, I really love your plugin, it is one of my favourites. I have a feature request though! I really love the new feature where retrieved playlists can be compiled by taking the highest bitrate matches or the longest matches, etc. Unfortunately merely using one or the other of these options rarely give all the best hits.

My problem is that I have multiple versions of a lot of tracks, including a) different bitrates eg. MP3 version and a FLAC version, and b) the original version, and a version that is part of a continuous mix, which is the case for a lot of electronic music.

When making a playlist of eg. my loved tracks, the behaviour which would be ideal is to first select the longest track to avoid mixed versions, and if there are two tracks of the same length, to select that which has the highest bitrate. It would also be necessary to check if there are two long versions of a track with almost the same length, for example 0-5 seconds different in length. If there were two tracks with lengths this close, it would make sense to choose the highest bitrate track, as even if it is slightly shorter, it is likely that the tracks are essentially the same, just with slight mastering differences which resulted in different lengths. This could also happen if I had a copy of a track sourced from vinyl and one sourced from CD.

I hope these ideas can help you improve the plugin! I am not sure how feasible it would be to implement them exactly as I describe but it is an idea anyway.

Thanks!
Title: foo_softplaylists
Post by: tuptus9 on 2010-10-17 18:42:59
That's nice you have added new features to your plugin, but I still don't know how to make button who will work as I said in my post above. The biggest problem is with those variables (artist and title), because I don't know how did you make those titles in context menu. And I'm sure, that "button function" = name in context or main menu.

Sorry for my poor English, if you don't understand sth, I'll try to explain it one more time.
Title: foo_softplaylists
Post by: rafib on 2010-10-18 12:48:29
Great plugin Jonah!  Just one question: How can I create a button for "Last.fm Love" in the Default UI ?
Title: foo_softplaylists
Post by: marc2003 on 2010-10-18 12:57:23
right click any existing "Buttons" toolbar>customise buttons. then in the right hand pane, expand [context]>last.fm, choose which action you want and then click "add".

edit: i forgot to say thanks Johan for the updates.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-20 15:19:01
New version:
Soft Playlists 2010-10-20 (https://flattr.com/thing/55600/Last-fm-playlist-creation-and-love-track-foobar2000-component)
-fixed partial title matching
-more error handling and output
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-20 18:22:35
New version:
Soft Playlists 2010-10-20.2 (https://flattr.com/thing/55600/Last-fm-playlist-creation-and-love-track-foobar2000-component)
-fixed bug when tracks with only artist or title tag are present in library
-more error handling and output
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-21 02:47:52
New version:
Soft Playlists 2010-10-21 (https://flattr.com/thing/55600/Last-fm-playlist-creation-and-love-track-foobar2000-component)
-fixed sorting top tracks by playcount when including partial title matches
Title: foo_softplaylists
Post by: Dr_Colossus on 2010-10-21 19:27:11
Thanks for the new version, partial title matching works great! I've added Soft Playlists to flattr.

I would still like to see a "Sort by Artist's Charts" option like foo_scrobblecharts. The best thing about this feature was that it didn't require the songs to be resident in the media library, the songs I wanted to sort could be on my foo_dop iPod playlist.
Title: foo_softplaylists
Post by: JohanDeBock on 2010-10-25 13:05:09
It's on the todo list
Title: foo_softplaylists
Post by: JackieKu on 2010-11-08 16:10:46
Great plugin makes foobar2000 better!

But for the lazy people like me, could you extend the love (unlove, ban, etc) track submission to support "multiple" tracks?
Title: foo_softplaylists
Post by: Bodosan on 2010-11-19 00:30:49
Dear JohanDeBock and knowledgeable users,

I have downloaded your foo_softplaylists plugin and installed it, but I can't get it to work.
When using the concole feature I only get a long list of unmatched items like the following:
foo_softplaylists: unmatched: 'Toumani Diabaté' - '' - 'Jarabi'
foo_softplaylists: unmatched: 'Ghetto Blaster' - '' - 'Na waya'
foo_softplaylists: unmatched: 'Juan Luis Guerra' - '' - 'Medicine For My Soul'
foo_softplaylists: unmatched: 'Awa-Klash' - '' - 'Akoba'
foo_softplaylists: unmatched: 'Eneida Marta' - '' - 'Na Bu Mons'
foo_softplaylists: unmatched: 'Toumani Diabaté's Symmetric Orchestra' - '' - 'Single'
foo_softplaylists: unmatched: 'Manu Dibango' - '' - 'Pata Pata'
foo_softplaylists: unmatched: 'Dulce Neves' - '' - 'N'Tchanha'
foo_softplaylists: unmatched: 'King Sunny Ade' - '' - 'Ja Funmi'
foo_softplaylists: unmatched: 'Djeli Moussa Diawara' - '' - 'Dakan'
foo_softplaylists: unmatched: 'Los Melódicos' - '' - 'Ay Amor'
foo_softplaylists: unmatched: 'Issa Bagayogo' - '' - 'Diarabi'
foo_softplaylists: unmatched: 'Groove Collective' - '' - 'Crisis'
foo_softplaylists: unmatched: 'Chichi Peralta' - '' - 'Procura'
foo_softplaylists: unmatched: 'Rokia Traoré' - '' - 'Bowmboï'
foo_softplaylists: unmatched: 'Habib Koité & Bamada' - '' - 'Kanawa'
foo_softplaylists: unmatched: 'Ali Farka Touré' - '' - 'Allah Uya'
foo_softplaylists: unmatched: 'Moussa Diallo' - '' - 'Maninda'
foo_softplaylists: unmatched: 'Orchestra Baobab' - '' - 'Utru Horas'
foo_softplaylists: unmatched: 'Ali Farka Touré and Ry Cooder' - '' - 'Lasidan'
foo_softplaylists: unmatched: 'Koffi Olomidé' - '' - 'SOS'
foo_softplaylists: unmatched: 'Sekouba Bambino' - '' - 'Damenséna'
foo_softplaylists: unmatched: 'Tshala Muana' - '' - 'Kalume'
foo_softplaylists: unmatched: 'Issa Bagayogo' - '' - 'Diama Don'
foo_softplaylists: unmatched: 'Orchestra Baobab' - '' - 'Hommage A Tonton Ferrer'
foo_softplaylists: unmatched: 'Kékélé' - '' - 'Mandoyi'
foo_softplaylists: unmatched: 'Ramatou Diakite' - '' - 'Gembi'
foo_softplaylists: unmatched: 'Pape Fall' - '' - 'Kanoute'
foo_softplaylists: unmatched: 'Baba Ani & Egypt 80' - '' - 'Se Re Re'
foo_softplaylists: unmatched: 'Oumou Sangare' - '' - 'Ah Ndiya'
foo_softplaylists: unmatched: 'Baaba Maal' - '' - 'Sama Duniya'
foo_softplaylists: unmatched: 'Khadja Nin' - '' - 'Que Pasa En El Mundo'
foo_softplaylists: unmatched: 'Kélétigui Diabaté' - '' - 'Koulandian'
foo_softplaylists: unmatched: 'Habib Koité' - '' - 'Wassiye'
foo_softplaylists: unmatched: 'Koffi Olomide' - '' - 'G.B. Gros Bébé'
foo_softplaylists: unmatched: 'Oneness of Juju' - '' - 'African Rhythms / Oneness Of Juju'
foo_softplaylists: unmatched: 'Maria de Barros' - '' - 'Sol Di Manha'
foo_softplaylists: unmatched: 'Maryam Mursal' - '' - 'Kufilaw (Take care)'
foo_softplaylists: unmatched: 'Baaba Maal & Mansour Seck' - '' - 'Djam Leelii'
foo_softplaylists: unmatched: 'Oscar Sulley & the Uhuru Dance Band' - '' - 'Bukom Mashie'
foo_softplaylists: unmatched: 'Guillermo Portabales' - '' - 'Nostalgia Guajira'
foo_softplaylists: unmatched: 'Ayub Ogada' - '' - 'Chiro'
foo_softplaylists: unmatched: 'Orchestra Baobab' - '' - 'Ray M'Bele'
foo_softplaylists: unmatched: 'Oumou Sangare' - '' - 'Diya Gneba'
foo_softplaylists: unmatched: 'Jorge Ben' - '' - 'Ponta De Lanca Africano'
foo_softplaylists: unmatched: 'The Daktaris' - '' - 'Upsidown'
foo_softplaylists: unmatched: 'Momo Wandel Soumah' - '' - 'Bassa'
foo_softplaylists: unmatched: 'Keziah Jones' - '' - 'Kpafuca'
foo_softplaylists: unmatched: 'Lekan Babalola' - '' - 'Oya'
foo_softplaylists: unmatched: 'Tom Diakite' - '' - 'Fala'

I'm not sure what unmatched means in this context, but I realise the connection is fine (it gives all those names), but I don't know how to go on and on the forum I didn't find anything which could help me.
Perhaps I'm doing something wrong or do I need an API key?
So if anybody could give me some information in particular the meaning of 'unmatched'? Should I install the foobarscrobbler?
I know a lot of questions but I sure like this nice plugin  to work.
Bodosan
Title: foo_softplaylists
Post by: tuptus9 on 2010-11-19 16:34:47
OMG, JohanDeBock, please, tell me. I have no f***ing idea why it doesn't work for me. I'm making button to Love track in WSH Panel, button is created, everything seems ok, but IT DOESN'T LOVE PLAYING TRACK -.- I tried with other function from context menu: Run command/Open directory (opens directory of now playing mp3 file in Windows Explorer) - works perfectly. But look at this code:

Code: [Select]
fb.RunContextCommand("Last.fm/Last.fm Love Track");


You see Last.fm/Last.fm Love Track? It is the cause of my problem. I don't know what I should write here, but Last.fm Love Track doesn't work. I also tried this:

Code: [Select]
fb.RunContextCommand("Last.fm/Last.fm Love '%title%' By '%artist%'");


Doesn't work too. Of course I want to love now playing track.

Please, help me :/
Title: foo_softplaylists
Post by: n0thng2bd0ne on 2010-11-19 17:07:58
I have no f***ing idea why it doesn't work for me.


marc2003 already answered this, it's not "run command" or "open directory", the context item is "last.fm"

right click any existing "Buttons" toolbar>customise buttons. then in the right hand pane, expand [context]>last.fm, choose which action you want and then click "add".
Title: foo_softplaylists
Post by: tuptus9 on 2010-11-19 17:56:46
Geez, can't you see I said I'm using WSH Panel + Columns UI, not Default UI? -.-' And I don't know what you mean:

Quote
it's not "run command" or "open directory"


I only said about Open directory to show you, that it's problem with wrong item name (because other function from context menu - for example Open directory from foo_run - works correct), not, for example, wrongly created button or sth.

Read whole post if you want to help me.
Title: foo_softplaylists
Post by: Hitchhiker427 on 2010-11-19 20:04:15
Code: [Select]
fb.RunContextCommand("Last.fm/Last.fm Love '%title%' By '%artist%'");


Doesn't work too. Of course I want to love now playing track.

Please, help me :/


This isn't a problem with SoftPlaylists, you really should post about this in the WSH Panel script thread.  You're mixing titleformatting code and WSH Panel code improperly.  Try this:

Code: [Select]
fb.RunContextCommand("Last.fm/Last.fm Love '" + fb.TitleFormat("%title%").Eval() + "' By '" + fb.TitleFormat("%artist%").Eval() + "'")
Title: foo_softplaylists
Post by: JohanDeBock on 2010-11-21 13:15:17
Dear JohanDeBock and knowledgeable users,

I have downloaded your foo_softplaylists plugin and installed it, but I can't get it to work.
When using the concole feature I only get a long list of unmatched items like the following:
...

I'm not sure what unmatched means in this context, but I realise the connection is fine (it gives all those names), but I don't know how to go on and on the forum I didn't find anything which could help me.
Perhaps I'm doing something wrong or do I need an API key?
So if anybody could give me some information in particular the meaning of 'unmatched'? Should I install the foobarscrobbler?
I know a lot of questions but I sure like this nice plugin  to work.
Bodosan


The plugin tries to match the tracks in the Last.fm playlists to the tracks in your foobar library.
You do have some of the tracks in your library with correct tags, no?
Title: foo_softplaylists
Post by: Bodosan on 2010-11-23 21:57:15
Thank you,
It's I think the answer I needed to understand how your programm works. And no I don't have those tracks, so the message is correct.
Thanks again for clearing my mist.
Bodosan
Title: foo_softplaylists
Post by: i1abnrk on 2010-12-09 06:00:53
I'm loving it so far. One minor annoyance, though is I went out to download some of the 'missing tracks' as reported to the console. When new files arrived by torrent they were detected as corrupt files. This in no way affected the functionality of the playlist, but it gave me the idea that turning off the live update would be aesthetically pleasing at times. I just would like to have a static list to play and I can run the query again after I update the library.
Title: foo_softplaylists
Post by: dilpill on 2010-12-23 18:02:00
Sorry if someone has already posted something similar, but I made an love button that goes well with the other default foobar buttons. You can download it here (http://bit.ly/gOX0g8). It's in a zip file because MediaFire choked with just the .ico.

(http://i317.photobucket.com/albums/mm395/dilpill759/toolbar.png)
Title: foo_softplaylists
Post by: YoG on 2011-01-04 11:29:08
edit, nevermind, working now..

great plugin, thumbs up ! 
Title: foo_softplaylists
Post by: Dallaz on 2011-01-05 15:09:56
I've been trying this nice plugin for a while, but I'm experiencing a small problem (don't really know whether it's a bug or a limitation due to last.fm). When I try to generate my "top tracks" playlist, I get only 50  tracks, even though the limit is set to 150. Is this the expected behavior? Is anyone of you able to get more tracks?

Thanks in advance.
Title: foo_softplaylists
Post by: thuan on 2011-01-05 15:37:42
Seems like the web service over at last.fm is having some technical problem. Wait some days.

EDIT: currently it seems to work fine, I don't know which method softplaylist's author used though so I can't be sure: http://ws.audioscrobbler.com/2.0/?method=u...6&limit=150 (http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=bigeyes0x0&api_key=b25b959554ed76058ac220b7b2e0a026&limit=150)
Title: foo_softplaylists
Post by: Dallaz on 2011-01-05 16:08:48
EDIT: currently it seems to work fine, I don't know which method softplaylist's author used though so I can't be sure: http://ws.audioscrobbler.com/2.0/?method=u...6&limit=150 (http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=bigeyes0x0&api_key=b25b959554ed76058ac220b7b2e0a026&limit=150)


Yep, he might be using something different, since this way of accessing data works for me as well ((http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=elettrosmog1&api_key=b25b959554ed76058ac220b7b2e0a026&limit=150 (http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=elettrosmog1&api_key=b25b959554ed76058ac220b7b2e0a026&limit=150)) while the plugin still doesn't fetch all the songs (but no error message appears on the console). "Recent tracks", interestingly enough, fetches 120 songs. Well, it's not a big issue, anyway. The plugin is still useful to me
Title: foo_softplaylists
Post by: marc2003 on 2011-01-05 16:39:43
i had a quick look using wireshark (http://www.wireshark.org/) and softplaylists isn't using "&limit=X" in the URL when fetching that particular feed....

Code: [Select]
HTTP    GET /2.0/?method=user.getTopTracks&user=marc2003&period=3month&api_key=REMOVED HTTP/1.1




Title: foo_softplaylists
Post by: Dallaz on 2011-01-05 16:51:08
i had a quick look using wireshark (http://www.wireshark.org/) and softplaylists isn't using "&limit=X" in the URL when fetching that particular feed....

Code: [Select]
HTTP    GET /2.0/?method=user.getTopTracks&user=marc2003&period=3month&api_key=REMOVED HTTP/1.1


Ok, this explains the issue I guess, 50 must be the default value. Well, I'll be looking forward for the fix 
Title: foo_softplaylists
Post by: Falstaff on 2011-01-22 17:57:10
Seems like the web service over at last.fm is having some technical problem. Wait some days.


again today, it makes foobar freezing when trying to use an entry (love or unlove a track) or when i try to change username or password in the settings !! weird
Title: foo_softplaylists
Post by: Maeldun on 2011-01-27 22:51:16
I seem to be having the same problem that someone else reported above.

I can't seem to generate a playlist larger than 50 tracks for my top tracks/friend tracks, although the track feed limit is set at much higher values (10000). Interestingly enough, the loved tracks feed (neighbor/friends/personal) seems to be working fine, but I only have 700 or so loved tracks.


I've recently moved over from Winamp, and I really miss the option of automatically generating a playlist of 3000 titles or so of my most played tracks (I saved my winamp library for over 3 years) that I can shuffle. That way I can just forget about the music and listen to some varied stuff without having to worry about something crappy coming up (Last.fm radio) all the while retaining the ability to jump to a certain song when I feel like it.

This plugin would care of that in a spectacular way - I have a last.fm database of almost 5 years and 100.000 scrobbles (a lot more than what my old winamp held) which I could use in this way, without having to worry about switching from mp3 to FLAC  . This is the only thing that's really preventing me from saying "I should have went for foobar a lot earlier."


So, what could be the problem?

Am I doing something wrong? Are those kind of values (10000 songs generated playlist) impossible?

Thanks.
Title: foo_softplaylists
Post by: thuan on 2011-01-28 02:16:56
@Falstaff: looks at my code, I implemented network timeout for what it's worth.
Title: foo_softplaylists
Post by: marc2003 on 2011-01-28 07:38:26
Are those kind of values (10000 songs generated playlist) impossible?


a lot of last.fm feeds are limited to 50 tracks per request. some don't have a limit but will cause server errors above 1000. i believe this is an error on last.fm's side. i don't think they ever meant to let people fetch that many records at once. the proper way to do it is with paginated requests. on the first request, there is a value which can be retrieved which says how many pages there are and then you make subsequent requests until it's complete.

i don't think softplaylists supports paginated requests (but i maybe wrong )
Title: foo_softplaylists
Post by: Dr_Colossus on 2011-02-01 04:03:28
Small bug, if a song title begins white space it will not be matched. In my case I realized they were improperly tagged, but it's something subtle not everyone will notice.
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-02 23:35:10
Are those kind of values (10000 songs generated playlist) impossible?


a lot of last.fm feeds are limited to 50 tracks per request. some don't have a limit but will cause server errors above 1000. i believe this is an error on last.fm's side. i don't think they ever meant to let people fetch that many records at once. the proper way to do it is with paginated requests. on the first request, there is a value which can be retrieved which says how many pages there are and then you make subsequent requests until it's complete.

i don't think softplaylists supports paginated requests (but i maybe wrong )


Only supports it for loved tracks for now. The limit and page parameters are not published in the api but they seem to be working.
Should be supported next update.
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-03 01:26:01
New version:
Soft Playlists 2011-02-03 (https://flattr.com/thing/55600/Last-fm-playlist-creation-and-love-track-foobar2000-component)
-fixed fetching large track feeds for Top Tracks and Recent Tracks
Title: foo_softplaylists
Post by: Maeldun on 2011-02-03 22:11:34
New version:
Soft Playlists 2011-02-03 (https://flattr.com/thing/55600/Last-fm-playlist-creation-and-love-track-foobar2000-component)
-fixed fetching large track feeds for Top Tracks and Recent Tracks


Thanks for the prompt update. No, really, it made my day.

Thanks a lot.
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-04 16:26:20
It is possible that the downloading of feeds is slower compared to the previous version.
I had to limit the requests to 50 tracks per page so with large feeds many request are needed.
For recent tracks I even had to limit it to 10 tracks per page.
Last.fm servers are slooow.
Solution could be parallel requests but I don't want to hammer their servers otherwise they will become even slower or worse they could stop providing some functions.
Title: foo_softplaylists
Post by: thuan on 2011-02-04 16:39:56
There's also a limit of 5 requests per seconds average spread out over 5 mins (I don't exactly remember the limit) in the TOS, so be careful.
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-04 16:47:37
Did some of you ever had problems with large loved tracks lists?

Probably I will try to set the per page limit higher than the current 50 for loved and top tracks. Now it is just too slow.
Title: foo_softplaylists
Post by: marc2003 on 2011-02-04 16:51:12
For recent tracks I even had to limit it to 10 tracks per page.


that was a bug at last.fm's end and should be fixed now.

http://www.last.fm/group/Last.fm+Web+Servi.../21604/_/669343 (http://www.last.fm/group/Last.fm+Web+Services/forum/21604/_/669343)

Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-04 16:54:02
For recent tracks I even had to limit it to 10 tracks per page.


that was a bug at last.fm's end and should be fixed now.

http://www.last.fm/group/Last.fm+Web+Servi.../21604/_/669343 (http://www.last.fm/group/Last.fm+Web+Services/forum/21604/_/669343)


Ah ok, thanks for the info, will make changes accordingly.
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-04 17:01:03
<error code="6">Invalid limit. Please supply a limit between 1 and 200</error></lfm>

So 200 it will be
Title: foo_softplaylists
Post by: marc2003 on 2011-02-04 17:17:30
i notice last.fm still let you go wild on the loved tracks feed. this lack of consistency is quite annoying really. i'd be happy with 200 on all of them but some are supposedly limited to 50 still.
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-04 21:15:10
New version:
Soft Playlists 2011-02-04 (https://flattr.com/thing/55600/Last-fm-playlist-creation-and-love-track-foobar2000-component)
-changed feed downloading to match Last.fm api changes
-recent tracks playlist: duplicates are not removed anymore
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-05 03:22:32
New version:
Soft Playlists 2011-02-05 (https://flattr.com/thing/55600/Last-fm-playlist-creation-and-love-track-foobar2000-component)
-added Last.fm custom playlist functionality, creating a new one must be done on www.last.fm for now
Title: foo_softplaylists
Post by: fuffi on 2011-02-13 02:53:26
Hello JohanDeBock,
I love you plugin. Really! Thanks!

Especially in this household with a big NAS, where all the people put their music into the foobar shares, I can enjoy music i would have never listened to while searching the media library by hand.

Great! :-)

but anyway...

A request:

If i choose "Similar Tracks", your fine plugin has the option to "ABORT" the search for similar tracks.
But if i press "ABORT", your plugin opens a new playlist with no music in it.

I'd rather like to have all those music in the list which your plugin was able to find before i pressed "ABORT".

so, if the plugin searches for more than 5 minutes for similar tracks on last.fm, and i don't want to wait anymore, i'd like to press a button,  like i.e. "STOP THE CURRENT SEARCH AND START PLAYING THE UNCOMPLETED LIST IMEDIATELY"

is this possible?
would you mind to implement such feature, if possible?

cheers,


Title: foo_softplaylists
Post by: hymerman on 2011-02-16 21:29:37
Just found a bug with the latest version, 2011-02-05, using foobar 1.1. For any artist with an ampersand (&) in their name, the Last.fm context menu displays the first item ("artist top tracks") normally, but all other items have the previous item prepended, making for some crazy long strings towards the bottom of the list. I can't imagine my foobar being a minor version out of date is the problem. Can anyone else confirm this?
Title: foo_softplaylists
Post by: marc2003 on 2011-02-16 21:35:14
nope, that isn't happening here. (latest component / foobar)
Title: foo_softplaylists
Post by: Krautmaster on 2011-02-22 19:39:28
1. thanks 4 the pluging but

2. foo_scrobblecharts was far much faster (why is it so fucking slow?? around 5 minutes to find 20x similar artists to ac/dc and 50 tracks each )

3. i miss the abillity to overwrite the "similar artists" playlist, why to create a new one all the time -> sucks

4. the playlist which is generated is randomized... i have to sort by artist first. Foo_scrobblecharts did that better. how to change this?

i use following values:

(http://www.abload.de/thumb/foobar3mwn.jpg) (http://www.abload.de/image.php?img=foobar3mwn.jpg)

any tips 4 me please
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-22 19:43:14
2. foo_scrobblecharts was far much faster (why is it so fucking slow?? around 5 minutes to find 20x similar artists to ac/dc and 50 tracks each )
Because Last.fm is terribly slow lately.
Title: foo_softplaylists
Post by: Krautmaster on 2011-02-22 19:55:49
but foo_scrobblecharts uses last.fm too, or? with foobar 0.95 ... try it out. Its far much faster...

edit: Did some Benchmarks:

Same database: Result (up to 50 Tracks / Artist -> 20 similar Artists)
~150000 mp3s well sorted

similar Artists charts playlist to "Rammstein"

0.95 + foo_scrobblecharts

result: well orderd playlist -> including Rammstein again -> 704 items

1. run -> 68 seconds
2. run ->  2 seconds

1.13 + foo_softplaylist

result: new randomized playlist -> Rammstein not included -> 651 items

1. run -> 340 seconds !! 
2. run -> 69 seconds

Results can be compared...

scrobbelcharts TXT
http://dl.dropbox.com/u/21136636/Result%20...obblecharts.txt (http://dl.dropbox.com/u/21136636/Result%20Rammstein%20scrobblecharts.txt)

softplaylist TXT
http://dl.dropbox.com/u/21136636/Result%20...oftplaylist.txt (http://dl.dropbox.com/u/21136636/Result%20ramstein%20%20softplaylist.txt)


=> interesting, isnt it?  o.O

Summary:

1. scrobblecharts is 5 times faster
2. track result is better (ordered playlist, artist included again)
3. playlist result is better, i dont have to delete the result playlists all the time! sucks
4. quality of results is the same!


Edit2:

i need a portation of scrobblecharts to foobar 1.1.3 please
Title: foo_softplaylists
Post by: Krautmaster on 2011-02-22 20:41:34
http://chron.visiondesigns.de/foobar2000/f..._2007_12_08.zip (http://chron.visiondesigns.de/foobar2000/foo_scrobblecharts_src_2007_12_08.zip)

here is the source code by the way, thanks for speeding it up 5 times =) thanks
Title: foo_softplaylists
Post by: fuffi on 2011-02-22 23:11:50
can anybody tell me, why those plugins take less time in the second run?
isn't the list of artists/songs sucked down from last.fm calculated freshly on each run?

just curious...
0.95 + foo_scrobblecharts
1. run -> 68 seconds
2. run ->  2 seconds

1.13 + foo_softplaylist

1. run -> 340 seconds !!
2. run -> 69 seconds

Title: foo_softplaylists
Post by: Krautmaster on 2011-02-23 08:20:08
i wonderd too... maybe it saves the result in a temprary file but i can restart foobar and its feels like the second run again (only checkt on scrobblecharts component). Just strange.

Can somebody make this benchmark too?

u can get my empty portable foobar2k archive here

http://dl.dropbox.com/u/21136636/foobar2000.rar (http://dl.dropbox.com/u/21136636/foobar2000.rar)

edit:

would be nice if somebody of the softplaylist team would look into the source code. Beside the optimization of speed the following points are in my interest:

1. Result playlist sorted by artist and charts
2. Result playlist includes the artist again
3. Result overwrites the last "similar charts playlist"

maybe optional done by checkbox in the softplaylist settings. Should increase the usability
Title: foo_softplaylists
Post by: hymerman on 2011-02-23 10:25:54
I'd love for the source to be made available, there are a couple of things I'd like to fiddle with, and I could implement some of the simpler and more sensible requests too, to show my appreciation and support. I understand if you don't want to show us your code though, I know there's plenty of code I've written that I would hate for people to see...
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-23 15:34:03
Will look into it when I have time. But it probably has to do with http caching and the change to the internal foobar http functionality at some point.
I always thought Last.fm has become slower and didn't bother.

I can't be the matching algorithm because that is serveral order of magnitude faster than the one in foo_scrobblecharts.

It can also be that foo_scrobblecharts fetches less top tracks per artist and with less pages.
Title: foo_softplaylists
Post by: Krautmaster on 2011-02-23 17:12:15
thanks for the reply =)

I only compared the result for "Rammstein" - its similar as u can see by the results i added to my post. I would be happy if you can finde some time to look into the source.

I think the database algorythm is faster in the new foobar, the search is slightly faster. I cant say where the problem is. Maybe its possible to learn out of the source of scrooblecharts , i added it before too. Maybe its possible to copy the similar artists function nearly 1:1. Sadly foobar crashes with the usage of scrobblecharts but might be a little problem because the search works fine so far and if i ignore the failture in VS foobar2000 starts playing the new list normally.

Maybe anyone can portate it to 1.13 and check the reason for this crash by debuging.

Thanks!
Title: foo_softplaylists
Post by: fuffi on 2011-02-23 19:08:49
Can somebody make this benchmark too?

how? tell the steps. very precise :)
Title: foo_softplaylists
Post by: Krautmaster on 2011-02-23 19:21:39
1. hm take my foobar2000 0.95 from above, or make a new 0.95 portable install and include scrobblecharts component... -> http://dl.dropbox.com/u/21136636/foobar2000.rar (http://dl.dropbox.com/u/21136636/foobar2000.rar) <-

2. same with an 1.1.3 portable + foo_softplaylist

3. initialize the same music data...

4. Then choose an artist like "AC/DC"

5. rightclick on a song "last.fm" -> "similar artists charts playlist" or something like that... simmilar in both versions

6. measure the time

7. thx

Title: foo_softplaylists
Post by: hymerman on 2011-02-23 19:39:17
nope, that isn't happening here. (latest component / foobar)


I've just updated to 1.1.2 (the download link on foobar's home page points to 1.1.2, not 1.1.3!) and tried again.

I've narrowed it down; it only happens when right clicking something in the facets panel (foo_facets) of the default UI. Right clicking files in the playlist and elsewhere works as expected, just anything in the facets panel acts strangely.

Can anyone confirm this more specific reproduction?
Title: foo_softplaylists
Post by: Chronial on 2011-02-26 02:28:19
can anybody tell me, why those plugins take less time in the second run?
isn't the list of artists/songs sucked down from last.fm calculated freshly on each run?

just curious...
0.95 + foo_scrobblecharts
1. run -> 68 seconds
2. run ->  2 seconds

1.13 + foo_softplaylist

1. run -> 340 seconds !!
2. run -> 69 seconds


The second run is way faster because of http caching. I can't speak for foo_softplaylist, but foo_scrobblecharts uses the windows (that's IE) http functionality, including it's Caching. Open IE and clear the cache - it should be slow again .

Quote
Will look into it when I have time. But it probably has to do with http caching and the change to the internal foobar http functionality at some point.
I always thought Last.fm has become slower and didn't bother.

I'm not using the foobar http functionality. I'm calling the Windows API myself. I'm not saying you should do that (you should not ^^), but that may be the source of the poblem.

Quote
I can't be the matching algorithm because that is serveral order of magnitude faster than the one in foo_scrobblecharts.

Not going to lecture you on optimization, but: you're doing in wrong . Orders of magnitude still don't matter if you are sorting a list of <1000 entries once on a modern cpu. One tends to optimize every line of code, but you should only optimize the parts of your code that actually take time. and in plugin like this one, this is obviously the networking part. I have no Idea why my plugin should be faster, but maybe you will find the reason when you compare the source codes.
Otherwise I would suggest you do mulitple http requests at once (try not to break the http specs too badly here ). foo_scrobblecharts isn't doing that, but it will speed up the process a lot anyways (it also would have done in foo_scrobblecharts, obviously).


Oh and as no one else wants to say it: Krautmaster, please stop trolling (yes, you're trolling).
Quote
2. track result is better (ordered playlist, artist included again)

That's not better, but a design decision. If you don't like the design decisions of a component creator, ask for an option to change it - once! If he doesn't want to change it and you can't live with it, write your own component and stop trolling.
Quote
3. playlist result is better, i dont have to delete the result playlists all the time! sucks

Also a design design - see above.
Title: foo_softplaylists
Post by: fuffi on 2011-02-26 13:47:32
I would suggest you do mulitple http requests at once (try not to break the http specs too badly here )

I always asked myself what happens, when we overload the last.fm api (or website?) with "Similar Tracks Recursion Limit >5"
Of course, it will be damn slow and take about 30 minutes to fill a list of maybe more and better hits, but would'nt that be too much "stress" for the last.fm site?

i myself didn't have the guts to try it (still have set to 1 and tried 2 a short while), because i want to live long with that great pluging and don't course any trouble last.fm maybe think: oh, they're abusing us, we will ban that plugin from getting data from us.
Title: foo_softplaylists
Post by: JohanDeBock on 2011-02-26 14:13:41
Quote
I can't be the matching algorithm because that is serveral order of magnitude faster than the one in foo_scrobblecharts.

Not going to lecture you on optimization, but: you're doing in wrong . Orders of magnitude still don't matter if you are sorting a list of <1000 entries once on a modern cpu. One tends to optimize every line of code, but you should only optimize the parts of your code that actually take time. and in plugin like this one, this is obviously the networking part.
You are correct, but the XSPF part of the plugin doesn't use inet access. That is the main reason I sped it up with binary searches.

last.fm's speed depends a lot on when you access it. The times for fetching my +-500 tracks loved playlist:
Yesterday evening: 30s
Now: 5s
Title: foo_softplaylists
Post by: marc2003 on 2011-02-26 18:20:25
i'd change the limit to 200. they allow it for recent tracks so i think it's fair game for loved tracks as well.
Title: foo_softplaylists
Post by: gaurav on 2011-03-14 11:32:11
Cheers for the great plugin Johan!
I signed up at last.fm just yesterday, and started using your plugin in combination with MonoLite Plus 0.4.3
The softplaylists plugin provided with the skin (dated 2009) was buggy for two reasons:
1. It took a very long time to load when starting Foobar
2. When going to Library->Configure->Tools->Soft Playlists, it took a long time to display that page and to save any alterations.

So I updated the softplaylists to the latest 2011 build. The first issue was gone. The second issue was partly gone, it still takes time to save any changes in soft playlists settings. Moreover, the Love button with the skin no longer is able to Love the tracks, it seems there is some handshake issue with the new version?
The code for the Love button is:
Code: [Select]
// ==PREPROCESSOR==
// @import "%fb2k_path%skin\mono_lite\scripts\common.js"
// @import "%fb2k_path%skin\mono_lite\scripts\tooltip_buttons.js"
// @import "%fb2k_path%monolite_lastfm_config.js"
// ==/PREPROCESSOR==

var bw = 24;
var bh = 20;
var top_margin = 0;
var left_margin = 0;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var panel_id = window.GetProperty("panel_id", window.id);
var custom_background_file = settings_path + panel_id + "custom_background";
var custom_background = read(custom_background_file);
var username_file = settings_path + "username";
var username = read(username_file);
var api_key_file = settings_path + "api_key";
var api_key = read(api_key_file);

on_item_focus_change();

function on_notify_data(name, data) {
username = read(username_file);
api_key = read(api_key_file);
on_metadb_changed();
}

function update_button(b) {
switch(b) {
case 1:
n = "not_loved.png";
h = "exclamation.png";
tooltip = "Last.fm is disabled, run monolite_lastfm_install.bat to enable it first";
func = null;
break;
case 2:
n = "exclamation.png";
h = "exclamation.png";
tooltip = "Please enter your Last.fm username / api key through context menu";
func = null;
break;
case 3:
n = "love.png";
h = "love.png";
tooltip = "This track is already loved!";
func = null;
break;
case 4:
n = "not_loved.png";
h = "love_h.png";
tooltip = love_command;
func = function() {love_track();}
}
Buttons = {
but: new Button(left_margin,top_margin, bw, bh, {normal: images_path + n, hover: images_path + h}, func, tooltip)
};
window.Repaint();
}

function on_metadb_changed() {
if(!g_metadb) return;
artist = fb.TitleFormat("%artist%").EvalWithMetadb(g_metadb);
track = fb.TitleFormat("%title%").EvalWithMetadb(g_metadb);
love_command = "Last.fm Love '" + track + "' by '"+ artist + "'";
old_userloved = fb.TitleFormat("%LASTFM_LOVED_DB%").EvalWithMetadb(g_metadb)  == 1 ? 1 : 0;
switch(true) {
case (is_lastfm.length == 0):
update_button(1);
break;
case (username.length == 0):
case (api_key.length != 32):
update_button(2);
break;
default:
(old_userloved == 1) ? update_button(3) : update_button(4);
}
}

function on_playback_new_track() {
on_item_focus_change();
}

function on_playback_time(time) {
if(time == 3) sync();
}

function love_track() {
fb.RunContextCommandWithMetadb(love_command, g_metadb);
sync();
}

function sync() {
if(username.length == 0 || api_key.length != 32) return(fb.trace("Playcount sync: Can't contact Last.fm. Check your username / API KEY settings."));
fb.trace("Playcount sync: Contacting Last.fm....");
lastfm("&method=track.getinfo&artist=" + encodeURIComponent(artist) + "&track=" + encodeURIComponent(track), "foo_playcount_sync", function() {process();});
}

function process() {
fb.trace("Playcount sync: Last.fm responded \"" + xmlhttp.statustext + "\"");
xmlDoc = xmlhttp.responseXML;
try { userplaycount = xmlDoc.getElementsByTagName("userplaycount")[0].childNodes[0].nodeValue; } catch(e) { userplaycount = 0;}
try { userloved = xmlDoc.getElementsByTagName("userloved")[0].childNodes[0].nodeValue; } catch(e) { userloved = 0; }
userloved == 1 ? update_button(2) : update_button(3);
fb.RunContextCommandWithMetadb("Customdb Love " + userloved, g_metadb);
fb.RunContextCommandWithMetadb("CustomdbU " + (userplaycount > 0 ? userplaycount.substring(userplaycount.length - 1) : "Erase"), g_metadb);
fb.RunContextCommandWithMetadb("CustomdbT " + (userplaycount > 9 ? userplaycount.substring(userplaycount.length - 2, userplaycount.length -1) : "Erase"), g_metadb);
fb.RunContextCommandWithMetadb("CustomdbH " + (userplaycount > 99 ? userplaycount.substring(userplaycount.length - 3, userplaycount.length - 2) : "Erase"), g_metadb);
fb.RunContextCommandWithMetadb("CustomdbTH " + (userplaycount> 999 ? userplaycount.substring(userplaycount.length - 4, userplaycount.length - 3) : "Erase"), g_metadb);
}

function on_size() {
ww = window.Width;
wh = window.Height;
}

function on_mouse_rbtn_up(x, y) {
var _menu = window.CreatePopupMenu();
var _child = window.CreatePopupMenu();
var idx;
_child.AppendMenuItem(MF_STRING, 101, "None");
_child.AppendMenuItem(MF_STRING, 102, (dui ? "Default UI " : "Columns UI ") + "default");
_child.AppendMenuItem(MF_STRING, 103, "Splitter");
_child.AppendMenuItem(MF_STRING, 104, "Custom ");
_child.AppendMenuItem(MF_SEPARATOR, 0, 0);
_child.AppendMenuItem(window.GetProperty("mode") == 104 ? MF_STRING : MF_GRAYED, 105, "Set custom colour...");
_child.CheckMenuRadioItem(101, 104, window.GetProperty("mode", 101));
_menu.AppendMenuItem(username.length > 0 ? MF_STRING : MF_GRAYED, 1, "Visit your Last.fm user profile page");
_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
_menu.AppendMenuItem(is_lastfm.length > 0 ? MF_STRING : MF_GRAYED, 2, "Set your Last.fm username...");
_menu.AppendMenuItem(is_lastfm.length > 0 ? MF_STRING : MF_GRAYED, 3, "Set your API KEY...");
_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
_menu.AppendMenuItem(MF_STRING | MF_POPUP, _child.ID, "Background");
_menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
//_menu.AppendMenuItem(MF_STRING, 9, "Properties");
_menu.AppendMenuItem(MF_STRING, 10, "Configure...");
idx = _menu.TrackPopupMenu(x, y);
switch(idx) {
case 1:
WshShell.run("http://www.last.fm/user/" + encodeURIComponent(username));
break;
case 2:
username = text_input_box("Playcount Sync", "Please enter your Last.fm username", username_file);
on_metadb_changed();
window.NotifyOthers("update", 1);
break;
case 3:
api_key = text_input_box("Playcount Sync", "Please enter your Last.fm API KEY\n\nhttp://www.last.fm/api/account", api_key_file);
on_metadb_changed();
window.NotifyOthers("update", 1);
break;
case 101:
case 102:
case 103:
case 104:
window.SetProperty("mode", idx);
window.Repaint();
break;
case 105:
custom_background = text_input_box("Playcount Sync", "Enter a custom colour for the background. Uses RGB. Example usage:\n\n234-211-74", custom_background_file);
window.Repaint();
break;
case 9:
window.ShowProperties();
break;
case 10:
window.ShowConfigure();
break;
}
_menu.Dispose();
_child.Dispose()
return true;
}

function on_paint(gr) {
switch(window.GetProperty("mode", 102)) {
case 101:
col = null;
break;
case 102:
col = g_backcolor;
break;
case 103:
col = utils.GetSysColor(4);
break;
case 104:
temp_col = custom_background.split("-");
col = RGB(temp_col[0], temp_col[1], temp_col[2]);
break;
}
if(col) gr.FillSolidRect(0, 0, ww, wh, col);
buttonsDraw(gr);
}


I'm a complete newbie at foobar related programming, and was trying to go over the code for hours last night, but to no avail. The Console gives the following when trying to love a track:
Quote
Playcount sync: Contacting Last.fm....
Playcount sync: Last.fm responded "OK"

Can you tell what's wrong?
Title: foo_softplaylists
Post by: marc2003 on 2011-03-14 17:05:31
this thread isn't the place to talk about a 3rd party script that just happens to use foo_softplaylists. it has nothing to do with this component's author at all.

however, the latest version of the script can be found here: http://cid-649d3bfeaf541fbb.skydrive.live....ount%20sync.zip (http://cid-649d3bfeaf541fbb.skydrive.live.com/self.aspx/.Public/foobar/guide/playcount%20sync.zip)
read the instructions carefully. discussion goes here: http://www.hydrogenaudio.org/forums/index....showtopic=76772 (http://www.hydrogenaudio.org/forums/index.php?showtopic=76772)
Title: foo_softplaylists
Post by: JohanDeBock on 2011-03-15 09:12:23
Cheers for the great plugin Johan!

Thanks!
2. When going to Library->Configure->Tools->Soft Playlists, it took a long time to display that page and to save any alterations.
It fetches top tags and your personal playlist list from last.fm.
Title: foo_softplaylists
Post by: gaurav on 2011-03-15 11:20:29
however, the latest version of the script can be found here: http://cid-649d3bfeaf541fbb.skydrive.live....ount%20sync.zip (http://cid-649d3bfeaf541fbb.skydrive.live.com/self.aspx/.Public/foobar/guide/playcount%20sync.zip)
read the instructions carefully. discussion goes here: http://www.hydrogenaudio.org/forums/index....showtopic=76772 (http://www.hydrogenaudio.org/forums/index.php?showtopic=76772)

I'll go over the revised code. I had seen it before but mistook it for a component rather than a script.

It fetches top tags and your personal playlist list from last.fm.

Ah, makes sense.
Title: foo_softplaylists
Post by: carmenm on 2011-03-18 08:47:09
I must i now find this plugin really essential!
At first i though why would i need to make a local playlist of my lastfm library... and the i started to use the Loved Tracks playlist. With it i can easily make playlist of my loved tracks and then push that playlist (with the files i mean)  on my iPhone. It makes the best playlist ever when driving!

Know there is one thing i miss which is a way of filtering in that playlist. For example i see that loved tracks are sorted by love date which is GREAT. What i think would be awesome is to have a way when opening that playlist to choose the number of item we want in the playlist. It would allow to have the 40 or 50 last loved tracks.

Another way to do that (the most awesome way!) would be to have a custom tag in those playlist with love date (like done on lastfm radio playlists). That would create an infinity of possibilities. That way i could create filters like loved tracks of 2009 or last 50 loved tracks.
Is that somehting doable?

Thanks
Title: foo_softplaylists
Post by: .misiek on 2011-04-15 21:50:13
First of all it is a brilliant plugin, but i've noticed that when i'm listening streaming radio from internet plugin reports:
Quote
foo_softplaylists: failed to love track: title and/or artist tag not present
, although title and artist is visible in foobar on both playlist and item details info, and plugin foo_audioscrobbler reports:
Quote
Audioscrobbler: Submitting track...
Audioscrobbler: Submission succeeded.
.
I suspect, that plugin takes title and artist directly from file tag instead of variables %title% and %artist%. Is that correct?
Title: foo_softplaylists
Post by: SoulSmasher on 2011-04-26 04:06:30
Just signed in to say thank you! This plugin was all I was missing at foobar2000. Can't see why I haven't seen this all the times. Thanks!

I just have a tiny question though. Not a big issue for me, so you can think this as a tiny suggestion. Sometimes the playlist adds same artist's (even same album's) tracks repedately. Is this normal ? After getting the queue, can the playlist be auto-shuffled and then generated?

Thanks again.
Title: foo_softplaylists
Post by: JJForums on 2011-04-27 11:09:51
it's possible to create a link to the feature "love track", by clicking in something in the playlist, just to fast love the track and click again to unlove?
Title: foo_softplaylists
Post by: marc2003 on 2011-04-27 11:22:28
add buttons to an existing toolbar (right click>customise). you'll probably need to find your own image resources though. or you could create keyboard shortcuts instead (file>preferences>keyboard shortcuts)
Title: foo_softplaylists
Post by: JJForums on 2011-04-27 14:57:47
not to toolbar, but to playlist, like creating rating for music... did you get it?
Title: foo_softplaylists
Post by: marc2003 on 2011-04-27 15:16:09
nope, that isn't possible.
Title: foo_softplaylists
Post by: JJForums on 2011-04-27 22:08:04
so, isn't there a way to check if I marked a track with "love track"? and what happens if I forget that I already marked that track and mark it again as loved track?
Title: foo_softplaylists
Post by: Joffi on 2011-04-28 21:37:57
so, isn't there a way to check if I marked a track with "love track"? and what happens if I forget that I already marked that track and mark it again as loved track?

http://www.hydrogenaudio.org/forums/index....showtopic=76772 (http://www.hydrogenaudio.org/forums/index.php?showtopic=76772) might have what you want

but it doesn't matter if you relove a track; it doesn't affect your last.fm account
Title: foo_softplaylists
Post by: romor on 2011-05-16 04:05:17
I got playlist stream in XSPF format, but foobar (Ctrl U) could not handle it. Searched for component and there are perhaps two available - foo_xspf which is outdated and can't be loaded and this one.

So after installing this component I expected that foobar could recognize XSPF stream (it's just like any other playlist only in XML format), but it couldn't unfortunately - it seems that this component can only load XSPF playlist from disk, and does not provide handle to foobar. Or am I wrong?
Title: foo_softplaylists
Post by: slyman on 2011-05-26 03:18:07
First of all it is a brilliant plugin, but i've noticed that when i'm listening streaming radio from internet plugin reports:
Quote
foo_softplaylists: failed to love track: title and/or artist tag not present
, although title and artist is visible in foobar on both playlist and item details info, and plugin foo_audioscrobbler reports:
Quote
Audioscrobbler: Submitting track...
Audioscrobbler: Submission succeeded.
.
I suspect, that plugin takes title and artist directly from file tag instead of variables %title% and %artist%. Is that correct?

im having the same problem did you ever figure this out?
Title: foo_softplaylists
Post by: JohanDeBock on 2011-06-18 11:49:36
So after installing this component I expected that foobar could recognize XSPF stream (it's just like any other playlist only in XML format), but it couldn't unfortunately - it seems that this component can only load XSPF playlist from disk, and does not provide handle to foobar. Or am I wrong?


Indeed foo_xspf is made for playlists that reference to the location of a music file.

This plugin is made for playlists that only reference the tag data like which artist, which track, which album.
If you load such a playlist it will match the tags with your local library and make a playlist with all the tracks it could match.
It can also save a playlist to such a XSPF file.
This can be very handy if you want use the playlist on another computer with all your music but in different paths.
Is also very handy if you play your music from your ipod in disk mode from within foobar and want to use the same playlists that you use elsewhere.
Title: foo_softplaylists
Post by: romor on 2011-06-18 12:46:57
Johan, I knew about some nifty features like matching XSPF contents with local library which can have many interesting scenarios and that's great

I found updated version of foo_xspf for foobar2000 v1.0 (hidden at the bottom of author's blog) and while it adds support for this playlists it can't parse some, resulting only in partial playlist contents

I don't know how popular XSPF format is, but I parsed XSPF with sed (extracting only links) to M3U and for some I liked I embedded playlist in one of available Flash XSPF players (like http://www.xspf-player.com) (http://www.xspf-player.com))
Title: foo_softplaylists
Post by: BASGTA on 2011-06-18 15:26:27
How do you set up the Media Library?  I have mine set to view G:\Music but it doesn't see anything.  Does the Media Library not look into subfolders?
Title: foo_softplaylists
Post by: the on 2011-06-27 18:33:03
@JohanDeBock: Is it maybe possible to get the feature to save and load xspf playlists in an own component? I like to keep my foobar menu simple and unfortunately the foo_xspf component seems not to work correctly as romor states.
Title: foo_softplaylists
Post by: squrl on 2011-07-08 18:17:03
Hi there,

I am using this awesome foobar2000 skin (http://fanco86.deviantart.com/art/Metro-163447843), it has a little "heart" icon which, when clicked, sets the rating of currently played song to five * (stars). When clicked again, it resets the rating back to 0 *. Using foo_softplaylists, I'd like to turn this into Last.fm Love/Unlove button, but I have no experince in scripting, is there someone kind a patient enough, who would care to help me out, or at least point me in the right direction??

The rating script looks like this:
Code: [Select]
var Path =  fb.FoobarPath+"skins\\Metro\\";
var BgImage = gdi.Image(Path + "heart_empty.png");
var HeartImage = gdi.Image(Path + "heart.png");
var Rating = fb.TitleFormat("%rating%").eval();

function UpdateRating(rate){
    fb.RunContextCommand("Rating/" + rate);
    var new_rate = fb.TitleFormat("%rating%").eval();
    if(new_rate == "?"){
        var meta = fb.GetNowPlaying();
        meta.UpdateFileInfoSimple("RATING",rate);
    }
    Rating = rate;
}

function ClearRating(){
    fb.RunContextCommand("Rating/<not set>");
    var meta = fb.GetNowPlaying();
    meta.UpdateFileInfoSimple("RATING","");
    Rating = 0;
}

function on_paint(gr){
    var g_bgcolor = window.GetColorCUI(3);
    gr.FillSolidRect(0, 0, window.Width, window.Height, g_bgcolor);
    if(Rating == 5){
        gr.DrawImage(HeartImage, 0, 0, 15, 13, 0, 0, 15, 13 , 0);}
    else{
        gr.DrawImage(BgImage, 0, 0, 15, 13, 0, 0, 15, 13 , 0);
    }
}

function on_mouse_lbtn_down(x, y) {
    if(!fb.IsPlaying){return}
    if(Rating == 5){ClearRating()}else{UpdateRating(5)}
    window.Repaint();
}

function on_playback_new_track(info){
    Rating = fb.TitleFormat("%rating%").eval();
    window.Repaint();
}

function on_metadb_changed(metadb, fromhook) {
    Rating = fb.TitleFormat("%rating%").eval();
    window.Repaint();
}

function on_colors_changed() {
    window.Repaint();  
}

Shouldn't be hard to modify, should it?

Any help is very much appreciated. Thanks in advance, squrl.
Title: foo_softplaylists
Post by: Steve Forte Rio on 2011-07-09 12:15:31
Hi! I have a feature request: could you add the ability to change the tag fields for sending track information to the last.fm DB?
For example: I want to replace %artist% with %composer%.
Please!
Title: foo_softplaylists
Post by: jayg30 on 2011-07-30 19:52:17
Hello,

I've never seemed to be able to use this plugin for what I want, love/ban tracks. It will create playlists from the top/loved/recent tracks tho. No matter what I try it just won't work for love/unlove/ban/unban.

Here is the console error;
Quote
foo_softplaylists: feed downloading: error
foo_softplaylists: failed to love track: authentication failed: empty reply
foo_softplaylists: failed to love track 'Good Directions' by 'Billy Currington'


Again this is what I get regardless of what track I try.
Yes, I have provided my username and password in the softplaylist menu and I'm very confident it is correct.
They are the same that I provide for foo_audioscrobbler and foo_lastfm_radio which both work perfectly.
No, I do not use any buttons, just access it through the context menu.
I even installed a brand new portable installation with no other components and it still fails.
I've tried with all different file types (flac, ogg, mp3) but that doesn't make a difference.

I'd really like to have this feature working, could someone please help me.
Title: foo_softplaylists
Post by: maXelo on 2011-08-31 20:15:15
I love this plugin, but I've been wondering if it is possible to exclude "EP"s (Extended Play) versions of songs? on the playlists. I know that one can choose oldest or latest tracks, but it will be great to avoid certain types of songs.
Title: foo_softplaylists
Post by: tg2k3 on 2011-09-16 22:14:23
hey, awesome component!!

does your component or the xspf format in general have a way of dealing with matching tags that are only partially identical? i have a way of creating xspf playlists from public databases. often however my files are tagged slightly differently, e.g. mentioning some extra information or a little less in comparison to the xspf file. right now, i need to manually edit the xspf file which kind of defeats the whole purpose of it.

thanks a lot for your time!
Title: foo_softplaylists
Post by: hymerman on 2011-10-14 14:40:19
Do you think you could make the source to this available, Johan? I'd like to play around with how it chooses tracks from my library (specifically, prefer original releases rather than live/ep/compilations, and use original date rather than release date). I know it's probably annoying to have all these feature requests; open sourcing it and letting people do it themselves will help
Title: foo_softplaylists
Post by: Chainyk on 2011-12-16 22:41:31
How 2 create a column with loved tracks ?
Title: foo_softplaylists
Post by: Maeldun on 2011-12-23 16:44:15
Feature Request:

This might be a longshot, but can you use the last fm feed to parse something a little more complex than the standard overall/12/6/3 month feed from last.fm?

Specifically, is it somehow feasabile to implement a feature that could create soft playlists from scrobbles from within a given time period? Instead of loading up my most listened tracks over the last year, I would like to load up my most listened tracks from August 2008, or the first 5 weeks of 2010,  for instance. I know that Last.fm keeps the data required for something like this (through the scroblle cart history browser - http://www.last.fm/user/Maeldun/charts?charttype=weekly) (http://www.last.fm/user/Maeldun/charts?charttype=weekly)) however it doesn't serve the data in an outright manner.

Using this, you could have something like a "nostlagic" playlist builder from within your music library - music you relate to a certain time period.

I'm thinking you could download the raw profile data off last.fm and have the plugin do the parsing locally. What are your thoughts?
Title: foo_softplaylists
Post by: tberman333 on 2012-02-06 15:12:34
I am searching for a way to synchronize my playlists between two foobar installations on different machines.
In a perfect world, this would be possible through an online service, like it is possible with xmarks to sync bookmarks in firefox.

But maybe it also could be done by using the xspf file format and a network share?
Would it be possible to export all playlists automatically to an specified directory from time to time? every x minutes or when the playlist has been changed? Maybe only some playlists which are explicitly selected.

THX so far for this great component


I am trying to do something similar to this, but I can't even figure out how to save a playlist as xspf (it seems to only give me the option for my entire library).  Does anyone know if anything like this is possible?

Thanks!
Title: foo_softplaylists
Post by: r3ddy on 2012-06-15 08:39:16
Hi! Functions from context menu like "like, ban, unban" don't work. What can be the problem?
Title: foo_softplaylists
Post by: bulletproof2k on 2012-06-15 13:57:03
Hi! Functions from context menu like "like, ban, unban" don't work. What can be the problem?

You need update scripts "marc2000" use serch on forum :]
Title: foo_softplaylists
Post by: marc2003 on 2012-06-15 14:37:45
Hi! Functions from context menu like "like, ban, unban" don't work. What can be the problem?

You need update scripts "marc2000" use serch on forum :]


the question has nothing to do with my scripts.   

@r3ddy, if the context menu isn't working for you as expected, check for messages in the foobar console found on the view menu. also make sure your username and password are correctly set (file>preferences>tools>soft playlists)
Title: foo_softplaylists
Post by: bulletproof2k on 2012-06-16 19:11:39
Hi! Functions from context menu like "like, ban, unban" don't work. What can be the problem?

Today, I also encountered this problem... 

Thx marc2003 
Title: foo_softplaylists
Post by: mXENO on 2012-09-29 22:26:45
Is there a limit on playlist size or am I doing something wrong? My "Loved Tracks" always tops out at 460, even though Last.FM states I have 600+ loved tracks.
Title: foo_softplaylists
Post by: Fractal_Mortality on 2012-10-10 01:34:04
Uh oh, this component appears to no longer be working for me. Foobar crashes as it queries for loved tracks. Has last.fm changed something to prevent this from working?
Title: foo_softplaylists
Post by: gabzibabzi on 2012-10-10 09:14:48
Uh oh, this component appears to no longer be working for me. Foobar crashes as it queries for loved tracks. Has last.fm changed something to prevent this from working?


On my pc's (vista, seven, xp) plugin always crush system now. I think it's last.fm problem with incorrect feed.

This is very sad.
Title: foo_softplaylists
Post by: Joffi on 2012-10-10 19:19:39
Crashed here as well upon attempt to love via foo_softplaylists. f2k crash submitted.

This is very sad.

Indeed...
Title: foo_softplaylists
Post by: romor on 2012-10-10 19:46:43
He was using test API key wchich is now deprecated: http://www.last.fm/group/Last.fm+Web+Servi...21604/_/2188288 (http://www.last.fm/group/Last.fm+Web+Services/forum/21604/_/2188288)

Here is patched version that works (with my api_key): http://goo.gl/zwKi7 (http://goo.gl/zwKi7)

I'll remove the file, when Johan resolves it
Title: foo_softplaylists
Post by: gabzibabzi on 2012-10-10 20:07:05
He was using test API key wchich is now deprecated: http://www.last.fm/group/Last.fm+Web+Servi...21604/_/2188288 (http://www.last.fm/group/Last.fm+Web+Services/forum/21604/_/2188288)

Here is patched version that works (with my api_key): http://goo.gl/zwKi7 (http://goo.gl/zwKi7)

I'll remove the file, when Johan resolves it


Big thanks for You and Johan!

I use foobar only for this great feature. It's realy help discovery new music on my hard drive.
Title: foo_softplaylists
Post by: Fractal_Mortality on 2012-10-10 20:17:29
He was using test API key wchich is now deprecated: http://www.last.fm/group/Last.fm+Web+Servi...21604/_/2188288 (http://www.last.fm/group/Last.fm+Web+Services/forum/21604/_/2188288)

Here is patched version that works (with my api_key): http://goo.gl/zwKi7 (http://goo.gl/zwKi7)

I'll remove the file, when Johan resolves it


Many Thanks!
Title: foo_softplaylists
Post by: Maeldun on 2012-10-21 19:39:47
Had the same problem. The patched component further up apparently fixed it for me as well.

Many thanks.
Title: foo_softplaylists
Post by: hymerman on 2012-10-22 09:50:49
romor - how did you patch the component up? Do you have access to the source or did you literally patch up the dll? I asked Johan for the source a few times a while ago since I wanted to make some changes but didn't get a response and have now started writing a similar component from scratch, if the source is available though that would be a much better option!
Title: foo_softplaylists
Post by: romor on 2012-10-22 18:55:12
Just the dll
I don't have access to Johan's source files, and unfortunately it seems like you'll have to reinvent the wheel again.

I think it would be sensible and noble, if developer looses interest, to make source code public or at least available on demand. But it's not like it happens for the first time

Here is some old thread, maybe it would reveal something helpful, maybe not: http://www.hydrogenaudio.org/forums/index....st&p=519493 (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=57784&view=findpost&p=519493)
Title: foo_softplaylists
Post by: hymerman on 2012-10-22 19:10:34
Ok, I thought that might be the case - no problem. I'll carry on, and will definitely be making source available once I have something interesting.

Thanks for the link - I saw it before starting to write my new component and used it as a base but it's pretty much indistinguishable from that now!
Title: foo_softplaylists
Post by: bananaboat23 on 2012-11-10 08:00:18
I want to create a playlist of all the artists I have on last.fm from all my music on my hard drive. Can I do that with this plugin?
Title: foo_softplaylists
Post by: JohanDeBock on 2012-11-27 13:59:12
I have almost no time left to work on this so I will zip the sources when I dig them out of my archive and make them available.
Would be nice that somebody puts them in an online version repository, then I can still follow up a bit.
Sorry for the late reaction.
Title: foo_softplaylists
Post by: JohanDeBock on 2012-11-27 19:52:17
Have fun with it  :
https://www.dropbox.com/s/cf0p2mdpzpwfhco/f...lists-source.7z (https://www.dropbox.com/s/cf0p2mdpzpwfhco/foo_softplaylists-source.7z)
Title: foo_softplaylists
Post by: mll on 2012-12-17 12:36:48
He was using test API key wchich is now deprecated: http://www.last.fm/group/Last.fm+Web+Servi...21604/_/2188288 (http://www.last.fm/group/Last.fm+Web+Services/forum/21604/_/2188288)

Here is patched version that works (with my api_key): http://goo.gl/zwKi7 (http://goo.gl/zwKi7)

I'll remove the file, when Johan resolves it


Thanks romor, works for me too.

And thanks Johan for making it OS.
Title: foo_softplaylists
Post by: Innomen on 2012-12-30 20:49:30
Recently crashing when trying to create Loved tracks listing.

"downloading last fm loved tracks feed"

Everything is updated.
Title: foo_softplaylists
Post by: Maeldun on 2013-01-07 00:40:46
Use the upated component file in the google link just above.

The component is currently out of active dev with it's original author - but with the sources online there is still hope for future development.

Recently crashing when trying to create Loved tracks listing.

"downloading last fm loved tracks feed"

Everything is updated.

Title: foo_softplaylists
Post by: EpicForever on 2013-01-25 19:56:30
How about this?

from console:
Graphic Equalizer: initialized (SSE support: 3)
Startup time : 0:00.484281
Seekbar: taking GDI path.
Seekbar: Frontend initialized.
Opening track for playback: "M:\CD-DA\Diego Hostettler\Diego – Instant Reality (KA85CD)  (2003)\03  Diego – Me Fragments.flac"
Audioscrobbler: Handshake successful.
Audioscrobbler: Submitting 2 cached tracks...
Opening track for playback: "M:\CD-DA\Diego Hostettler\Diego – Instant Reality (KA85CD)  (2003)\04  Diego – Sacrament.flac"
Audioscrobbler: Submission succeeded.
foo_softplaylists: feed downloading: error
foo_softplaylists: failed to love track: authentication failed: empty reply
foo_softplaylists: failed to love track 'Sacrament' by 'Diego'

I use foobar 1.2.2 with
foo_audioscrobbler.dll (2012-11-22 15:41:48 UTC)
    Audioscrobbler 1.4.7
foo_softplaylists.dll (2013-01-25 19:31:19 UTC)
    Soft Playlists 2012-10-10

among other components... What is wrong? How can I "love again" ?
Title: foo_softplaylists
Post by: marc2003 on 2013-01-26 09:11:24
Quote
authentication failed


double check your username/password.
Title: foo_softplaylists
Post by: EpicForever on 2013-01-26 12:19:53
Hey, I can still scrobble what I'm paying... I see it on my last.fm profile...

EDIT:
OK, I'm an idiot. I haven't entered my username and password in softplaylist config :/
Title: foo_softplaylists
Post by: nikolai4ik on 2013-01-26 15:06:09
Hi, what's the command for loving/unloving a track for a columns splitter script?
I'm trying to change this script to love/unlove using softplaylists.
Code: [Select]
$if($stricmp('FOO_LASTFM',$left(%path%,10)),
    $imageabs2(14,14,0,0,0,0,$get(x),$get(y),'./images/curacao/bt/mood_off.png',nokeepaspect)
,
    $ifgreater(%MOOD%,0,
        $button($get(x),$get(y),0,0,14,14,'./images/curacao/bt/mood_on.png','./images/curacao/bt/mood_off.png',TAG:SET:MOOD:0,TOOLTIP:"Unset")
    ,
        $button($get(x),$get(y),0,0,14,14,'./images/curacao/bt/mood_off.png','./images/curacao/bt/mood_on.png',TAG:SET:MOOD:1,TOOLTIP:"Set")
    )
)

How do I find which command to use instead of tag:set?
Title: foo_softplaylists
Post by: WilB on 2013-01-26 15:42:12
You can see the list of available commands by going to the panel stack splitter script tab and choosing context in the drop down menu at bottom left. I think that the commands you want are there.
Title: foo_softplaylists
Post by: nikolai4ik on 2013-01-26 18:58:48
You can see the list of available commands by going to the panel stack splitter script tab and choosing context in the drop down menu at bottom left. I think that the commands you want are there.

I've tried that before but it only inputs the name of that function, for example selecting "ReplayGain/Apply album ReplayGain to MP3 data" adds the same text to the script window.
Title: foo_softplaylists
Post by: EpicForever on 2013-01-26 22:12:57
I noticed one bad thing. Banning tracks from foo_softplaylists works - I see "banned tracks list" on my L.fm profile, but foo_audioscrobbler just scrobbles them and they are still visible in my recently played list and become entries in my L.fm library... It may be problem with Last.FM servers/web software, but I'm not sure, maybe there's something that could be done inside client software to prevent this behaviour... I think I should also post it in audioscrobbler thread, as I don't know which plugin may be responsible for this.
Title: foo_softplaylists
Post by: nikolai4ik on 2013-01-27 05:32:31
I noticed one bad thing. Banning tracks from foo_softplaylists works - I see "banned tracks list" on my L.fm profile, but foo_audioscrobbler just scrobbles them and they are still visible in my recently played list and become entries in my L.fm library... It may be problem with Last.FM servers/web software, but I'm not sure, maybe there's something that could be done inside client software to prevent this behaviour... I think I should also post it in audioscrobbler thread, as I don't know which plugin may be responsible for this.

I'm pretty sure banning tracks only works for last.fm radio.
Title: foo_softplaylists
Post by: EpicForever on 2013-01-27 09:13:03
I'm pretty sure banning tracks only works for last.fm radio.


Ah, OK. Last.fm radio is the feature that I never used, so I forgot about it  . Thanks.
Title: foo_softplaylists
Post by: WilB on 2013-01-27 11:53:11
@nikolai4ik
Did you put CONTEXT: in front of the command; e.g. CONTEXT:Properties;? I know this example works and so you can use it as a check to ensure that there are no other errors in your code. CONTEXT:Last.fm Love Track; in panel stack splitter ought to work the same as it does with the softplaylists right click menu item but I do not use that feature so I haven't tested it. I did test CONTEXT:Last.fm Artist Top Tracks; which is also a softplaylist context command and it works.
Title: foo_softplaylists
Post by: flaviocfneto on 2013-01-27 13:19:55
This might be a bit out of topic, but is there a way to automate (in a periodical way or at least at foobar's startup or shutdown) the fetching of Last.fm playlists by foo_softplaylists?
Regards,
Title: foo_softplaylists
Post by: nikolai4ik on 2013-01-27 15:33:20
@nikolai4ik
Did you put CONTEXT: in front of the command; e.g. CONTEXT:Properties;? I know this example works and so you can use it as a check to ensure that there are no other errors in your code. CONTEXT:Last.fm Love Track; in panel stack splitter ought to work the same as it does with the softplaylists right click menu item but I do not use that feature so I haven't tested it. I did test CONTEXT:Last.fm Artist Top Tracks; which is also a softplaylist context command and it works.

This works in a splitter code but not in the track info mod panel for some reason, but that doesn't matter. Thanks.
Do you know if there's a command to check if the track is loved? So the button I'm making would act as a toggle instead of having two different buttons.
Title: foo_softplaylists
Post by: marc2003 on 2013-01-28 13:06:37
Do you know if there's a command to check if the track is loved? So the button I'm making would act as a toggle instead of having two different buttons.


you might be interested in my WSH panel mod script here....

http://www.hydrogenaudio.org/forums/index....showtopic=76772 (http://www.hydrogenaudio.org/forums/index.php?showtopic=76772)

if a track is already loved, clicking the button will unlove it.
Title: foo_softplaylists
Post by: nikolai4ik on 2013-01-28 14:40:03
Do you know if there's a command to check if the track is loved? So the button I'm making would act as a toggle instead of having two different buttons.


you might be interested in my WSH panel mod script here....

http://www.hydrogenaudio.org/forums/index....showtopic=76772 (http://www.hydrogenaudio.org/forums/index.php?showtopic=76772)

if a track is already loved, clicking the button will unlove it.

Used to use it, but I've moved away from unneeded extra tags and databases. I've added two separate buttons to the default button toolbar for now. Some wsh last.fm panels are able to fetch the loved info to display the heart icon so it should be possible without custom db.
Title: foo_softplaylists
Post by: kapa6ac on 2013-02-15 13:12:26
First of all it is a brilliant plugin, but i've noticed that when i'm listening streaming radio from internet plugin reports:
Quote
foo_softplaylists: failed to love track: title and/or artist tag not present
, although title and artist is visible in foobar on both playlist and item details info, and plugin foo_audioscrobbler reports:
Quote
Audioscrobbler: Submitting track...
Audioscrobbler: Submission succeeded.
.
I suspect, that plugin takes title and artist directly from file tag instead of variables %title% and %artist%. Is that correct?

im having the same problem did you ever figure this out?

Anybody resolved this problem of tags and variables  from online streaming?
anybody? )
Title: foo_softplaylists
Post by: Innomen on 2013-04-23 17:32:17
Crash report

Code: [Select]
Problem signature:
  Problem Event Name:    BEX
  Application Name:    foobar2000.exe
  Application Version:    1.2.5.0
  Application Timestamp:    51727b8b
  Fault Module Name:    foo_softplaylists.dll
  Fault Module Version:    0.0.0.0
  Fault Module Timestamp:    4d4cbe4f
  Exception Offset:    00035a64
  Exception Code:    c0000417
  Exception Data:    00000000
  OS Version:    6.1.7600.2.0.0.256.1
  Locale ID:    1033
  Additional Information 1:    2649
  Additional Information 2:    2649cd0ebbcba5b93a1c084b3e56b1b7
  Additional Information 3:    ab25
  Additional Information 4:    ab25449ea2b79ac193486f0c7a295159

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  C:\Windows\system32\en-US\erofflps.txt


What have I done wrong?

Is this not the most recent version?
http://www.foobar2000.org/components/view/foo_softplaylists (http://www.foobar2000.org/components/view/foo_softplaylists)

17 pages of ancient comments. This plugin is awesome, it needs an actual page of its own
Title: foo_softplaylists
Post by: WilB on 2013-04-23 17:36:27
Did you try the patched version in post #387?
Title: foo_softplaylists
Post by: hymerman on 2013-04-23 17:40:44
The latest version is broken - it's using an old last.fm API key and handles that by crashing  Someone (romor) fiddled with the DLL to patch it up a few pages back - that version works - but the 'official' version hasn't had its source updated so still crashes, and the original author has disappeared so it will probably never be fixed. Here's the link to the post with the fixed version: http://www.hydrogenaudio.org/forums/index....st&p=811096 (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=76133&view=findpost&p=811096)

Or if you only want it for "So and so's top tracks" (that's all I used this component for), foo_bestversion will do that, and is a little bit smarter about matching tracks to your library too: http://www.hydrogenaudio.org/forums/index....howtopic=100019 (http://www.hydrogenaudio.org/forums/index.php?showtopic=100019)
Title: foo_softplaylists
Post by: Innomen on 2013-04-23 21:16:48
The latest version is broken - it's using an old last.fm API key and handles that by crashing  Someone (romor) fiddled with the DLL to patch it up a few pages back - that version works - but the 'official' version hasn't had its source updated so still crashes, and the original author has disappeared so it will probably never be fixed. Here's the link to the post with the fixed version: http://www.hydrogenaudio.org/forums/index....st&p=811096 (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=76133&view=findpost&p=811096)


Thank you!

He was using test API key wchich is now deprecated: http://www.last.fm/group/Last.fm+Web+Servi...21604/_/2188288 (http://www.last.fm/group/Last.fm+Web+Services/forum/21604/_/2188288)

Here is patched version that works (with my api_key): http://goo.gl/zwKi7 (http://goo.gl/zwKi7)

I'll remove the file, when Johan resolves it


(From the linked thread)

Thank you too!

I use this to fetch my loved tracks as my memory is atrocious

Each of you rock
Title: foo_softplaylists
Post by: lemond on 2013-09-04 09:32:53
I was able to save and load an xspf playlist involving a folder in the library.  I also listen to files remotely located such as an mp3 direct link to a file stored on an internet accessible resource or an audio stream.  Can the (fb2k)library->foo_softplaylists plugin handle these as well?
Title: foo_softplaylists
Post by: Kougeru on 2014-02-10 04:00:31
I don't understand this XSPF playlist stuff. CAn someone explain it to me or at tell me what's wrong. I have a playlist with 8513 files. I saved it as an XSPF using this compontent. I loaded the new playlist and it only added 3995 files on it. I couldn't find a logical explaining for this. For example, it had track 2 and 3 of one CD but not track 1 despite the only difference in tagging was the title of the first track and the track number.  Second, I moved "track 2" of that same CD to different location and tried to play it to test to see if the claims were true and Foobar said no file was found.

Is my component busted? I have the latest version as listed a few posts up. I thought there might be some unicode issues (which is why I switched to m3u8 playlists years ago) but a lot of the tracks that remain are unicode and are just fine.
Title: foo_softplaylists
Post by: BenB on 2014-02-10 17:50:39
You can search the forums and the internet for more information in regard to XSPF playlists in general.

Now, as to XSPF playlists created via foo_softplaylists. Looking at a playlist in a text editor shows me that this implementation stores no location information (making it portable, duh). This means that the playlist is entirely dependent upon the media application reading it to find matching entries.

Sooooo... when you load an XSPF playlist with foo_softplaylists, the component depends upon foobar's media library database having matching entries to load the playlist (whether or not the XSPF playlist was created by foo_softplaylists because I'm guessing location information is ignored even when it is present. I'll test this conjecture at some point, maybe, but not right now). Thus any entries not matching anything in foobar's media library or files that the media library fails to locate (dead entries) will not load.

Further inspection of the playlist reveals that entries with odd-sized durations/durations of "0" (internet radio streams, for example) will also fail to load.

Hopefully this explains why so many entries failed to load for you. Then again, creating an XSPF playlist with more than a few dozen items at most is a bit...
Title: foo_softplaylists
Post by: Jubei on 2014-04-20 13:54:04
The latest version is broken - it's using an old last.fm API key and handles that by crashing  Someone (romor) fiddled with the DLL to patch it up a few pages back - that version works - but the 'official' version hasn't had its source updated so still crashes, and the original author has disappeared so it will probably never be fixed. Here's the link to the post with the fixed version: http://www.hydrogenaudio.org/forums/index....st&p=811096 (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=76133&view=findpost&p=811096)

Or if you only want it for "So and so's top tracks" (that's all I used this component for), foo_bestversion will do that, and is a little bit smarter about matching tracks to your library too: http://www.hydrogenaudio.org/forums/index....howtopic=100019 (http://www.hydrogenaudio.org/forums/index.php?showtopic=100019)


Thanks for the info. Haven't been using this plugin for a while and crashed when I did use it. Figured it was some deprecated API issue and was worried since the plugin hasn't been updated for a while. Good to know there is a temp work around
Title: foo_softplaylists
Post by: FuzzyNL on 2014-09-20 08:26:41
Anyone has the sources of this project? I noticed it was posted 2 years ago with a dropbox link but the link is dead
Title: foo_softplaylists
Post by: Kougeru on 2015-02-03 03:51:00
Looking at a playlist in a text editor shows me that this implementation stores no location information (making it portable, duh). This means that the playlist is entirely dependent upon the media application reading it to find matching entries.


Hopefully this explains why so many entries failed to load for you. Then again, creating an XSPF playlist with more than a few dozen items at most is a bit...


So I figured out (a year later lol) what's wrong. It's CHANGING my artists OR the song titles for some reason. For example, "One More Time, One More Chance" by "??????" is being written as "??????E" Under "Creator", So it's not being imported.  An example of the track being changed is "?????????" as the track and creator is "??". The track on the xspf is written as "??Ex81E???xE3x81E??E"

Changing them manually doesn't seem to work, I wouldn't know why maybe because editing it with notepad++ doesn't actually do anything. Idk, but half my songs from pretty much any random playlist of any length are being excluded because of this. That's the only thing consistent with files that don't work that I can find though. This happens with English songs too though. They will randomly have the letter "E" and a symbolized "x81" or whatever randomly in between letters. Anyone have any ideas how to fix this?

edit: It seems like it's only happening with Japanese songs or English songs that have apostrophes or other symbols. Is this a Unicode issue then? It works fine for thousands of songs but randomly not others. One song that works even has the exact same title as one that doesn't work, just has an "E" added to the end and some weird x(NumbersHere) coding....really makes no sense to me why some work and others don't. I'd be honestly happier if NONE worked just because it would make sense to me lol.
Title: foo_softplaylists
Post by: marc2003 on 2015-02-04 10:05:22
if the problem is only with saving xspf files, you might be able to knock something up with foo_utils (the text tools section) to save your playlists.
Title: foo_softplaylists
Post by: lasereye70 on 2015-08-20 21:15:34
Whatever LastFM is doing now it seems to have broken the patched version :/
Title: foo_softplaylists
Post by: Kougeru on 2015-08-20 21:21:22
What last.fm is doing is migrating to the "new site". It's broken A LOT of things. Tons of people are having issues related to the API. A lot of songs now have two copies, for example http://i.imgur.com/jocqvyn.png (http://i.imgur.com/jocqvyn.png) 

People are reporting missing artists and scrobbles. Personally for me, the only issue I've found is that some songs are broken into multiple copies which results in lower scrobbles than it should (in the image I linked, my "actual" scrobbles are based off the 130 one, it seems. Foobar accurately has it at 317 since it won't update if the number is lower, but it won't go up since it's reading 13X from last.fm now).

Anyway, my point is that it might not even be worth troubleshooting until the new site is more stable. They've given an estimate of "several months". There's a lot of outrage and even a petition to revert back to the old site.
Title: foo_softplaylists
Post by: lasereye70 on 2015-09-03 20:20:49
Fyi, It is working once again
Title: foo_softplaylists
Post by: lasereye70 on 2015-12-28 08:53:09
Well after several months from the last FM server migration it seems that anything new (aka released after the server migration) will not generate level 1 soft playlists, Disturbed's new one will not generate anything but top tracks. I kind of get the feeling I'm part of a dying breed that still keeps music on my computer, it seems the rage now is just going to strait streaming, but maybe just maybe for some of us old schoolers some of this can be looked into and updated... /shrug
Title: Re: foo_softplaylists
Post by: tipar on 2016-08-04 22:14:17
Hi. I have found that setting to 1 "similar track feed limit" gets me more similar tracks so I assume that this is the objective of that parameter. I had only five and now I got thirty eight.

I do not understand, though, how can I create a playlist of a certain tag, any help? Thanks.
Title: Re: foo_softplaylists
Post by: tipar on 2016-08-06 15:24:02
HI. I have found a bug. When I try to change back the recurrence from one to zero, it crashes.
Title: Re: foo_softplaylists
Post by: magnumforce2006 on 2016-08-20 17:02:33
Component no longer appears to be working in terms of generating lists. No matter what I try I get the result:

"foo_softplaylists: failed to download Last.fm Similar Artists feed for artist 'X': possibly unknown artist name"
Title: Re: foo_softplaylists
Post by: magnumforce2006 on 2016-08-20 19:56:46
Component no longer appears to be working in terms of generating lists. No matter what I try I get the result:

"foo_softplaylists: failed to download Last.fm Similar Artists feed for artist 'X': possibly unknown artist name"

Seems to be working again
Title: Re: foo_softplaylists
Post by: tipar on 2016-09-04 18:49:04
LOL. I just found it.

(http://i97.servimg.com/u/f97/14/97/63/46/foobar10.png)

On the first category you have; Last Top Tracks then, inside this one,  Top Tracks and Custom Tags (set by you)

Bye.

PS: ;((

(http://i97.servimg.com/u/f97/14/97/63/46/errorf10.png)
Title: Re: foo_softplaylists
Post by: tuxnowar on 2017-04-18 08:48:18
Hi everyone,
it seems that the plugin is not supporting anymore the creation of playlists: i am trying but it gives only empty playlists. anyone has the same problem? suggestions?
bye :)
Title: Re: foo_softplaylists
Post by: davideleo on 2017-04-18 09:08:01
Mine works. Of course I get empty playlists if there are no matches in my library. Are you sure that's not the problem?
Title: Re: foo_softplaylists
Post by: tuxnowar on 2017-04-19 16:03:33
you're right!
i was trying to find the list of an artist whose discography was in a portable HD, not in my library.
thank you davideleo !!!
 ;)
Title: Re: foo_softplaylists
Post by: Xerus on 2017-07-18 11:35:03
I thought it would scrobble my tracks and then give me back similar recommendations but apparently that is not the case...
so this is useless for me...
Title: Re: foo_softplaylists: last.fm data format not as expected!
Post by: fuffi on 2017-07-21 20:02:22
Hi folks,

I' think, I'm using a patched version, but can't remember which one.
Installed Components shows:
Code: [Select]
Soft Playlists 2012-10-10 foo_softplaylists
About shows:
Code: [Select]
(C) 2009-2010 Johan De Bock



I tried to update before wasting your precious time, but checking the last threads did'nt help:
Did you try the patched version in post #387?
Have fun with it  :
https://www.dropbox.com/s/cf0p2mdpzpwfhco/f...lists-source.7z (https://www.dropbox.com/s/cf0p2mdpzpwfhco/foo_softplaylists-source.7z)
Both give a 404 on the Dropbox folder.



So here I read, that the component might still work:
it seems that the plugin is not supporting anymore the creation of playlists: i am trying but it gives only empty playlists. anyone has the same problem? suggestions?
Mine works. Of course I get empty playlists if there are no matches in my library. Are you sure that's not the problem?


I have matches in my Library, but they're not found because the component has an error.

This is what I get when selecting the context-menu "Last.fm -> get Artits top tracks"
name, mbid or playcount values on a track are not strings; last.fm data format not as expected!

(https://picload.org/image/rpwcicda/screenclip.png) (https://picload.org/view/rpwcicda/screenclip.png.html)

Anyone has a working component, or a replacement for the function
"get artists top tracks"
"get similar artists top tracks"
because this is, what I'm trying to do mainly with this component: creating playlists from my library with similar artists tracks of the currently listened song.

Any help is much appreciated!
Title: Re: foo_softplaylists
Post by: davideleo on 2017-07-21 20:33:29
I have a previous version which I use only for the love and ban commands. I just tested the playlist commands and those in the context menu work perfectly, those in the main menu don't.
Title: Re: foo_softplaylists
Post by: fuffi on 2017-07-22 21:30:41
I have a previous version
Do you mind to share the .dll so I can test if it is working here too ?

(P.S. I accidentially found foo_bestversion (https://github.com/hymerman/foo_bestversion/releases) to be able to do one part of what I'm looking for. A newer version is on GitHub (https://github.com/hymerman/foo_bestversion), and not the outworn version from the foobar2000s component pages.
The component foo_bestversion uses the same contextual menu as foo_softplaylist, so it was kinda unclear for me, which contextual menu entry was from what component and which one was new and which one did not work properly.... after deinstalling foo_softplaylist, now only foo_bestversion generates last.fm playlists. sadly, it only generates lists for similar tracks of the current song or the artists top tracks. similar aritsts top tracks would generare soooo much more diversified playlists.)
Title: Re: foo_softplaylists
Post by: davideleo on 2017-07-22 22:21:25
I have a previous version
Do you mind to share the .dll so I can test if it is working here too ?

Sure! Unfortunately I cannot find the fb2k-component file, so this is the dll I have in my user-componets folder which has to be installed manually.
By the way, I tested the 2012 version, and it works, too.
Title: Re: foo_softplaylists
Post by: fuffi on 2017-07-22 23:44:23
Thank you.
Your installed Components shows:
Code: [Select]
Soft Playlists 2011-02-05 foo_softplaylists
About shows:
Code: [Select]
(C) 2009-2010 Johan De Bock

On my normal f2k installation I got "bad allocation" trying "Artist Top Tracks" or "Similar Artist Top Tracks".

On a clean install it works fine. So I tested my component with a clean install and it worked well too.... *grrrr*

Oh Lord, how I hate this 90s sh!t... Its like workin with windows95 again...

Ok, I know what to do... trying to find the component or the playlist, which causes the problem with foo_softplaylists.

Thank you for pointing me in the direction, I never wanted to go anymore....
Title: Re: foo_softplaylists
Post by: 2tec on 2017-07-23 02:00:13
Unfortunately I cannot find the fb2k-component file, so this is the dll I have in my user-componets folder which has to be installed manually.

foo_softplaylists.fb2k-component - https://drive.google.com/open?id=0B-52fIoCowfjdFNtMlJnMk9UVGM
Title: Re: foo_softplaylists
Post by: davideleo on 2017-07-23 17:04:43
Unfortunately I cannot find the fb2k-component file, so this is the dll I have in my user-componets folder which has to be installed manually.
foo_softplaylists.fb2k-component - https://drive.google.com/open?id=0B-52fIoCowfjdFNtMlJnMk9UVGM


Thanks! I actually have this one and as far as I understand fuffi has it, too. What I meant is I cannot find the fb2k-component file, of the 2011 version.
Title: Re: foo_softplaylists
Post by: 2tec on 2017-07-23 23:03:39
I actually have this one and as far as I understand fuffi has it, too. What I meant is I cannot find the fb2k-component file, of the 2011 version.

Ok, maybe try this one ~https://drive.google.com/open?id=0B-52fIoCowfjcXB4cTVtVmxYZjA
Title: Re: foo_softplaylists
Post by: fuffi on 2017-07-26 22:58:48
As long as its a "patched" component, only the API Key changes, am I right?
Title: Re: foo_softplaylists
Post by: fuffi on 2017-09-02 22:21:05
On my normal f2k installation I got "bad allocation" ...
[...]
Ok, I know what to do... trying to find the component or the playlist, which causes the problem with foo_softplaylists.
For the sake of completeness, deleting *all* my Library and Playlists did the job.

That was, removing the "playlists-v1.3" and the "library" folders from the foobar2000 program folder (or renaming them to *.bak).
After that, no bad allocation anymore while reading from the library.
Title: Re: foo_softplaylists
Post by: fuffi on 2017-09-03 09:52:41
Hello again :-)

does anybody kwow, if this feature(?) of foo_softplaylists is obsolete or not working anymore?
When looking at the f2k console, I always get a
Code: [Select]
foo_softplaylists: feed downloading: error
foo_softplaylists: failed to download Last.fm Playlists feed for user 'foo' possibly wrong username
when clicking on OK, while in f2k->Preferences->Tools->Soft Playlists configuration window.

I seems, I actually trigger a feature of the component, but which?

The Username/PW is correctly entered, its the same, as I use for the last.fm audioscrobbler component, which is working fine.
Title: Re: foo_softplaylists
Post by: BASGTA on 2017-09-03 15:39:01
I'm getting the same error.  I thought this feature was part of the foo_audioscrobbler component at first.  I use foo_softplaylists to get a bunch of songs I like onto a USB stick for my car.  If there's another component that can do this it'd be very helpful.
Title: Re: foo_softplaylists
Post by: lasereye70 on 2017-11-15 04:04:11
Would be nice to get an update or something similar, seems like with the advent of streaming music those of us that have a huge library of music still on their computer have been abandoned with these types of plug ins.
Title: Re: foo_softplaylists
Post by: lasereye70 on 2017-11-16 04:42:44
Frustrating.. Seems like when I run a level 1 similar track playlist anything with the date 2016 and up wont run. I ran one last week for a new album with no problems, now nothing.. running it with any file 2015 and older works fine except it won't pull any tunes from 2016-17, also getting the Playlists feed for user possibly wrong username others were getting.
Title: Re: foo_softplaylists
Post by: lasereye70 on 2017-11-18 20:54:11
Looks like it's on last.fm's end, they replaced a faulty hard drive dealing with the catalog and had issues with the new one.
Title: Re: foo_softplaylists
Post by: lasereye70 on 2017-12-01 18:03:09
Soo It's still not creating any level 1 playlists from any year above 2016, I have the patched version but it's no longer connecting my user to Last.fm, I have the correct user name and password but I keep getting the " failed to download Last.fm Playlists feed for user 'lasereye1970': possibly wrong username" message. This was my one of my favorite plugins and there is nothing else out there even remotely close to this for the playlist generating that I used it for.
Title: Re: foo_softplaylists
Post by: tipar on 2017-12-18 03:56:20
Hi, can you pass me the code of this one so I can try to fix the create TAG playlist?
Title: Re: foo_softplaylists
Post by: BASGTA on 2018-05-26 09:29:35
Oh damn, I got it working again for me.  My issue was I guess I disabled the media library from monitoring my drive at one point.  Making a playlist of my recently listened to, I got about 9000 tracks.  About 2000 of them are dupes.  There's also about a hundred that were "unmatched"
Title: Re: foo_softplaylists
Post by: HAL_ on 2020-06-21 14:29:49
I'm trying this component, very interested by the top tracks playlist functionnality, but it doesn't seem to work anymore.
It create  a new playlist with tracks of the selected artist, but the playlist seems random and is clearly not the one you find on last FM web site.

Does anyone still using soft playlists ?
SimplePortal 1.0.0 RC1 © 2008-2020