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
92
General Audio / Re: Downsampling Vinyl-rips and Bandcamp downloads with SOX
Last post by Kraeved -
SoX resampler for Foobar2000, once developed by @lvqcl and then abandoned to the point that @Case had to compile its so much anticipated x64 version, which is now lost among 24 discussion pages, seems to be able to guard against clipping and to interpolate well. Recently, in order to test gapless encoding via revived Helix MP3 encoder, I have used compositions from two continuously mixed vinyl records (24/192 and 32/384). The cuts were downsampled to 44100 Hz without a) changing bit depth, b) applying dither, c) using “don't reset DSP between tracks”. There are no clicks.
93
3rd Party Plugins - (fb2k) / Re: [fb2k v2] SQLite Utilities (foo_sqlite)
Last post by dpc666 -
Well, just to be clear, what I'm thinking of is not to create F2k standard autoplaylists (I know those only work with standard library queries) but rather to automatically fill regular playlists based on SQL queries, without explicit user interaction. The main obstacle I can think of here is the question of how to schedule playlist updates. I don't know how autoplaylists update their contents, and I don't know whether those triggers are also exposed to components, or whether that would even be practical given the performance limitations of SQL requests.
But exactly your request is present on my playlist manager, in "Smart Playlists", and they are updated on real time whenever the source changes. In this case they use other playlists as source, and apply a query on them. Such special playlist may also be locked by the component, so it can only be changed by it, whether on demand or by any callback.

Oh, I wasn't sure what they do, but I read something in the release notes about support for foo_sqlite stuff. So I guess that's what they're for. I'll take a look in the docs.

They are, but the problem is that the information provided by those triggers can't be used reasonably. So, the only information which can be used from this triggers is that something happened.

Yeah, that was what I was worried about. Running the query on the whole library every time any little thing changes doesn't seem practical.

But please don't say it is not possible when I'm clearly doing it for some specific use cases (which was the premise of my post anyway). I specifically said they were not going to be Autoplaylists, which clearly means it's not valid for general cases. Anyway that's totally off topic, since clearly the user request is about not having to update a playlist on demand, it may well be enough to have it updated once a day, after startup or whatever.

Indeed, some basic options for automatic "send top playlist" conditions would already go a long way as far as I'm concerned.
97
General - (fb2k) / Re: fdkaac input bitdepth
Last post by Kraeved -
Ten years later, there is good news and bad news.

Foobar2000 is now able to show Track Peak as decibels, as @yetanotherid requested, but you need to enable it first: Preferences → Advanced → Tools → ReplayGain Scanner → Results dialog: advanced formatting of peak values.



Alas, the confusion between FDKAAC and bit depth remains. HA wiki states: “…based on fixed-point math and only supports 16-bit integer PCM input”, but fdkaac.exe 32float.wav does not throw an error, so there is a temptation to believe that support has been added. For example, Helix MP3 encoder, before @Case expanded its bit depth support up to 32 bit float in the spring of 2024, when running hmp3.exe 32float.wav would clearly reject such input: “Unsupported PCM file type”. In fact, according to @nu774's explanation, which is worth putting on the wiki, FDKAAC accepts even 64float.wav as input, which I just verified with version 1.0.5, and then internally converts it to 16 bit integer.

Code: [Select]
$ sox.exe -n -r 44100 -b 64 -e float 64float.wav synth 10 sine 10000
$ fdkaac.exe -b 128 64float.wav
[100%] 00:10.000/00:10.000 (87x), ETA 00:00.000
441000/441000 samples processed in 00:00.115

a) Is there any dither involved or are the extra bits are simply truncated when 32float.wav is converted to 16int?
b) Is further signal processing carried out in 16 bit precision?
c) I see that @kode54 tried to improve the situation, but were his patches used?
98
Lossless / Other Codecs / Re: Tested: Lossless decoding speed, multithreaded - and fast verification
Last post by Porcus -
Hm, definitely some confusion on me, as usual:
* I also found out that not only TAK, but also
wvunpack filename.wv -yo NUL writes to NUL.wav, and that seemingly takes more time than stdout redirected to NUL:
wvunpack filename.wv -yo - > NUL
* Weird about that fast-verification --threads, the numbers looked consistent enough to conclude, and I didn't think it would tax the CPU that much. Seven seconds in between a quarter of a second work?!

(Does Windows keep the executable in memory or something?)


Of course, with this mechanism in place, multithreading decoding is rather trivial.
So ... the obvious question is, any reason why not?
The odd event that "a valid frame header" shows up just by random in the data (the FLAC specification doesn't forbid junk between frames, as long as it is byte-aligned, and in any case parsing must take into account that a stream may be broken ...). Or even worse and more odd, an entire "valid frame" starting inside another?

99
MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by JoshuaChang -
One more post, sorry. Only a few packages were installed and already i blew it up in the dependencies.
I did msys2 once again and now it works and as fast as expected thanks to @JoshuaChang.
I still don't get why flto inside the clang64 enviroment gives that boost or if it is the repeated setting for flto in the linker flags. Have to play around more later i guess :)

I don't think it's related to lto, you can try without -flto, the performance loss is very little(on my side, it's about 5%)
100
General - (fb2k) / Re: Tagging with an iterative loop e.g. tag automatically according to folder order
Last post by ojdo -
Assuming, your layout looks something like this: ...\Artist - Album\CD 2\9 - Title.ext

You can extract the disc number for all tracks of all albums (just pull them into a playlist) by

1. opening the Properties dialog
2. select Tools > Automatically Fill Values
3. select Source "Other...", to the right enter $directory(%path%,1) (which extracts the name of the parent directory, e.g. "CD 2", from the full file path)
4. in line Pattern, enter CD %discnumber%
5. verify the preview, Ok; Done.