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
WavPack / Experimental WavPack 5.7.2 (hybrid enhancements)
Last post by bryant -
A month ago @guruboolez let me know about an issue he had discovered with WavPack’s hybrid mode. When experimenting with very low bitrates and high sampling rates (i.e., 2 bits / sample with 96 kHz or 192 kHz audio) the quantization noise would sometimes jump way up in level and become audible. Using a higher bitrate or forcing dynamic noise shaping (--use-dns) would fix it.

This reminded me of a situation I had seen several months earlier, also with the 2 bps setting. In this case it was 24-bit file with just a 1001 Hz sine tone, and the -x6 setting would generate over 10 dB more quantization noise than -x5.

Lastly, there was the sample pointed out by @Klymins and @shadowking where WavPack’s dynamic noise shaping was definitely not doing the right thing (which I described at depth in this post).

I started investigating all this and quickly descended into the rabbit hole! The first thing I discovered is there is a feedback issue with the hybrid mode at low bitrates. In other words, the quantization noise makes the prediction worse, which in turn increases the quantization noise, which makes the prediction worse, etc. There’s no real fix for it (at least I haven’t come up with one), but it is possible to mitigate it. For example, positive noise shaping makes it worse, which is why guru saw the problem with high sample rates that force first-order shaping in an attempt to shift the quantization noise into the inaudible range. One of my fixes is to limit this forcing for low bitrates.

To fix the killer sample issue, I came up with a smarter noise-shaping algorithm that actually filters the audio into high and low bands (split at fs / 6) and then compares the two averaged levels to determine the optimum shaping. This is more accurate than the old method, and so I have tuned it to be more aggressive, including stronger negative shaping (which helps with the feedback issue also). It greatly improves the killer sample (to my old ears) and might improve other samples (with any luck).

The new shaping algorithm is very quick to react, and so sometimes generates very short frames in the hybrid lossless mode. These short frames exposed some sub-optimal code and even some outright bugs in the “extra” modes, which is code that hasn’t had any meaningful updates in almost a decade. Fortunately the issues mostly concern these very short special-case blocks, but I have attempted to fix everything I found.
 
Bottom line is that I have created a very experimental version 5.7.2 that incorporates lots of changes to address both guru’s discovery and possibly do better noise-shaping in the hybrid/lossy mode. Here’s a quick, partial summary of the changes:

  • fixed bug: use the correct residuals for parameter estimation in extra levels 4 through 6
  • fixed bug: very rare edge-case where we would skip writing the correction bitstream
  • new dynamic noise shaping (DNS) algorithm using frequency splitting filters with averaging
  • only force positive noise shaping for sample rates >= 88,200 Hz and bitrates >= 4.5 bits / sample
  • in the “extra” modes only take header overhead into account in pure lossless mode
  • allow noise shaping to go further negative with bitrates under 3.0 bits / sample
  • improve decorrelation and entropy parameter estimation for very short frames

I would be interested in any feedback on this, but please do not use this (at least yet) for any important archiving. And, as always, be sure to use the -v mode to verify any lossless compression operation. Note that this still uses the same simple noise-shaping curves as before (only the selection is new), so everything is completely compatible with prior decoders.

BTW, the lossless hybrid mode is very slow because the new DNS code is not fully optimized. I don’t think it will ever be as fast as the old code (which was super simple), but it will get better than this. Also, because of the shorter frames, the overall compression ratio has dropped roughly 1% (at least for now).

Experimental branch on Github


 
2
Other Lossy Codecs / Re: lossyWAV 1.4.2 Development (was 1.5.0)
Last post by Nick.C -
Thanks very much for taking the time to perform such a comprehensive test of how lossless handle lossyWAV processed audio. Much appreciated.

For me another consideration is the "cost", in terms of CPU load / battery life of portable devices, of playing the audio. In that respect FLAC seems to do well - not sure about the others.
3
3rd Party Plugins - (fb2k) / Re: NEW ESLyric v0.5 - an alternative lyric show component
Last post by ngs428 -
@sveakul Correction, I have a Deezer Sid (cookie), the API is what is needed. 
According to this..  Following the steps, Deezer is not accepting new applications.  Is there a different way for the API?   
https://www.educative.io/courses/getting-started-with-the-deezer-api-in-javascript/getting-started-with-the-deezer-api
None that I know of.

