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
Development - (fb2k) / Re: x64 compilation failed, but x86 compilation succeeded.
Last post by mortalis -
Thanks for the fix.
So the "pfc" project has incorrect build profile names, and output directories for Debug and Release on x64.

Strangely I changed the configuration name to just "Debug" from the solution Configuration Properties, but it resulted in "fatal error LNK1169: one or more multiply defined symbols found".

So it seems the solution specifically expects the pfc to have configuration as "Debug FB2K" / "Release FB2K" though not sure this is defined, and why it's different from other projects, with just plain "Debug" / "Release"...
2
3rd Party Plugins - (fb2k) / Re: foo_vis_spectrum_analyzer
Last post by Azuriye -
Hello, I have a small doubt regarding this gap when changing the window size... Any idea how to resolve this or why it's happening in the first place? I'm not blaming the plugin since this seemed to happen with other spectrum analyzer programs as well unless I change the note range and bands per octave to somewhat eliminate this gap. You can see when windowed there's a-lot of gap present at the beginning of the note compared to full-screen but I want to totally eliminate this gap.
3
3rd Party Plugins - (fb2k) / Re: foo_quicksearch
Last post by josemescud -
Hi NEMO:
Thank you for creating the 64.bit version. I used it for a long time on my old 32.bit version.
I installed it and noticed that a bug that the 32.bit version already had is still present in the 64.bit version. It would be very favorable for me if it could be corrected.
It is that when applying to a button the Quicksearch for same/Album property it does not find the album if in the %album% metadata there is any double quotation mark.
5
Lossless / Other Codecs / Re: HALAC (High Availability Lossless Audio Compression)
Last post by Hakan Abbas -
Hi Case.
First of all, if we start with error checking, after 0.2.7, I did most of them in the first stage. Some of these can be seen in the screenshot below. In addition, a warning message is sent when there is incorrect/missing data in the audio data, but the process is not stopped. However, the structural changes have not yet come to an end. In other words, I am waiting for the file structure to become more obvious. Then I can do these checks in more detail. When I can finish all this, I think the codec will no longer be my code. Thanks for the warning.

X
Now let's get to the other API issue. Your experiences and comments on these issues are very important to me. Since I don't know the exact functioning of the sound world, I try to do most things on my own. I'm mainly on the compression/speed side of the job. In this case, of course, some things may be missing.

With version 0.2.8, we do not stick to file names and proceed according to a memory startup address sent directly to us. Of course, since we work on a file basis, we should have the header information. In this case, the dimensions of the compressed data frames for random memory access are available in the header section. We only use the frame number to solve them. Therefore, since we load only the frames we want into memory, the memory consumption problem is also solved. You can see this by trying it on the player. In other words, it is enough to change the frame start and end numbers at the bottom right and play them. If it is on a different application, the GET_WAV_FRAME function should be used. (the frame size is currently set to 1 mb).

Of course, I didn't add a flow control mechanism to the Player. It is also necessary to deal with this because it is a special process. My goal is not to develop a full-fledged player. There are already countless applications that can do this job.

What I have described so far was the situation that happened when I was working with a .halac extension file. If there is a mistake in what I will write next, please correct it. I mean, about streaming...

If valid HALAC data(frame) is coming from any source that does not contain header information, what do we do? How are we going to solve them? I think that's the problem. Because we don't have an HALAC file. For this, first of all, information such as the number of channels, bit depth, processing mode should be known while compressing the data in the data source that comes to us, right? In other words, the source that compresses the data and sends it compresses with this information. And communication(broadcasting, etc.) in the beginning, don't the receivers(decoders) get this information in the first place? There must be some rules of communication between them. I tried to act thinking that this information was on both sides. That's why I created the GET_RAW_FRAME function. The information provided(number of channels, bit depth, compressed frame size...) can decode in light of.

So what exactly is the solution needed for streaming? And in this case, I think the data flow should be happening sequentially without skipping. Is it necessary that when we have a completely independent HALAC frame, it should be solved without needing anything, without asking anyone anything? If this is what is desired, it is necessary to keep this side information for each frame as well. When working as a file, there will be redundancy, as this information will be stored in both the header and frame headers. Actually, that's not a lot.

I can do whatever addition/improvement is needed in version 0.2.9. In other words, new functions can be added, old ones can be removed.
6
Support - (fb2k) / No icon WV file
Last post by mihelson -
The WV Audio file icon has no style. The set of icons in the folder is complete. Files have associations. This is on any 2.0 version foobar2000.
8
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


 
9
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.
10
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?