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
1
FLAC / Re: FLAC v1.4.x Performance Tests
Last post by Porcus -
ODD SMALL BLOCK SIZES (and a couple more normal-sized)

Because I didn't pay sufficient attention to my own testing, I ran something more - testing blocksizes that nobody wants to use. (Reason for that: make sure there is no partitioning for the residual, so there are no differences in that.)

Took the 219 minute CDDA .wav file and made 30 .flac files:
-0 and -5 at fifteen distinct block sizes, all odd numbers to be sure I didn't test different handling of partitioning.
Most are too low to be interesting! (Why? I'll explain at the end.)
17, 23, 31, 45, 65, 97, 147, 223, 341, 523, 803 <in between here is the -0 to -2 preset blocksize!> 1237, 1907, 2941 <in between here are the other presets> 4537 (ffmpeg uses the subset upper bound of 4608)

Those were encoded repeatedly using different FLAC releases (Xiph builds ... I hope I didn't get that wrong!). Timings for the -0b<N> and -5b<N>:

To the right end of both diagrams, you see that 1.4.3 has gotten rid of the slowdown around the 4096 blocksize, which is good because that is a default.



Then decoding. Note, here the flac versions are different! Because the results were a bit surprising, I dug up 1.3.1 too (a tinytiny bit slower than 1.3.4, I deleted the latter to get the number of curves down) and also 1.2.1. Omitted is also 1.4.2 which is as good as tied to 1.4.3. Kept in both the 32-bit and 64-bit version of 1.4.3 (it being the current release).
And here the block sizes are visible, I lost them from the encoding charts ...

1.3 is much faster at the small block sizes! At the very smallest, 17 samples, it decodes at at 22 seconds, 1.4 needs 40, 1.4 32-bit needs 60. That is a little bit of difference?!
The observation that 1.4.3 32-bit crosses 1.2.1 this way also indicates that something got lost since 1.3.

Note the difference between 64-bit builds is pretty much nothing at the reasonable block sizes. Don't overinterpret this
Imgur album: https://imgur.com/a/JDAccOD


* Comparison with ffmpeg - which spends bonkers amounts of time at small blocks - at https://hydrogenaud.io/index.php/topic,125791.msg1044102.html#msg1044102

* Why these block sizes? I tried the minimum block size over in that thread, and since ffmpeg did so horrible, I set out to check (1) where it would start to behave normal, and (2) what is then ... normal? Reference implementation for comparison. And then it turned out, differences between versions ... and a new run.


Corpus: I took twenty-one of the CDs in my signature (7 in each broad subdivision), the first ten and a half minute of each, merged to a 219 minute WAVE file.
Timing was done overnight with hyperfine, warmup + 5 runs with 30 seconds cooldown in between (ffmpeg last), and times are median of 5.

2
Lossless / Other Codecs / Re: Tested: Lossless decoding speed, multithreaded - and fast verification
Last post by Porcus -
@bryant on WavPack:
Whether wvunpack --threads=<N> vs ffmpeg -threads=<N> is apples to apples ... I don't know. It might be "better" than comparing wvunpack --threads vs ffmpeg (spawning all), and all I could do was to get it down to thread count matters enough to tilt the numbers.


@ktf on FLAC:
Sure if we could just pick up some magic and speed up stuff. Anyway I made a mess out of it, first time I was not sure whether ffmpeg -threads 1 meant "single thread" or "one worker in addition to the bookkeping/parsing", so is part of my lame excuses.
But:
I got something that you could maybe speed up for: it seems 1.3.x does small blocks faster than 1.4.x. Since I got this wrong AND didn't stay completely consistent on which flac executable I used, I ran it together with a test to see when ffmpeg stops making a fool of itself (it was at block sizes below reference's -0/-1/-2, that is good):

What I did: explained over in the FLAC test thread: https://hydrogenaud.io/index.php/topic,123025.msg1044103.html#msg1044103 With more diagrams, including 1.2.1. And encoding.

Anyway, ffmpeg starts behaving "more normal" at "normal" block sizes.
For reference flac it might look surprising that -5 and -0 make so little difference. But most of the graph is for (too!) small block sizes, and apparently the time penalty for processing those, override the calculation job.




@mycroft :
"seditious" sounds like you just learned a new bad word and is waiting to use it ... couldn't you be constructive and educate instead?
For better or for worse, FLAC's design is frozen long ago, and for now it stays the biggest player in the lossless audio files market, at least disregarding silver discs.
But good that you actually contribute repairing bad code, and not only whine toxicity.
3
3rd Party Plugins - (fb2k) / Re: foo_enhanced_spectrum_analyzer
Last post by TF3RDL -
@Crossover, what about non-power of two FFT sizes like 4800 samples (100ms at 48kHz samplerate)?
Feature request: Being able to set FFT size to specified length in milliseconds instead of samples as get_chunk_absolute() in fb2k SDK takes length in seconds rather than in samples

This makes the window length in seconds/milliseconds samplerate-independent when you set the unit for "FFT size" to milliseconds
4
Polls / Re: 2024 Format Poll [Lossy/Semi-Lossy]
Last post by guruboolez -
WavPack is missing. You should add it.
You should also remove VQF, Real Audio, SBC, Encodec, MP1 and MP2: they are nonsensical in 2024. If you really need to offer an exhaustive overview of vintage formats, check https://www.rarewares.org/rrw/programs.php and give to Mafuka a chance ;)
xHE-AAC is different from AAC (LC and HE), I would make a different entry for it.


EDIT: I would also remove WMA: 0 vote in 2016
https://hydrogenaud.io/index.php/topic,112400.0.html

EDIT2: there's already a 2024 lossy poll:
https://hydrogenaud.io/index.php/topic,125552.0.html
5
Lossless / Other Codecs / Re: HALAC (High Availability Lossless Audio Compression)
Last post by Porcus -
You could of course have a quick look at whether HALAC could be used in conjunction with LossyWAV. Then those who are interested in lossy (+ correction files) could play around with it and see if something interesting comes up near the speed/quality frontier. I surely agree with you (though it is your say and not mine) that creating a new lossy codec need not be next week's project.

BTW, @Nick.C the LossyWAV developer: Your profile page has the ancient LossyWAV 1.3.0 development thread as your homepage ... did anyone notice in the 1/8th of a century since it was locked?   :))
6
3rd Party Plugins - (fb2k) / Re: foo_midi (foobar2000 v2.0)
Last post by pqyt -
v2.10.0.0, 2024-05-07, It's been a while

