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
Support - (fb2k) / Unrecoverable playback error: Unsupported audio stream format
Last post by Speakerdesignworks -
I just downloaded Foobar2000 on a new Win11 machine. When I try to play a file (from a CD or .wav) I get: Unrecoverable playback error: Unsupported audio stream format. I've downloaded all three versions of 2.24.3 with the same error, so it must be something I'm doing wrong. I've used Foobar2000 in the past but not in years. Current system is i5-14400. Soundblaster Audigy FXv2 Files play fine with the media player. Thanks for your help.
4
3rd Party Plugins - (fb2k) / Re: JSplitter (splitter + SMP x64 alternative)
Last post by regor -
Quote
Meaning that these visualizations (e.g. spectrum analyzer using short chunk of full data pulled from ffprobe within milliseconds length) aren't affected by DSPs and it wouldn't work on internet radio
Yes, that's a limitation with that approach. But some people (me for ex.) could not care less about radio or DSPs, since I want the original data of my tracks (and radio data has zero interest).

Quote
But don't writing new foobar2000 visualization components (which BTW is probably written in C++) is harder to make than WebAudio API visualizations that either use AudioWorklet or doesn't use AnalyserNode's built-in FFT at all (as either two can be easily ported to ones that doesn't use Web Audio API but still has an API to pull raw PCM data from currently-playing audio)?

Neither I agree, nor disagree. Just saying there are so many options right now that it made no sense -for me- to code what has been already coded elsewhere. C++ should also offer better performance.

Anyway I would also appreciate audio data being available on this component, for sure.
6
3rd Party Plugins - (fb2k) / Re: JSplitter (splitter + SMP x64 alternative)
Last post by TF3RDL -
Can it be done? Obviously, yes. As long as the files are analyzed first.
Meaning that these visualizations (e.g. spectrum analyzer using short chunk of full data pulled from ffprobe within milliseconds length) aren't affected by DSPs and it wouldn't work on internet radio

Also, the way this method gets the audio data sounds like AudioSurf to me, isn't it?
Has it been done?
There is at least one spectral script sample (I think it uses SOX) and my waveform script which may be used to display RMS levels, RMS peaks, or peak levels either as waveform or simple VU meter.

Anyway I don't see any point on doing anything more than that, since there are C++ components suitable for that. (and for sure I have zero interest on implementing your ideas)
But don't writing new foobar2000 visualization components (which BTW is probably written in C++) is harder to make than WebAudio API visualizations that either use AudioWorklet or doesn't use AnalyserNode's built-in FFT at all (as either two can be easily ported to ones that doesn't use Web Audio API but still has an API to pull raw PCM data from currently-playing audio)?

BTW, does @LUR have any interests to implement an API function to allow JS panels to get waveform data from foobar2000 for realtime audio analysis purposes not covered by any native foobar2000 visualization components?
Web View component would also be a great host for further experiments.
Any JS-enabling components that has an API to pull audio data (just the raw waveform data is enough since we can implement basically anything like spectrum analyzers, LUFS meters from waveform data alone) from fb2k should work
7
3rd Party Plugins - (fb2k) / Re: JSplitter (splitter + SMP x64 alternative)
Last post by regor -
A panel may be processing on background, but not painting. I differentiate both because some particular scripts delay processing during painting (seekbars for ex.).

You can check if a panel is visible with:
https://theqwertiest.github.io/foo_spider_monkey_panel/assets/generated_files/docs/html/window.html#.IsVisible

How to implement that on an actual script, obviously varies a lot. There is no callback to check when the panel visibility changes, so you either use an interval on the background or some clever trick.

As an example, for my timeline script which displays charts... I could add a check for window.IsVisible, so whenever it's false, there is no processing. Then at on_paint callback, I could check if there is data already calculated, otherwise calculate it. That would account to what happens when the panel was initially hidden and I open it at a later point, there would be no data but I force it at that point. Obviously that implies a performance penalty when switching visibility, but you gain performance when it's hidden. (library tree for ex is always being processed on the background even if not used)


Code: [Select]
const myData = [];

function calcData() {
     myData.length = 0;
     myData.push('this is data')
     .... // data code
}

function on_item_focus_change() {
     if (window.IsVisible) {
          calcData();
     } else {
          myData.length = 0;
     }
}

function on_paint() {
     if (!myData.length) {calcData()}
     .... // Paint code
}
8
CD Hardware/Software / Re: Figuring out an DISC's offset ?
Last post by Feilakas -
Interesting tool, it archives subchannel too?
Indeed it does: https://github.com/superg/redumper

Quote
Subchannel data is stored uncorrected RAW (multiplexed). Both TOC based and Subchannel Q based splits are supported, subchannel Q is corrected in memory and never stored on disk.

If you're feeling super paranoid you can even retain the "raw" dump file "scram" which contains 99% of the disc's information (the rest being stored in MUCH smaller files which is always a good idea to preserve).
Normally, the scram file is used as the base for "splitting" the image files (bins & cue).

However, it is a command-line tool so I use it together with "MPF", a front-end tool, designed for archiving optical-based games but works for audio-cds just fine.