Skip to main content

Topic: Soft playlist + Foobar media library -> hard playlist (Read 7452 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • JohanDeBock
  • [*][*][*][*]
  • Developer
Soft playlist + Foobar media library -> hard playlist
Will explain in more detail what I mean:
Soft playlist: a text file with on each line the crucial info to identify a song: Title Album Artist ...
Hard playlist: playlist in Foobar with 'hard' links.
Then use the soft playlist to create a hard playlist from the Foobar media library.
So this basically comes down to fuzzy querying of the Foobar media library for each line of the Soft playlist.

I hope this is clear?

Does this already exist and if not is anyone interested in programming a plugin to do it in Foobar?
I think this can be very handy for transferring playlists from other people or other programs to Foobar.
I would use it to transfer the playlists I make on my iPod to Foobar using the function in iTunes (which i only use for iPod management ) that copies a selection of songs to the clipboard.
  • Last Edit: 26 September, 2007, 05:48:36 PM by JohanDeBock
foo_softplaylists: http://tiny.cc/kh9m9

  • kanak
  • [*][*][*][*][*]
Soft playlist + Foobar media library -> hard playlist
Reply #1
Will explain in more detail what I mean:
Soft playlist: a text file with on each line the crucial info to identify a song: Title Album Artist ...
Hard playlist: playlist in Foobar with 'hard' links.
Then use the soft playlist to create a hard playlist from the Foobar media library.
So this basically comes down to fuzzy querying of the Foobar media library for each line of the Soft playlist.

I hope this is clear?

Does this already exist and if not is anyone interested in programming a plugin to do it in Foobar?
I think this can be very handy for transferring playlists from other people or other programs to Foobar.
I would use it to transfer the playlists I make on my iPod to Foobar using the function in iTunes (which i only use for iPod management ) that copies the playlist to the clipboard.


The concept is quite interesting and i think we can use python or some other language to make a simple program that does the job. If you have all the information required to reconstruct the directory (e.g. If you're using Genre\Artist\year- Album\tracknumber- title, you need at least the genre, artist, album, year, tracknumber and title). If you can create a text file containing all these data delimited by a comma or a tab or something, it's then trivial to convert it to the path.

  • JohanDeBock
  • [*][*][*][*]
  • Developer
Soft playlist + Foobar media library -> hard playlist
Reply #2
The concept is quite interesting and i think we can use python or some other language to make a simple program that does the job. If you have all the information required to reconstruct the directory (e.g. If you're using Genre\Artist\year- Album\tracknumber- title, you need at least the genre, artist, album, year, tracknumber and title). If you can create a text file containing all these data delimited by a comma or a tab or something, it's then trivial to convert it to the path.

Well that is more or less what I mean, but it would be nice if it was integrated in Foobar using the media library.
  • Last Edit: 26 September, 2007, 05:57:25 PM by JohanDeBock
foo_softplaylists: http://tiny.cc/kh9m9

  • odyssey
  • [*][*][*][*][*]
Soft playlist + Foobar media library -> hard playlist
Reply #3
I've been editing my library quite a lot lately, and often I find my created playlists useless because of this. Not only renaming files, but also often replacing lossy files with new lossless files. I've been thinking about this for a long time, but I have no idea how it would translate into a userinterface and how it would work behind that.

I like the idea
Can't wait for a HD-AAC encoder :P

  • JohanDeBock
  • [*][*][*][*]
  • Developer
Soft playlist + Foobar media library -> hard playlist
Reply #4
I've been editing my library quite a lot lately, and often I find my created playlists useless because of this. Not only renaming files, but also often replacing lossy files with new lossless files.

Indeed, I also had these problems.

I've been thinking about this for a long time, but I have no idea how it would translate into a userinterface and how it would work behind that.

-For the importing from other programs you could use a simple "import soft playlist" menu option and then let the user select the soft playlist, a text file.
-For the dead playlist items you could use a "try to resolve dead items" menu option.
  • Last Edit: 26 September, 2007, 06:10:42 PM by JohanDeBock
foo_softplaylists: http://tiny.cc/kh9m9

  • foosion
  • [*][*][*][*][*]
  • Moderator
Soft playlist + Foobar media library -> hard playlist
Reply #5
The XSPF playlist format includes this functionality to some extent; the concept is called "fuzzy names" there. I just wanted to point that out before you try to invent something new.
http://foosion.foobar2000.org/ - my components for foobar2000

  • JohanDeBock
  • [*][*][*][*]
  • Developer
Soft playlist + Foobar media library -> hard playlist
Reply #6
The XSPF playlist format includes this functionality to some extent; the concept is called "fuzzy names" there. I just wanted to point that out before you try to invent something new.


It's not the playlist format that is important with what I'm trying suggest but the algorithm that processes the soft playlist, that does a fuzzy lookup of the artist-album-track combination in the database.
But XSPF can of course be used as the standard soft play list format and then use for example a simple perl to convert the iTunes format to this standard format.
  • Last Edit: 26 September, 2007, 07:56:49 PM by JohanDeBock
foo_softplaylists: http://tiny.cc/kh9m9

  • JohanDeBock
  • [*][*][*][*]
  • Developer
Soft playlist + Foobar media library -> hard playlist
Reply #7
If nobody is interested in implementing this I will try it myself when I have time and when I know enough about Foobar plugin programming.
(I secretly hope foosion is interested enough so that he will try implementing it )
I think the Database Search SDK is probably a good start?
The "The Fnid parshe mode" or a more general version can maybe be used for the fuzzy lookup.
http://foosion.foobar2000.org/help/0.9/foo...ter_fnid_parshe
Ideal would be a lookup that starts from the exact string and the progressively allow more distorted version from it until one song has been found in the database, with a threshold on the total amount of distortion allowed.
Or fastest probably is do a fuzzy lookup with the worst distortion allowed and then sort all the results according to distortion and then take the least distorted result.
When I look at the mean database query times of foo_dbsearch the time needed to convert such a soft playlist or to resolve dead playlist entries should be acceptable, at least faster than doing it manually

I really think this would set apart Foobar from any other player.
The inability to do this has bugged me in every player I've ever tried.
  • Last Edit: 27 September, 2007, 01:12:46 PM by JohanDeBock
foo_softplaylists: http://tiny.cc/kh9m9

Soft playlist + Foobar media library -> hard playlist
Reply #8
I am very interested in this idea (although not nearly versed enough to attack the component myself).

It may be worth talking to Florian who develops the Audioscrobbler component.

His component pulls playlists from LastFM and "translates" them into "hard" playlists in Foobar and it would seem that somewhere in that process lies the solution to the fuzzy to hard conversion.

Just an idea.

Soft playlist + Foobar media library -> hard playlist
Reply #9
I'm probably way off, but does this have anything to do with what you are looking for? :

http://eolindel.free.fr/foobar0.9/autoplaylist.php

  • JohanDeBock
  • [*][*][*][*]
  • Developer
Soft playlist + Foobar media library -> hard playlist
Reply #10
I am very interested in this idea (although not nearly versed enough to attack the component myself).

It may be worth talking to Florian who develops the Audioscrobbler component.

His component pulls playlists from LastFM and "translates" them into "hard" playlists in Foobar and it would seem that somewhere in that process lies the solution to the fuzzy to hard conversion.

Just an idea.


Ah ok didn't know that, but indeed it should also contain a soft -> hard conversion based on the database.
Will check it out.

I'm probably way off, but does this have anything to do with what you are looking for? :

http://eolindel.free.fr/foobar0.9/autoplaylist.php


No, it's something different
foo_softplaylists: http://tiny.cc/kh9m9

  • kanak
  • [*][*][*][*][*]
Soft playlist + Foobar media library -> hard playlist
Reply #11
I just realized that Chronial's component (foo_scrobblecharts) does something of the sort while parsing last.fm table into playlist. A lot of code could be reused

  • JohanDeBock
  • [*][*][*][*]
  • Developer
Soft playlist + Foobar media library -> hard playlist
Reply #12
I just realized that Chronial's component (foo_scrobblecharts) does something of the sort while parsing last.fm table into playlist. A lot of code could be reused


Indeed also uses same concept. It is just a question of letting it work on a standard soft playlist format like XSPF. Then you can use other conversion script for for example translating the 'clipboard playlist' in iTunes to XPSF. The we finally have a fast way to translate playlists made on an ipod to a playlist based on the foobar database.
Now we still have to find a developer
  • Last Edit: 01 October, 2007, 06:50:22 PM by JohanDeBock
foo_softplaylists: http://tiny.cc/kh9m9

Soft playlist + Foobar media library -> hard playlist
Reply #13
wery time consuming task would be to use foo_random.dll and create playlist with entries lke:
(artist HAS meat) AND (album HAS attitude) AND (TRACKNUMBER IS 1)
(artist HAS meat) AND (album HAS attitude) AND (TRACKNUMBER IS 2)
(artist HAS meat) AND (album HAS attitude) AND (TRACKNUMBER IS 3)
...

Soft playlist + Foobar media library -> hard playlist
Reply #14
Yeah, sorry, I had Florian's and Chronial's LastFM components confused.

Right idea, wrong plugin :-(