Skip to main content


Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Recent Posts
General - (fb2k) / Re: Conversion from ALAC to FLAC, automatically deleting ALAC files
Last post by Porcus - would be quicker for those who want that functionality to simply move the files they're converting to a folder that can be sent to the recycle bin post conversion.
Assuming you don't want to run any verification, you can
1) select the files,
2) start conversion,
3) on the same selection, File Operations -> Delete - but do not hit OK yet
4) wait for conversion to finalize
5) hit "OK" to move to trash

General Audio / Re: 16 bits is more than enough
Last post by DVDdoug -
CDs only make about 22Hz per left and right channel.
The frequency is limited to half of the sample rate (44,100 samples per second) and this is unrelated to bit depth.

Digital audio is quantized in two dimensions, amplitude and time.
foobar2000 mobile / Android Foobar Mobile
Last post by Woody101 -
Running Foobar on my cell on my home network and the music files in folders sort by alphabetical not by track #.

if I run the same folder on other music programs the sort is fine.

Is there a setting in Foobar Mobile to sort by track number on home network?
I can see the track numbers but it still sorts alphabetical.
3rd Party Plugins - (fb2k) / Re: foo_sqlite
Last post by carpman -
Thanks @SimBun and @fbuser  

Really appreciate the help and patience.  I completely missed that part of fbuser's reply.  So sorry for being a dunce.

All working perfectly now.   I ended up making all the statements "is" not "=" as for some reason, the code was missing one item out of the 2 x 1,260 that were being cross checked. 

Just in case anyone else should do something similar to me, I'll outline why I wanted this code. 

I have a select group of tracks from my library that I play on my DAP.  Because I alter the files during encoding (use Replay Gain +3db with a limiter) which are transcoded (from lossy and lossless sources) into lossyFLAC.  Thus, all the tags in the code I used should be identical (including length).  I just wanted a way to check if all the files on the DAP could be quickly found in my media library.  They've now been tagged with a DAP = 1 tag.

Very useful for duplicate finding now I have this code -- so thanks so much - really appreciate the help and thanks to fbuser for another nice component !! 

Final code: 

Code: [Select]
insert into PlaylistUpdatable(path,playlist_name)
select a.path, 'Temp'
  from mediaLibrary a
         inner join
       (select artist, title, album, length, tracknumber, composer
          from MediaLibrary
          group by artist, title, album, length, tracknumber, composer
          having count(*)>1
       ) b on (    a.artist is b.artist
               and a.title is b.title
               and a.album is b.album
               and a.length is b.length              
               and a.tracknumber is b.tracknumber
               and a.composer is b.composer)
  order by a.path

3rd Party Plugins - (fb2k) / Re: Search-by-Distance-SMP
Last post by regor -
I tried the new version. There are no more errors with Composer and Custom String tags with the Weight method. The tags appear in the console. I quickly tried the reset button, yes it can be useful for testing. Thanks!

Thanks for the answers!

Now I look at the Mood tag: I see that its part in the queries is much more complex than the others. I saw once that it doesn't appear anymore in the query if the number of values inside goes from 7 to 8, but I only did one quick test.
Moods from acousticBrainz are 6., and more if you use Last.FM moods (which I do), all retrieved from picard. You can obviously merge more mood tags from Bio, etc.
To create a "good prefilter" combinations are required not simple queries. i.e. if you want to match at least 6 from 8 moods, then you need to create all possible groups of 6 elements from the 8 elements available. A simple OR query would not ensure at least 6 of them are matched.

There are other tools at Playlist Tools using that approach (for moods, genres, styles, ...) to find "similar tracks" only with queries.

Also, as said, the queries are created dynamically according to weights + number of tags. You don't have to consider them as a static element, neither they are always present for some tags. If the script considers applying the pre-filter would remove tracks which could be a match, then it will not use it

There is obviously a catch here: you can not know how many tag [mood] matches are enough without calculating the score first, but the script tries to pre-filter the library to not calculate the score for all tracks... an analytical solution is no feasible so aproximations come to play. I apply some simply limits. Whenever I can not ensure the limit will be satisfied, then it will simply not filter the library.

As noted, the query is only for internal use. They only filter the library before calculating scores. Neither they are meant to use all tags, nor they will output "similar tracks" per se.