* New: The volume of BASS MIDI can be tweaked independently of the overall volume. Defaults to 0.15, determined experimentally to align with the other players.
* Improved: Added detection of EUC-JP encoded meta data.
* Improved: Added Shift-JIS and EUC-JP detection and conversion for lyrics.
* Fixed: Mixed ANSI and Shift-JIS wasn't detected (anymore?).
* Fixed: The BASS MIDI voice count was not initialized correctly when using a preset.
* Fixed: Emu de MIDI sysex recognition.
* Fixed: Emu de MIDI potential buffer overflow during rendering.

Download from GitHub or the foobar2000 Components Repository.
Automatic update from within foobar2000 does not work.

Because it's been a while and the bigger new features will take some work I release this small update.
7
Lossless / Other Codecs / Re: HALAC (High Availability Lossless Audio Compression)
Last post by Hakan Abbas -
Lossy compression(audio/image) is about ignoring some data that is outside of human perception. And for this it is clearly necessary to perform various tricks. So as long as people don't understand, it means there's no problem. It is not as rigid as lossless compression, and we can act more flexibly. However, they are generally not preferred in professional areas and are for everyday use.

The main problem here is that the interpretation of the output can be in many different ways and quite relative. So it is very difficult to come to a definite conclusion in terms of quality.

When we carefully examine the deformations on the image, we can see them with the naked eye. However, it is not easy to analyze changes in the original sound without high-quality audio equipment. At least it's not easy for me.

Since there are higher bit values (24/32) in the audio data, there may also be more noise that needs to be cleared. I can evaluate this issue in later versions. But for now, there are more priority issues. Therefore, a little more time is needed for the lossy option.
8
General - (fb2k) / Re: How to use lyrics with foobar2000
Last post by sveakul -
Several good choices--I have all 3 in a tabbed panel:

1.  Lyric Show Panel 3 (version .6) with foo_multisource 2.1 added

https://www.foobar2000.org/components/view/foo_uie_lyrics3

https://hydrogenaud.io/index.php/topic,90338.msg1037160.html#msg1037160

2.  ESLyric

https://hydrogenaud.io/index.php/topic,122571.0.html

https://github.com/ESLyric/release/releases/tag/0.5.4.1028

3.  Foo_openlyrics

https://www.foobar2000.org/components/view/foo_openlyrics

https://github.com/jacquesh/foo_openlyrics

10
MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by [JAZ] -
oh, I forgot to reply to your second question.

No. nspsytune means "Naoki shibata psychoacoustics tuning", and it's one of the tunings of LAME. Although currently I don't remember if they are used in the most recent versions of LAME or not.

Helix is a descendant of the Xing MP3 encoder. As you said, RealNetworks bought Xing, so it also got the encoder.
The changes that have been done to this encoder here in this topic are mostly about preserving and improving the user experience, not about sound quality (other than, maybe fixing bugs due to uninitialized variables or similar).