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
41
3rd Party Plugins - (fb2k) / Re: Resampler plugin
Last post by mycroft -
you are free to increase quality parameter to 2x or 4x of original default value if you want more than 16bit (> 92dB) output quality.
visual transforms are not good way to represent how resampler is cutting high end of spectrum too much.
For example better to take up-sampling than down-sampling to original sample rate and compare output differences between resamplers and not by using visuals but comparing output with SDR (signal-to-distortion ratio) or similar measurements.

ardftsrc give superior quality compared to soxr resampler (when comparing with same quality parameters) at same or faster speed at lower latency and much lower complexity of code. (And ardftsrc code is not 100% hand optimized like soxr resampler)

The only real difference is in higher spectrum which is anyway not that relevant for ordinary listeners.
42
3rd Party Plugins - (fb2k) / Re: 64-bit recompiles
Last post by marc2k3 -
Nice.

I noticed that if you sort by date, you have 2 components from 2022 (Stereo Convolution DSP and Taskbar Playback Progress Bar). It seems they are also compiled with the wrong FOOBAR2000_TARGET_VERSION like the issue I reported with foo_pd_aac recently.
44
3rd Party Plugins - (fb2k) / Re: External Tags
Last post by aelklirion -
The external tags were stored in the files you deleted. foobar2000 caches metadata and it will only automatically read the tags from files again if it sees the file has changed. If you want to handle things manually you'll need to manually force foobar to reload info from files. You can for example do that by holding down shift when you right click a file, then choose 'Tagging' -> 'Reload info from file(s)'.

If you had removed the external tags with the component, it would have done the metadata refresh for you. But if there is nothing for it to remove, it will not do anything.
That makes sense, changing the external tags doesn't change the files like it happens with internal tags so foobar sees no reason to reload the files. I tried what you said and it worked, thanks.
45
3rd Party Plugins - (fb2k) / Re: External Tags
Last post by Case -
The external tags were stored in the files you deleted. foobar2000 caches metadata and it will only automatically read the tags from files again if it sees the file has changed. If you want to handle things manually you'll need to manually force foobar to reload info from files. You can for example do that by holding down shift when you right click a file, then choose 'Tagging' -> 'Reload info from file(s)'.

If you had removed the external tags with the component, it would have done the metadata refresh for you. But if there is nothing for it to remove, it will not do anything.
46
Scientific Discussion / AudioWorklet-based filter bank spectrum analyzer
Last post by TF3RDL -
Hi, I've have been written some JS code and posted this project "Analog-style spectrum analyzer and sliding DFT visualization using AudioWorklet" over CodePen, which I started out as testbed to figure out how to implement AudioWorklet-based stuffs (e.g. a type of real-time audio analysis like this not possible with AnalyserNode.getFloatTimeDomainData) and evolved into a spinoff of " Frequency bands spectrum analyzer using either FFT or CQT" project

Summary of this project:
  • Perform the sample acquisition on the AudioWorkletProcessor part similar to AnalyserNode.getFloatTimeDomainData but better (65536 or larger samples + ChannelSplitterNode-less multichannel analysis support perhaps). In this case, getting audio samples ranging from last samples since previous calculation to latest samples
  • Transfer the audio chunk into main thread through postMessage() and onMessage() function on each ports
  • Then in the main thread, before processing for realtime spectral analysis, downmix all channels into single mono (all channels incl. LFE, same as "Downmix channels to mono" DSP from foobar2000) audio chunk
  • Perform time-domain filter bank analysis (either analog-style IIR filter bank, sliding windowed infinite Fourier transform, or constant-Q/variable-Q sliding DFT)
  • Finally, plot the bargraph of the resulting spectrum data

Here's the screenshot of this visualization project (1/24th octave bands, color gradient similar to fb2k's built-in "Spectrum" visualization, 4th order analog-style filter bank):
X

