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
FLAC / Re: Multithreading
Last post by Porcus -
Ran a few on my full 38 CDs during the week-end to check for "not-outrageously-expensive" improvements over -7/-8 - if nothing else, to get an idea against the Exact Rice build, and on a different computer than my usual. Not rigorously timed.

TL;DR: flaccid beat -8p soundly. The following setting was only a little bit slower, and its 0.22 percent improvement over stock -8 is three times what -8p could show for itself.
--mode gasc --blocksize-limit-lower 2304 --tweak 64 --queue 16 --merge 0 --analysis-comp 6 --output-comp 8

(But, hrmph, flaccid chokes on non-ASCII filenames.)


So, what I ran - presented as kB per extra second to get you what fruits are lower-hanging. Stock 1.5.0 first:
-5 as "baseline": took 6 minutes, 12 032 megabytes.
-7: Took 143 more seconds, 11 974 megabytes. That means -7 did save 407 kB per extra second run, relative to -5.
-8: Relative to -7, it saved 41 kB per extra second run. So here the returns are diminishing quickly already.

Where to go from -8? The above flaccid in "gasc" mode.
15 kB per extra second over reference -8, against -8p's measly 6.


Also tried:
  • @Wombat's "Exact Rice" build. At -8 it saved 0.02 percent over the Xiph build. That did amount to a not-at-all-bad 13 kB per ekstra second
  • -8 -A "subdivide_tukey(4)", beefing that one up. About the same as the Exact Rice build, both in time and size (loses narrowly to it due to the classical music). I did not do that setting with the Exact Rice.
  • -8r7, -8pr7 in the Xiph build and the "Exact Rice" build: surprisingly little. Especially surprising especially on the heavier corpus where that fine partitioning is often used - but not so much saved from it. Hardly any difference at classical music. Overall only 3 kB/s saved at -8 (Xiph), and much less at -8p and at Exact Rice.
  • Any synergies between Exact Rice and -p? No. Even less than previous line.  Exact Rice's -8p is slow. 
  • Heavier flaccid: 40 percent more time than the one above, did improve but very little.  --mode peakset --blocksize-list 2304,4608 --analysis-comp 5 --output-comp 8r7  --queue 32 --tweak 32 --merge 0
  • Lighter flaccid: just a little bit faster than the gasc above, and not far worse, was --mode chunk --blocksize-list 2304,4608 --tweak 0 --merge 0 --analysis-comp 8 --output-comp 8r7

4
General Audio / Re: Need some advice on resampling 192Khz/32bit float.
Last post by Raven1 -

[Thanks! Any opinion on noise shaping?
Some years back i played around with noise shaping and found the shibata shapes indeed sounding very pleasant to my ears when amplified. There must be some samples in the upload section.
I checked many years on many recordings if it is worth to apply but all the music i seem to listen never needs full 16 bits leave alone needing it noise shaped.
For the sake of doing at least something to lower the possibility of perceived noise i now use the sloped dither inside SoX with dither -S -a.
I think I have enough information now to start redoing my collection, thank you!
7
General - (fb2k) / title formatting for substitutions within strings
Last post by Albicocche -
Hi.

Let's say that in the string "Just a little bit more louder than before" I want to change all the "a"s to the character "z", all the "e"s to the character "w" and all the "o"s to the character "x". The best solution I've found so far is:

Code: [Select]
$replace($replace($replace(Just a little bit more louder than before,a,z),e,w)o,x)

That is, I should nest a $replace() statement for each of the substitutions I want to make to the same string.

Is there a more elegant and readable way to do this?

(In some strings for the foo_run component I had to nest even 5 $replace() statements inside each other, but this solution is neither readable nor maintainable).
9
General Audio / The "business model" of hybrid codecs with correction files
Last post by skamp -
Hello HA,

It's been a while (about 10 years since I was last active). I see that there have been many improvements in the world of digital audio codecs, some of them quite impressive.

I just got a new Macbook Pro with 10 cores and it makes transcoding audio stupendously fast. I've been thinking for a while about moving my FLAC + Vorbis collection to either LossyFLAC or WavPack Lossy, + correction files. But the more I think about it, the less sense I can make out of it.

The problem with correction files is that they are "dead weight". On their own, you can't do anything with them. So, if you're going to back up a lossless collection, you can't just back up the correction files, you also have to back up the lossy files.

As it is now, I have only one copy of my Vorbis collection, on my 5 year old iPhone. If I lose it, no problem, I have my FLACs backed up, and those can be played back on their own (and, obviously, transcoded back to Vorbis or whatever).

With hybrid codecs, you end up with a single collection, which can be nice in case you need to modify tags or something. You do it once, and overwrite the modified lossy files on your device. The total size of a lossyFLAC / lossyWV collection with correction files, or a WavPack Hybrid collection, is somewhat smaller than FLAC + Vorbis. They are larger as a lossless collection than just FLACs (marginally).

I'm over 40 now and I probably couldn't ABX Opus at 128 kbps if my life depended on it. But I think we're just a couple of years away from having enough space on all our devices to just use FLAC and nothing else.

These are the problems I see with WavPack Hybrid, and LossyWAV:

  • WavPack Hybrid is slower and takes more space than FLAC. The lossy part is obviously larger than a pure lossy codec (about twice the size at 320 kbps than my ~160 kbps Vorbis files).
  • LossyWAV suffers from the same issue, whether you encode it with FLAC or WavPack (or TAK).
  • Correction files are supposed to live in the same directory as the lossy files, which makes it very inconvenient to copy an entire lossy collection to a DAP (say, my iPhone). I could write a BASH script (and I just might) to move lossy files and correction files to twin directory structures. That way I could just drag and drop the lossy directory structure to my iPhone. But I also would need to run that script in reverse to join lossy and correction files back together.
  • lossyWAV has a bigger problem of its own: the way it works is that you end up with two WAV files, that you encode with FLAC or whatever. So there's the time spent by lossyWAV to treat the original WAV, then the time spent on losslessly encoding TWO files instead of one. Then, when you want to losslessly transcode those, you need to decode both lossless files (so, twice the time), then use lossyWAV to merge the resulting two files (more time spent), and then finally transcode the reconstructed file to whatever you like. It's very slow, and very storage intensive (3 WAV files in total before you can transcode the 3rd file).

I think that purely lossy WavPack and lossyWAV are pretty cool. I guess some of you guys have such large music libraries that you may be tempted to archive it with a high quality lossy codec, suitable for transcoding, and abandon the idea of keeping a true lossless library.

But what do you guys think about correction files? Can anyone make sense of handling one's music collection that way?
10
Support - (fb2k) / Re: foobar2000 2.25 Preview 2025-05-09 -> UPnP
Last post by iangk -
With this version (x64, windows) I noticed the "stream_title=" isn't working for me. With v2.24.3 and foo_out_upnp v1.4 this did work.
I removed foo_out_upnp before installing 2.25, and the audio is still send to the output device, but instead of the selected text the device displays an IP address followed by a long string, ending in stream.flac