OK, thanks.  I fixed my install issue, had the wrong folder location, but does not do much good without the API. 

On an unrelated question....   In the Lyric Search Window (right click in ESLyrics > Search), if you click on the "Search" dropdown in the top right corner, and pick "Sync Settings" what does that do? 
4
foobar2000 mobile / Stop playback after each track in Foobar2000 mobile
Last post by pcetp -
Hello everyone,
I need a bit of help to make Foobar2000 Mobile stop playback after each track.

In the Android and ios versions,  the Foobar2000 Mobile option "Stop after current" automatically deactivates after 1 track is played.
This means you have to press the "Stop after current" option for the next track if you want that function.
In Foobar2000 Mobile I would like to be able to toggle a function which always stops after the current track.

In the desktop Windows version of Foobar2000 I found the options:
Preferences > Playback > "Stop playback after current track" and underneath the option "Reset the above when stopping."
This works and is exactly what I am looking for in Foobar2000 Mobile.

Is this function unavailable in Foobar2000 Mobile?
If it is available, can somebody point me in the right direction?

Many thanks in advance for your help.
5
3rd Party Plugins - (fb2k) / Re: foo_uie_lyrics3
Last post by Defender -
Forwarded post from 2024-05-14

@Veksho

I'm having issues with the foo_multisource 0.56 component.
My install is foobar 2.2 x86 always newest beta running foo_ui_lyrics3 0.6. Also newest c++ runtime library versions 14.40.33810.

Lately I have increasing crash errors upon exiting foobar and almost always having visual c++ runtime errors while starting foobar which mostly only runs after trying to start 4/5 times in a row. It was kind of acceptable for me because I'm always testing (maybe less stable) stuff, but now the amount of crashes were becoming unbearable.

So today I started debugging by removing one component after another to isolate the cause for this almost constant startup bug. After having removed some 20 different components including foo_ui_lyrics3 (actually the third one I removed), I removed foo_multisource and all of a sudden I did not experience exit or startup errors anymore.

I reloaded my full skin including foo_ui_lyrics and multisource and back where the exit/startup errors.
Then I removed foo_ui_lyric3 but kept multisource ... still exit/start crashes. After removing multisource no more errors.

Reloaded full skin one more including foo_ui_lyrics and multisource and back where the exit/startup errors.
Then removed multisource but kept foo_ui_lyrics3 ... no errors.

Please investigate
8
3rd Party Plugins - (fb2k) / Re: foo_truepeak True Peak Scanner
Last post by francesco -
Hi
May I ask only 2 questions ?

1) what could i do with all the information provided by the True Peak Scanner component ?
I mean should I use them with some normalization /replay gain or components or foobar features?

2) are there some old version avaible ? I liked the first version
9
Lossless / Other Codecs / Re: HALAC (High Availability Lossless Audio Compression)
Last post by Case -
The new API is an improvement because it doesn't need a file name, but it seems like full file still needs to be read to memory to fully decode it. It looks like I can start decoding beginning of the track with partially read source file but I don't see a mechanism to ask the library to just decode from partial buffer. Most of the functions crash hard if fed a buffer that doesn't contain a HALAC 0.2.8 file in its entirety.

Edit: since it's your format you of course don't need to worry about being memory-friendly or allow streaming.
PS: the library is still lacking error checking. Simple random altered byte in audio data didn't manage to crash it now (produced audible glitch) but bad header data crashes it hard. Easy to trigger for example by changing the '7' to '8' in version info of 0.2.7 encoded file.
10
3rd Party Plugins - (fb2k) / Re: Dynamic Range plugin
Last post by francesco -
@Case

Hi
first i want to thank you for the plugin
do you think could be possibile to add in the Dr Meter context menu ->save results logs to  ?
or maybe in the Dr Meter Results -> save results logs to ?
would so useful and easy .., than change the option in the advanced options
again thanks for the plugin
cheers