Skip to main content

Notice

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
2
Support - (fb2k) / Re: Foobar Crashing on Startup
Last post by musicmusic -
The crash is related to some problem that occurred when reading Album list panel configuration data.

You mentioned it crashes without Columns UI as well. If that's the case post a new log and .dmp file.

Otherwise, if you post or send me foo_ui_columns.cfg (from the configuration directory in your foobar2000 profile directory, which is one directory up from the crash reports directory) I can check if there's something wrong with the data in the file.

Also did this just suddenly start happening, or was there an event that triggered it?
3
Support - (fb2k) / Current playlist is blank
Last post by Aface66 -
I use foobar2000 on my Windows PC & when I opened my program tonight my most current playlist was blank. I had some stuff from various folders there for some time with no issues till now. I did go into the Appdata folder but the current playlist isn't in there. Is there anyway to retrieve that list at this point?
7
General Audio / Re: Apple users: what type of AIFF is produced by default? (Care to test-convert?)
Last post by danadam -
As for ffmpeg, it is easier to conclude that ffmpeg does wrong things, when it writes files it cannot read.
I can make it produce correct 24-bit aif file, in the sense that sndfile-convert can read and convert it properly. To do that I added the mapping between S24LE codec and "sowt" tag in libavformat/aiff.c:
Code: [Select]
     { AV_CODEC_ID_PCM_S16BE,    MKTAG('t','w','o','s') },
     { AV_CODEC_ID_PCM_S16LE,    MKTAG('s','o','w','t') },
+    { AV_CODEC_ID_PCM_S24LE,    MKTAG('s','o','w','t') },
     { AV_CODEC_ID_ADPCM_IMA_QT, MKTAG('i','m','a','4') },
     { AV_CODEC_ID_QDMC,         MKTAG('Q','D','M','C') },
Apple Music then reads such file but treats it as 16-bit. Without additional modifications ffmpeg also treats it at 16-bit.

The map/list above is used during encoding to find the tag corresponding to the codec. Without the change, it was storing bytes "01 00 00 00", with the change it stores "73 6f 77 74" (ie. "sowt").

During decoding things are more complicated. It also uses that map but there are many entries with the same value there:
Code: [Select]
const AVCodecTag ff_codec_aiff_tags[] = {
    { AV_CODEC_ID_PCM_S16BE,    MKTAG('N','O','N','E') },
    { AV_CODEC_ID_PCM_S8,       MKTAG('N','O','N','E') },
    { AV_CODEC_ID_PCM_U8,       MKTAG('r','a','w',' ') },
    { AV_CODEC_ID_PCM_S24BE,    MKTAG('N','O','N','E') },
    { AV_CODEC_ID_PCM_S32BE,    MKTAG('N','O','N','E') },
...
    { AV_CODEC_ID_PCM_S16LE,    MKTAG('s','o','w','t') },
    { AV_CODEC_ID_PCM_S24LE,    MKTAG('s','o','w','t') },    // <--- added by me
This is handled in libavformat/aiffdec.c:
Code: [Select]
        par->codec_id  = ff_codec_get_id(ff_codec_aiff_tags, par->codec_tag);    // <--- A
...
    if (version != AIFF_C_VERSION1 || par->codec_id == AV_CODEC_ID_PCM_S16BE) {
        par->codec_id = aiff_codec_get_id(par->bits_per_coded_sample);           // <--- B
        par->bits_per_coded_sample = av_get_bits_per_sample(par->codec_id);
For files with "NONE" it will first (A) find S16BE codec regardless of the actual bit-depth, because S16BE is the first entry with "NONE" in the map. Then (B) it will get proper S__BE codec based on the actual bit-depth field from the file.

To properly read "sowt" files a similar thing has to be done for S__LE codecs.
9
Movie/Multichannel audio / Re: Changing Pitch -0,1% - 4,271% (PAL/NTSC) without changing length, artefact-free
Last post by fooball -
But you said:
...which would process all .wav files in one folder. That would be amazing.  I tried it but it wasn't supported. So far I only used is as a drag and drop cmd which worked.
...so how much more "amazing" that my script can not only process all .wav files in one folder (on the command line) but drag&drop multiple files and folders, no command line required?  Your choice, I don't care (and I still think it's a fool's errand).
10
3rd Party Plugins - (fb2k) / Re: Playlist-Tools-SMP
Last post by regor -
Yes, it first applies the queries, and sorting is the last step, for ALL joined tracks, as explained above.

Duplicates are already removed when joining the "pools", by TF and exact same file. That's tweaked at 'configuration\duplicates handling'.

Lastly, I had just stumbled upon deDuplicate key, any idea if it would further help in removing duplicates or is it something redundant?
That depends on what you call "duplicates". You can set any TF for that key, so for instance, it's possible to have specific sources deduplicated by such TF and then globally by the setting mentioned at top. It's totally redundant if you just want to filter "real" duplicates. Anyway, "real" duplicates are only possible on libraries which contain multiple versions of the same albums, live versions, compilations, etc.  (which is my case). Most people will probably not even care about that.

For ex.

Source 1 -> RATING > 3 -> Deduplicated by artist (so only one track per artist would be available)
Source 2 -> RATING > 5 -> Deduplicated by year (so only one track per year would be available)
-> merge sources -> global setting -> Deduplicated by artist|title|year (so no different versions of same track are output twice)

Note for me: add these replies to the docs to document how every key works