Of course, you can also try analog-style and SWIFT filter bank analyzer on foobar2000 using Spectrum Analyzer (foo_vis_spectrum_analyzer) component, though any inquiries about this component should be posted on a thread about this foobar2000 component instead and any inquiries and questions about the project itself (e.g. performance and possible optimizations on VQ-sDFT) should be posted here
47
3rd Party Plugins - (fb2k) / Re: foo_musical_spectrum (discussion)
Last post by pqyt -
Hi all. I can't wait to use this addon. As a new user to foobar2000, i have encountered an error on loading. i have the 64bit version installed and am receiving this error on launch
Failed to load DLL: foo_musical_spectrum.dll
Reason: Not a valid Win32 application.

Am i correct in assuming it will only run on the 32bit version?
TIA
Yes. It's 32bit only.

A remake (and then some) is available here.
48
3rd Party Plugins - (fb2k) / Re: External Tags
Last post by aelklirion -
I've got a question about where the external tags are stored cause they're not behaving as I expected: when I use only the SQLite mode (settings I used shown in picture 1), add external tags to some files, and then delete the external-tags.db file that is created in AppData\Roaming\foobar2000-v2, the external tags are still on the files. Same thing with the folder tags mode (picture 2): when I delete the folder.tag file the external tags remain. Shift right-clicking and selecting Remove external tags also doesn't revert the files to their pre-external tags state. I have confirmed that the audio files are not altered so I didn't accidentally change their internal tags, so why aren't the external tags removed when I delete the SQLite database file or the .tag files? Where is foobar getting them from? Does External Tags have a cache somewhere I should delete?
49
3rd Party Plugins - (fb2k) / Re: foo_musical_spectrum (discussion)
Last post by TF3RDL -
Hi all. I can't wait to use this addon. As a new user to foobar2000, i have encountered an error on loading. i have the 64bit version installed and am receiving this error on launch
Failed to load DLL: foo_musical_spectrum.dll
Reason: Not a valid Win32 application.

Am i correct in assuming it will only run on the 32bit version?
TIA
Correct, this component is 32-bit only as the original dev (@fismineur) was gone, so I suggest using foo_vis_spectrum_analyzer if you want that
50
3rd Party Plugins - (fb2k) / Re: Resampler plugin
Last post by Case -
Speed comparison. The source file is a CD image, stereo, 16 bps, 44100 Hz. Duration reported by foobar2000: 55:41.150 (147 344 700 samples).
Conversion run untimed first so the source file gets cached in memory. C: is a fast NVMe SSD too, so not a bottleneck.

Code: [Select]
$ del C:\temp\out.wav & timer64 ffmpeg -i c:\temp\image.wav -af "ardftsrc=48000,atrim=start=0" -acodec pcm_f32le c:\temp\out.wav
- timed conversion ran three times, fastest run took 2.027 seconds. Average 2.065 s
- the conversion speed for the fastest run is 1648x realtime

$ del C:\temp\out.wav & timer64 ffmpeg7 -i c:\temp\image.wav -af "aresample=48000:resampler=soxr" -acodec pcm_f32le c:\temp\out.wav
- timed conversion ran three times, fastest run took 1.711 seconds. Average 1.711 s
- the conversion speed for the fastest run is 1953x realtime

The ardftsrc produced output length is still incorrect: 55:41.153 (160 375 360 samples)
Sox length is correct: 55:41.150 (160 375 184 samples)
147 344 700 / 44100 * 48000 = 160 375 183,67..., which rounds up to 160 375 184

Quality comparison:
Code: [Select]
$ ffmpeg -i swept_float.wv -af "ardftsrc=48000,atrim=start=0" -acodec pcm_f32le ardftsrc.wav
$ ffmpeg7 -i swept_float.wv -af "aresample=48000:resampler=soxr" -acodec pcm_f32le soxr.wav

$ ffmpeg7 -i ardftsrc.wav -lavfi showspectrumpic=s=1280x800 ardftsrc.png
$ ffmpeg7 -i soxr.wav -lavfi showspectrumpic=s=1280x800 soxr.png
$ ffmpeg7 -i swept_float.wv -lavfi showspectrumpic=s=1280x800 swept_float.png

ardftsrc.png:
X

soxr.png:
X

swept_float.png:
X

Edit: Added labels for images.