HydrogenAudio

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: E.Sokol on 2015-12-18 10:02:52

Title: Linear Phase Subwoofer
Post by: E.Sokol on 2015-12-18 10:02:52
Please try this plugin with different parameters and feedback your experiences.

Features:
- fast fir processing
- adjustable slope with linear phase
- delay control
- mono, stereo, 3.0, 4.0, 5.0 input support

Download here (https://foobar2000.org/components/view/foo_dsp_subwoofer)
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-02-05 12:37:53
new in version 1.1.0 :
- adding 3 continuous filters;
- increased the size of the chart window.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-05-06 10:13:19
new in version 1.2.0:
- adding "Edge" filter slope as "Gaussian" with Gamma=0.5;
- adding "Circular" filter slope;
- change "Gamma" parameter range to 1 .. 2.5
Title: Re: Linear Phase Subwoofer
Post by: MaCs on 2016-05-06 21:00:41
Could you give more information please? I don't understand how to use it. I'm not even sure about what it is supposed to do.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-05-07 18:00:22
This plugin extracts bass from the source signal using low-pass filter and send it to the separate channel (LFE).
It can be useful if you have 2.1 or 5.1 audio system.
Standard realization of this task used IIR or analog filters, which fast, but produce phase shifting.
The high-quality filtering needs linear-phase characteristic, which can be achieved only by using digital FIR filter.
This plugin also allows to use various type of filters, not only Linkwitz-Riley, which often using for split frequences. The filter slopes builds using piecewise functions in logarithmic scale. If you need a Linkwitz-Riley filter, select "HyperTangent" - their slopes are identical.
Title: Re: Linear Phase Subwoofer
Post by: Chibisteven on 2016-05-07 21:47:31
Component crashes when clicking on the configure selected in the DSP Manager.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-05-08 20:54:38
Chibisteven, is it first install or after previous version?
Title: Re: Linear Phase Subwoofer
Post by: Chibisteven on 2016-05-09 09:22:59
Chibisteven, is it first install or after previous version?

First install.
Title: Re: Linear Phase Subwoofer
Post by: Chibisteven on 2016-05-10 03:24:32
Find the problem.  The plugin conflicts with Winamp Bridge (which I seldomly use) resulting in crashes.
Title: Re: Linear Phase Subwoofer
Post by: Chibisteven on 2016-05-10 03:48:05
Conflict with Matrix Mixer (foo_dsp_mm) also found (this one I use a lot) and if in the DSP Chain with your Subwoofer plugin and you seek a song using the progress bar it results in a crash.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-05-10 07:08:46
Chibisteven, thanks for it. I try to reproduce this crash first.
According to your failure report, crash raised when logarithm function calculated.
Even if the argument is illegal,  foobar not crashed on my pc.
 I can try to use another math lib.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-05-10 15:25:23
Chibisteven, on my Win8.1 with Foobar 1.3.10 any combination of Subwoofer / Matrix Mixer / Winamp DSP Bridge works well, no any conflict found.
May be problem plugin is not mine.
Did you can send me a full content of your "foobar2000" folder, including "C:\Users\...\AppData\Roaming\foobar2000"?
Title: Re: Linear Phase Subwoofer
Post by: Chibisteven on 2016-05-10 18:00:19
Check your Private Messages.

I'm running a fresh install of Windows 10 Pro - 64 bit on Windows 7 era machine without issues.
Title: Re: Linear Phase Subwoofer
Post by: monocab on 2016-07-14 06:43:37
Please try this plugin with different parameters and feedback your experiences. I used my own formula to generate the frequency response, and I'm interested in opinion from other people.

Features:
- fast fir processing
- adjustable slope with linear phase
- mono, stereo, triple and quadro input support
- double bass array output support

Download here (https://www.hydrogenaud.io/forums/index.php?showtopic=110849)


Hi, Thanks so much for your work,  I was looking for a plugin like this, I had to disable Resampler(PPHS) to avoid foobar  crashes when changing songs.
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2016-08-07 23:02:01
I just tried this today, it worked great.  I'm using the SoX resampler before it with no issues.  One feature that I'd like to see is the option not to high pass the main channels.  I typically run my main speakers full range and low pass the subs.

Thanks for a great component!
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2016-08-08 13:13:23
I have a couple more feature requests that would really make this easy to use and set up:


OK, more than a couple.  The first two in particular would allow you to dial in the system from your listening chair as well as providing greater flexibility for sub placement.

Thanks for any consideration you may give to these.
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2016-08-09 00:17:47
Someone pointed out to me on another thread that you can save DSP chains so the request for the plugin to remember settings goes away.  One down!
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2016-08-15 15:48:50
I've been using this component for a little over a week on two different PCs and I have to say that I'm getting the best sub/main integration I've ever had.  Sound quality seems unchanged, no glitches or issues of any kind.

I tried using channel mixer component to adjust the level and delay of the LFE channel but Foobar crashed as soon as I tried to view the DSP window.  Reporting the incident gave the message that channel mixer was a known buggy component so it got promptly removed.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-08-15 18:02:08
xsdaver, thanks for your feedback! I will add the ability for LFE delay and disable high-pass filtering a bit later.
I think, the LFE digital level control is not good idea, because for prevent clipping it can be only quiet.
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2016-08-15 18:17:19
Thanks for the reply.  The ability to adjust the LFE level relative to the main channels is pretty important for me.  In my case, I'm driving three subwoofers.  While I can adjust the level of each, each is independent so I will either have to match them every time I adjust the overall LFE level or live with them at different levels.  In the end, this may not be all that big a deal if they are close, but I'd prefer to have them as close as possible.  If I can go through the exercise of matching the level of the three together once and then adjust the overall level through the software it works out much better, at least for me.

If clipping is a concern, perhaps the ability to attenuate both the LFE and main channel is the best way to go.  Thoughts?
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2016-08-27 19:50:14
I was getting set up to balance the subs and mains.  I had generated a pink noise track in Audacity so I can play it through FooBar and have it processed like a music track.  Only FooBar with this subwoofer component separates the bass so I can send the bass to LFE outputs.  If this component is loaded in the DSP stack only bass comes out.  If I remove it, the mains work, but of course no bass.  It is the only active DSP.  I'm baffled.  Any suggestions?
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-08-28 17:34:20
I was getting set up to balance the subs and mains.  I had generated a pink noise track in Audacity so I can play it through FooBar and have it processed like a music track.  Only FooBar with this subwoofer component separates the bass so I can send the bass to LFE outputs.  If this component is loaded in the DSP stack only bass comes out.  If I remove it, the mains work, but of course no bass.  It is the only active DSP.  I'm baffled.  Any suggestions?
Sorry, but i can't understand what your problem.
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2016-08-28 17:45:34
If I play a track that is pink noise, nothing comes out of left and right, only the LFE channel has the noise.  The LFE channel noise is filtered so it is only the low frequencies and seems to be getting through the plug-in correctly.  There is no sound coming out of the main left and right speakers.  With music it works great, with noise nothing out of left and right.  If I take the subwoofer plug-in out of the DSP stack the left and right work, but of course no subwoofer.

You can download the noise file I used here;
http://www.xsxpress.net/files/pinknoise.zip (http://www.xsxpress.net/files/pinknoise.zip)

or create one with Audacity, or I'm sure there are plenty on the web if you don't happen to have one.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-08-28 19:13:50
Your file "Pink Noise 96kHz -0_8.flac" is mono. On mono files, plugin produce two-channels output - one center and one subwoofer. You have not sound at left and right speakers because it sounds at center speaker. To solve this, convert input signal to stereo before subwoofer plugin.
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2016-08-28 19:29:18
I figured if I did not have the create center channel box checked it would not create a center channel.  Apparently it does?  Now that I know what it is doing I can route the center channel to left and right to get the output I'm looking for.
Title: Re: Linear Phase Subwoofer
Post by: senjacob on 2016-12-21 18:06:23
Hi, I am using foobar v1.3.9 because later versions does not load most of the VST plugins correctly.
When I'm using the subwoofer component(v1.2.0) along with any of the DSP components (Dolby headphone, DTS Neural, or Channel mixer) foobar crashes when I seek with the playback position.

I am not able to attach failure log file here! I will give the details in next post
-------------------
failure_00000006.txt (28.70 KB) 0%
> failure_00000006.txt : The post data is missing. This error could be caused by trying to submit a file larger than allowed by the server. Please contact your administrator if this problem continues.
Restrictions: 16 per post, maximum total size 40,960 KB, maximum individual size 40,960 KB
--------------------
Title: Re: Linear Phase Subwoofer
Post by: senjacob on 2016-12-21 18:08:08
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 6EACBAC3h
Access violation, operation: read, address: 00000000h

Call path:
playback_process entry=>dsp::flush

Code bytes (6EACBAC3h):
6EACBA83h:  64 89 0D 00 00 00 00 59 5F 5E 5B 8B E5 5D C2 0C
6EACBA93h:  00 5B B8 AC 6E 86 B8 AC 6E AD B8 AC 6E D4 B8 AC
6EACBAA3h:  6E CC CC CC CC CC CC CC CC CC CC CC CC C2 04 00
6EACBAB3h:  CC CC CC CC CC CC CC CC CC CC CC CC CC 8B 49 10
6EACBAC3h:  8B 01 8B 50 04 FF E2 CC CC CC CC CC CC DD 81 88
6EACBAD3h:  00 00 00 C3 CC CC CC CC CC CC CC CC CC 53 8B D8
6EACBAE3h:  33 C0 C7 43 04 00 00 00 00 E8 4F 08 00 00 5B C3
6EACBAF3h:  CC CC CC CC CC CC CC CC CC CC CC CC CC 55 8B EC

Stack (0AA6F4E8h):
0AA6F4C8h:  0284E288 0AA6F4F8 0AA6F4E0 7136288C
0AA6F4D8h:  005292F4 0284E308 0AA6F508 004DFF70
0AA6F4E8h:  004DFF7C 02855340 02860940 0284E308
0AA6F4F8h:  00000016 0AA6FDD0 004F4E6C 00000001
0AA6F508h:  0AA6F518 00455221 00000000 02855340
0AA6F518h:  0AA6FDDC 0045682B 00000000 02860698
0AA6F528h:  02860AB4 77940B7D 000007A0 0000000A
0AA6F538h:  0AA6F5A4 0AA6F650 0101F590 536CD652
0AA6F548h:  0000017C 00A20001 000000EC 00000002
0AA6F558h:  000007A0 530772E6 0AA6F5D4 77940D5B
0AA6F568h:  0AA6F650 0AA6F600 0AA6F5A8 0AA6F5A4
0AA6F578h:  0AA6F598 0AA6F590 0AA6F72C 0AA6F6B8
0AA6F588h:  0AA6F6E8 0AA6F64C 000007A0 00000000
0AA6F598h:  00A2174C 00000000 00000000 536CD652
0AA6F5A8h:  00000001 00000000 FEF7B000 FF0CA000
0AA6F5B8h:  00000018 00000003 00000000 00000002
0AA6F5C8h:  00000003 00000002 00D23C28 0AA6F694
0AA6F5D8h:  779413E8 00000003 00000000 00000002
0AA6F5E8h:  0AA6F650 0AA6F600 0AA6F8A8 00000000
0AA6F5F8h:  7794144D 0AA6F8A8 00000040 00000000

Registers:
EAX: 6EAD6B38, EBX: 02860698, ECX: 00000000, EDX: 00000002
ESI: 0284E308, EDI: 0284E288, EBP: 0AA6F508, ESP: 0AA6F4E8

Crash location:
Module: foo_dsp_subwoofer
Offset: BAC3h

Loaded modules:
foobar2000                      loaded at 003D0000h - 0059F000h
ntdll                            loaded at 77900000h - 77A68000h
KERNEL32                        loaded at 760B0000h - 761F0000h
KERNELBASE                      loaded at 753A0000h - 7546F000h
COMCTL32                        loaded at 71D90000h - 71F75000h
WINMM                            loaded at 752A0000h - 752C0000h
DSOUND                          loaded at 720E0000h - 72159000h
SHLWAPI                          loaded at 777E0000h - 77821000h
UxTheme                          loaded at 72820000h - 728FC000h
USER32                          loaded at 77680000h - 777D0000h
GDI32                            loaded at 75820000h - 75928000h
ADVAPI32                        loaded at 75470000h - 754E7000h
SHELL32                          loaded at 764D0000h - 77671000h
ole32                            loaded at 762B0000h - 763BB000h
zlib1                            loaded at 62E80000h - 62E9F000h
shared                          loaded at 71360000h - 7138D000h
CRYPT32                          loaded at 75970000h - 75AEF000h
Secur32                          loaded at 75290000h - 75299000h
gdiplus                          loaded at 75D80000h - 75ECD000h
WINHTTP                          loaded at 712C0000h - 71354000h
msvcrt                          loaded at 761F0000h - 762AE000h
WINMMBASE                        loaded at 75250000h - 75270000h
POWRPROF                        loaded at 72490000h - 724CE000h
combase                          loaded at 75ED0000h - 7601E000h
sechost                          loaded at 75CB0000h - 75CEE000h
RPCRT4                          loaded at 75B00000h - 75BB1000h
imagehlp                        loaded at 75C40000h - 75C52000h
dbghelp                          loaded at 70D50000h - 70E98000h
COMDLG32                        loaded at 75CF0000h - 75D77000h
MSASN1                          loaded at 75AF0000h - 75AFE000h
cfgmgr32                        loaded at 75930000h - 7596A000h
DEVOBJ                          loaded at 72900000h - 7291F000h
SspiCli                          loaded at 75330000h - 7534D000h
SHCORE                          loaded at 727A0000h - 72817000h
CRYPTBASE                        loaded at 75320000h - 75329000h
bcryptPrimitives                loaded at 752C0000h - 75311000h
IMM32                            loaded at 75C00000h - 75C25000h
MSCTF                            loaded at 754F0000h - 755E7000h
kernel.appcore                  loaded at 738F0000h - 738F9000h
dwmapi                          loaded at 72720000h - 72739000h
foo_benchmark                    loaded at 71280000h - 712B4000h
foo_discogs                      loaded at 10000000h - 100AB000h
foo_uie_elplaylist              loaded at 71200000h - 71273000h
foo_whatsnew                    loaded at 02640000h - 02683000h
foo_psf                          loaded at 71130000h - 711FE000h
foo_uie_console                  loaded at 00CB0000h - 00CD1000h
foo_uie_biography                loaded at 710D0000h - 71128000h
foo_input_dsdiff                loaded at 03F90000h - 03FBD000h
foo_dsp_mm                      loaded at 03FC0000h - 04001000h
MSIMG32                          loaded at 72660000h - 72666000h
foo_dsp_meiercf                  loaded at 723D0000h - 723ED000h
foo_input_syntrax                loaded at 710A0000h - 710CF000h
foo_ui_classic                  loaded at 04030000h - 04085000h
foo_input_ht                    loaded at 70F90000h - 71092000h
foo_input_std                    loaded at 70BF0000h - 70D4B000h
MSACM32                          loaded at 70F70000h - 70F85000h
avcodec-fb2k-56                  loaded at 70A10000h - 70BEE000h
avutil-fb2k-54                  loaded at 70EE0000h - 70F6A000h
foo_dsp_fakegapless              loaded at 70EB0000h - 70ED1000h
foo_play_next                    loaded at 709F0000h - 70A0D000h
foo_unpack                      loaded at 709A0000h - 709EC000h
foo_stop_on_current              loaded at 70980000h - 7099C000h
foo_dsp_tube                    loaded at 04110000h - 04136000h
foo_input_adplug                loaded at 708B0000h - 7097D000h
foo_snesapu                      loaded at 04140000h - 0416F000h
foo_tfsandbox                    loaded at 70860000h - 708A2000h
foo_dsp_atsurround              loaded at 70770000h - 70856000h
cudart                          loaded at 041B0000h - 041FA000h
cufft                            loaded at 04770000h - 04FB5000h
MSVCR90                          loaded at 706C0000h - 70763000h
msvcm90                          loaded at 70670000h - 706B3000h
mscoree                          loaded at 751A0000h - 751F6000h
mscoreei                        loaded at 75120000h - 7519E000h
mscorwks                        loaded at 700C0000h - 7066F000h
MSVCR80                          loaded at 70020000h - 700BB000h
profapi                          loaded at 75200000h - 7520E000h
mscorlib.ni                      loaded at 6F520000h - 70019000h
mscorjit                        loaded at 6F4C0000h - 6F51B000h
CRYPTSP                          loaded at 738D0000h - 738E8000h
rsaenh                          loaded at 738A0000h - 738CF000h
bcrypt                          loaded at 73880000h - 7389D000h
foo_input_kdm                    loaded at 6F490000h - 6F4B6000h
foo_lock                        loaded at 071B0000h - 071C9000h
foo_lunar2                      loaded at 6F460000h - 6F483000h
foo_input_qsf                    loaded at 6F410000h - 6F45D000h
foo_onewaysync                  loaded at 07550000h - 07991000h
OLEAUT32                        loaded at 76440000h - 764C7000h
WINSPOOL                        loaded at 72740000h - 7279E000h
OLEACC                          loaded at 6F3C0000h - 6F408000h
oledlg                          loaded at 726F0000h - 7270D000h
foo_abx                          loaded at 6F370000h - 6F3BC000h
foo_input_ym                    loaded at 07230000h - 0725A000h
foo_input_gsf                    loaded at 6F320000h - 6F369000h
libmgba                          loaded at 6F2B0000h - 6F31C000h
foo_input_org                    loaded at 6F280000h - 6F2A8000h
foo_cdda                        loaded at 6F220000h - 6F271000h
foo_midi                        loaded at 6F000000h - 6F214000h
BASS                            loaded at 6EFB0000h - 6F000000h
BASSMIDI                        loaded at 6EF70000h - 6EFA8000h
foo_freedb2                      loaded at 6EF20000h - 6EF70000h
foo_out_wasapi                  loaded at 07420000h - 07449000h
foo_uie_albumlist                loaded at 07460000h - 074A9000h
foo_dsp_prvb                    loaded at 07510000h - 0753B000h
foo_queuecontents                loaded at 079A0000h - 07A0E000h
foo_wave_seekbar                loaded at 6ED70000h - 6EF19000h
WS2_32                          loaded at 75C60000h - 75CAD000h
PSAPI                            loaded at 75600000h - 75606000h
IPHLPAPI                        loaded at 6E130000h - 6E14E000h
MSVCP120                        loaded at 6ECF0000h - 6ED61000h
MSVCR120                        loaded at 6EC00000h - 6ECEE000h
NSI                              loaded at 777D0000h - 777D7000h
WINNSI                          loaded at 72460000h - 72468000h
mswsock                          loaded at 72610000h - 72655000h
foo_asap                        loaded at 6EBB0000h - 6EBFC000h
foo_sid                          loaded at 6CFE0000h - 6E123000h
foo_sqlite                      loaded at 08150000h - 0828B000h
foo_masstag                      loaded at 07AF0000h - 07B44000h
foo_dsp_multiresampler          loaded at 07B60000h - 07BAB000h
foo_input_dts                    loaded at 6EB40000h - 6EBAE000h
foo_input_aopsf                  loaded at 6EAE0000h - 6EB38000h
foo_random_pools                loaded at 07BD0000h - 07C08000h
foo_dsp_subwoofer                loaded at 6EAC0000h - 6EADD000h
MSVCP100                        loaded at 72680000h - 726E9000h
MSVCR100                        loaded at 71F80000h - 7203F000h
foo_r128norm                    loaded at 6EA90000h - 6EABB000h
foo_ui_std                      loaded at 6E980000h - 6EA8E000h
foo_playcount                    loaded at 6E940000h - 6E97E000h
foo_uie_lyrics3                  loaded at 083C0000h - 0847B000h
WININET                          loaded at 72BB0000h - 72D73000h
iertutil                        loaded at 72990000h - 72BA5000h
foo_ac3                          loaded at 6E900000h - 6E931000h
foo_hdcd                        loaded at 6E8C0000h - 6E900000h
foo_uie_wsh_panel_mod            loaded at 6E7D0000h - 6E8BC000h
foo_out_asio                    loaded at 08480000h - 084B2000h
foo_out_upnp                    loaded at 6E760000h - 6E7C3000h
foo_uie_esplaylist              loaded at 6E6F0000h - 6E75A000h
foo_input_tak                    loaded at 6E6A0000h - 6E6E6000h
tak_deco_lib                    loaded at 08530000h - 08551000h
foo_input_vgmstream              loaded at 6E500000h - 6E692000h
libvorbis                        loaded at 6E4C0000h - 6E4FE000h
libmpg123-0                      loaded at 6E470000h - 6E4B1000h
libg7221_decode                  loaded at 6E440000h - 6E465000h
libg719_decode                  loaded at 6E410000h - 6E433000h
at3plusdecoder                  loaded at 6E3A0000h - 6E40E000h
avcodec-vgmstream-57            loaded at 6CB10000h - 6CFD9000h
avformat-vgmstream-57            loaded at 6E300000h - 6E396000h
avutil-vgmstream-55              loaded at 6E240000h - 6E2F3000h
foo_dsp_effect                  loaded at 08640000h - 08687000h
foo_input_monkey                loaded at 087D0000h - 08818000h
foo_unpack_lha                  loaded at 6E210000h - 6E233000h
foo_input_avs                    loaded at 6E1F0000h - 6E20F000h
foo_nds                          loaded at 6E1D0000h - 6E1EC000h
foo_playlisthistory              loaded at 08890000h - 088BF000h
foo_albumlist                    loaded at 6E170000h - 6E1CB000h
foo_stop_on_error                loaded at 6E150000h - 6E16B000h
foo_input_vio2sf                loaded at 6CA70000h - 6CB02000h
foo_telnetd                      loaded at 6CA40000h - 6CA68000h
foo_rgscan                      loaded at 6C9D0000h - 6CA31000h
foo_input_hvl                    loaded at 6C930000h - 6C9C2000h
foo_devconsole                  loaded at 6C900000h - 6C923000h
foo_uie_vis_channel_spectrum    loaded at 08A20000h - 08A5D000h
foo_dsp_xgeq                    loaded at 6C8C0000h - 6C8FC000h
foo_AdvancedControls            loaded at 6C860000h - 6C8B4000h
SETUPAPI                        loaded at 75610000h - 757BC000h
foo_channel_mixer                loaded at 6C820000h - 6C85F000h
foo_vst                          loaded at 6C7C0000h - 6C814000h
foo_stop_after_queue            loaded at 6C7A0000h - 6C7BB000h
foo_quicksearch                  loaded at 6C740000h - 6C797000h
WindowsCodecs                    loaded at 71C40000h - 71D8D000h
foo_input_tfmx                  loaded at 6C710000h - 6C737000h
foo_input_exe                    loaded at 6C6D0000h - 6C710000h
foo_dumb                        loaded at 6C5D0000h - 6C6C8000h
foo_osd                          loaded at 6C590000h - 6C5C4000h
foo_converter                    loaded at 6C500000h - 6C588000h
foo_dsp_std                      loaded at 6C4B0000h - 6C4F2000h
foo_input_usf                    loaded at 6C420000h - 6C4AC000h
foo_uie_sql_tree                loaded at 091D0000h - 0926D000h
foo_dsp_dolbyhp                  loaded at 6C3F0000h - 6C414000h
VERSION                          loaded at 72920000h - 72928000h
foo_input_v2m                    loaded at 6C3B0000h - 6C3F0000h
foo_unpack_unix                  loaded at 6C380000h - 6C3A7000h
foo_dsp_span                    loaded at 6C350000h - 6C37E000h
foo_dsp_silence                  loaded at 6C300000h - 6C34C000h
foo_input_ncsf                  loaded at 6C190000h - 6C2F2000h
foo_dsp_eq                      loaded at 6C150000h - 6C187000h
foo_fileops                      loaded at 6C100000h - 6C14E000h
foo_adpcm                        loaded at 6C0A0000h - 6C0FB000h
foo_skip                        loaded at 6C060000h - 6C099000h
foo_out_ks                      loaded at 08F80000h - 08FAA000h
frontend_direct2d                loaded at 6BC40000h - 6BC81000h
d2d1                            loaded at 09AF0000h - 09EB4000h
frontend_direct3d9              loaded at 6BBF0000h - 6BC40000h
d3d9                            loaded at 6BA30000h - 6BBE8000h
d3dx9_42                        loaded at 6B840000h - 6BA25000h
SciLexer                        loaded at 6B790000h - 6B832000h
clbcatq                          loaded at 763C0000h - 7643D000h
MMDevApi                        loaded at 72090000h - 720D8000h
AUDIOSES                        loaded at 715F0000h - 71644000h
sud                              loaded at 6B6F0000h - 6B784000h
PROPSYS                          loaded at 714C0000h - 715E4000h
ADVPACK                          loaded at 6B6C0000h - 6B6EC000h
DUI70                            loaded at 6B570000h - 6B6BB000h
dhcpcsvc6                        loaded at 6B550000h - 6B562000h
dhcpcsvc                        loaded at 6B530000h - 6B543000h
sxs                              loaded at 6B4B0000h - 6B52B000h
avrt                            loaded at 6B330000h - 6B339000h
dolbyhph                        loaded at 0AC70000h - 0AD88000h

Stack dump analysis:
Address: 004DFF7Ch (foobar2000+10FF7Ch)
Address: 004F4E6Ch (foobar2000+124E6Ch)
Address: 00455221h (foobar2000+85221h)
Address: 0045682Bh (foobar2000+8682Bh)
Address: 77940B7Dh (ntdll+40B7Dh), symbol: "bsearch" (+1F9h)
Address: 77940D5Bh (ntdll+40D5Bh), symbol: "RtlFindActivationContextSectionString" (+1BBh)
Address: 779413E8h (ntdll+413E8h), symbol: "RtlDosApplyFileIsolationRedirection_Ustr" (+3F6h)
Address: 7794144Dh (ntdll+4144Dh), symbol: "RtlDosApplyFileIsolationRedirection_Ustr" (+45Bh)
Address: 6B81696Ch (SciLexer+8696Ch), symbol: "Scintilla_DirectFunction" (+58AA2h)
Address: 77941778h (ntdll+41778h), symbol: "RtlFindCharInUnicodeString" (+31Bh)
Address: 779FB73Ch (ntdll+FB73Ch), symbol: "NlsAnsiCodePage" (+2710h)
Address: 779903F1h (ntdll+903F1h), symbol: "wcstombs" (+87h)
Address: 77941F94h (ntdll+41F94h), symbol: "LdrGetDllHandleEx" (+390h)
Address: 6B81696Ch (SciLexer+8696Ch), symbol: "Scintilla_DirectFunction" (+58AA2h)
Address: 77941FD4h (ntdll+41FD4h), symbol: "LdrGetDllHandleEx" (+3D0h)
Address: 0054004Eh (foobar2000+17004Eh)
Address: 004C0044h (foobar2000+F0044h)
Address: 004C0044h (foobar2000+F0044h)
Address: 0054004Eh (foobar2000+17004Eh)
Address: 004C0044h (foobar2000+F0044h)
Address: 004C0044h (foobar2000+F0044h)
Address: 6B81696Ch (SciLexer+8696Ch), symbol: "Scintilla_DirectFunction" (+58AA2h)
Address: 77941BCBh (ntdll+41BCBh), symbol: "RtlWow64EnableFsRedirectionEx" (+280h)
Address: 77941B2Ch (ntdll+41B2Ch), symbol: "RtlWow64EnableFsRedirectionEx" (+1E1h)
Address: 00528F70h (foobar2000+158F70h)
Address: 7794250Fh (ntdll+4250Fh), symbol: "LdrGetProcedureAddressForCaller" (+1ABh)
Address: 10000010h (foo_discogs+10h)
Address: 00528F70h (foobar2000+158F70h)
Address: 6B805E00h (SciLexer+75E00h), symbol: "Scintilla_DirectFunction" (+47F36h)
Address: 6B805417h (SciLexer+75417h), symbol: "Scintilla_DirectFunction" (+4754Dh)
Address: 6B805486h (SciLexer+75486h), symbol: "Scintilla_DirectFunction" (+475BCh)
Address: 6B790000h (SciLexer+0h)
Address: 6B80550Fh (SciLexer+7550Fh), symbol: "Scintilla_DirectFunction" (+47645h)
Address: 6B805510h (SciLexer+75510h), symbol: "Scintilla_DirectFunction" (+47646h)
Address: 6B805E00h (SciLexer+75E00h), symbol: "Scintilla_DirectFunction" (+47F36h)
Address: 6B80550Fh (SciLexer+7550Fh), symbol: "Scintilla_DirectFunction" (+47645h)
Address: 6B80552Eh (SciLexer+7552Eh), symbol: "Scintilla_DirectFunction" (+47664h)
Address: 6B790000h (SciLexer+0h)
Address: 00528F70h (foobar2000+158F70h)
Address: 77900000h (ntdll+0h)
Address: 7793BBACh (ntdll+3BBACh), symbol: "NtWaitForMultipleObjects" (+Ch)
Address: 753ADC1Ah (KERNELBASE+DC1Ah), symbol: "DuplicateHandle" (+80h)
Address: 753ADC37h (KERNELBASE+DC37h), symbol: "DuplicateHandle" (+9Dh)
Address: 00521130h (foobar2000+151130h)
Address: 752C116Dh (bcryptPrimitives+116Dh)
Address: 04C3818Ah (cufft+4C818Ah), symbol: "cufftSetStream" (+4C680Ah)
Address: 04C38A45h (cufft+4C8A45h), symbol: "cufftSetStream" (+4C70C5h)
Address: 00521180h (foobar2000+151180h)
Address: 760D4C3Dh (KERNEL32+24C3Dh), symbol: "PowerCreateRequest" (+0h)
Address: 760D5026h (KERNEL32+25026h), symbol: "PowerSetRequest" (+0h)
Address: 760D5092h (KERNEL32+25092h), symbol: "PowerClearRequest" (+0h)
Address: 753D9535h (KERNELBASE+39535h), symbol: "OutputDebugStringA" (+11Eh)
Address: 7768961Bh (USER32+961Bh), symbol: "MsgWaitForMultipleObjectsEx" (+159h)
Address: 00502262h (foobar2000+132262h)
Address: 004561A9h (foobar2000+861A9h)
Address: 77689293h (USER32+9293h), symbol: "MsgWaitForMultipleObjects" (+1Fh)
Address: 0050227Ch (foobar2000+13227Ch)
Address: 00456161h (foobar2000+86161h)
Address: 0050228Bh (foobar2000+13228Bh)
Address: 004560C8h (foobar2000+860C8h)
Address: 004F3B85h (foobar2000+123B85h)
Address: 004E2FF3h (foobar2000+112FF3h)
Address: 004E6410h (foobar2000+116410h)
Address: 004E307Dh (foobar2000+11307Dh)
Address: 760CA534h (KERNEL32+1A534h), symbol: "BaseThreadInitThunk" (+Eh)
Address: 77948F8Bh (ntdll+48F8Bh), symbol: "RtlInitializeExceptionChain" (+84h)
Address: 75458C53h (KERNELBASE+B8C53h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 779903F1h (ntdll+903F1h), symbol: "wcstombs" (+87h)
Address: 77948F61h (ntdll+48F61h), symbol: "RtlInitializeExceptionChain" (+5Ah)
Address: 7793DAC3h (ntdll+3DAC3h), symbol: "RtlCaptureContext" (+D0h)
Address: 004E3019h (foobar2000+113019h)

Environment:
App: foobar2000 v1.3.9
UI: Default User Interface 0.9.5
...
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2016-12-27 16:07:23
senjacob, please try this (https://foobar2000.org/getcomponent/791b1d4a04f692cac86f01c4b5c2e3d9/6a39c1dfcef4bd9844a25ba512aa5d47/Subwoofer_v1.1.1.fb2k-component) version.
Title: Re: Linear Phase Subwoofer
Post by: ZioFrenko on 2017-07-26 01:38:53
hi, I want to compliment this plugin, really interesting the idea of implementing a linear phase eq ... no professional dsp does it!
i agree with the other request from xsdaver (delay and level for sub) but i wolud to ask you another thing:
I do not know what interfaces you use to have a separate LFE channel, but with professional audio device there is a need to select the physical output of the sound card to have another channel for the subwoofer, otherwise from my L / R outputs I only get a high pass filter ...
So, could you integrate a system to select the interface output to use for the LFE channel?
Title: Re: Linear Phase Subwoofer
Post by: hatrix on 2017-08-11 13:27:22
hi, I want to compliment this plugin, really interesting the idea of implementing a linear phase eq ... no professional dsp does it!
i agree with the other request from xsdaver (delay and level for sub) but i wolud to ask you another thing:
I do not know what interfaces you use to have a separate LFE channel, but with professional audio device there is a need to select the physical output of the sound card to have another channel for the subwoofer, otherwise from my L / R outputs I only get a high pass filter ...
So, could you integrate a system to select the interface output to use for the LFE channel?

I personally use a custom ASIO channel mapping for my DAC. If you're DAC has an ASIO driver and really offers more than one set of outputs, you easily have 2.1 outs. I route LFE to 3/4 for my UR44, and of course 1/2 are L/R to my monitors. The ASIO plugin for foobar will then let you set up the actual mapping.

I also would also  like delay support. Up until today I had been using channel mixer as a subwoofer DSP, setting it to 6 channels and only leaving L/R and LFE checked. It was a bit finicky at times, especially if trying to adjust it while audio is playing....  Anyways, switching back and forth between my (many times perfected) channel mixer settings and your plugin which I set a slope up rather quickly, the response is obviously much better with yours.

Phase is unfortunately way to big for me though, so I'll still stick with channel mixer in until you hopefully add delay.

So I actually want to request two things, first is obviously the delay. The second however, would be individual control of the slopes for both LFE and L/R. Trying to pair my monitors with my sub, it sounds much better if I let them rolloff naturally with no crossover and only set sub. I still want to have a crossover on them though, but really just a subsonic, so rolloff around 35-40hz.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2017-08-16 14:46:24
hi, I want to compliment this plugin
thanks

i agree with the other request from xsdaver (delay and level for sub)
Please try new version (1.3) (https://foobar2000.org/components/view/foo_dsp_subwoofer)

but i wolud to ask you another thing:
I do not know what interfaces you use to have a separate LFE channel, but with professional audio device there is a need to select the physical output of the sound card to have another channel for the subwoofer, otherwise from my L / R outputs I only get a high pass filter ...
So, could you integrate a system to select the interface output to use for the LFE channel?
I not plan to do this yet, for some reasons. But you can use Matrix Mixer (http://skipyrich.com/wiki/Foobar2000:Matrix_Mixer) for this purpose.
Title: Re: Linear Phase Subwoofer
Post by: hatrix on 2017-08-21 02:33:29
New update is great. Definitely the best plugin for subwoofer management. Delay is working fantastic.
Title: Re: Linear Phase Subwoofer
Post by: TheFourthEspada on 2017-09-22 20:41:45
All I get when I start foobar is:

Failed to load DLL: foo_dsp_subwoofer.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000.

I have foobar2000 1.3.16 on Win10 Pro 64bit.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2017-10-02 15:26:10
Make sure that you use official version of foobar. Try to copy  foo_dsp_subwoofer.dll to \foobar2000\components\ folder manually.
Title: Re: Linear Phase Subwoofer
Post by: alex955 on 2017-10-14 16:11:08
Hi,

I installed the plugin and it works great, no more bass in my speakers but... where did they go? I mean, the may sound silly but on what type of output can i get these bass to send them to my woofers?

Thanks in advance
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2017-10-15 05:43:38
alex955
I installed the plugin and it works great, no more bass in my speakers but... where did they go? I mean, the may sound silly but on what type of output can i get these bass to send them to my woofers?
5.1 soundcard have a additional stereo out with center/LFE channels. Subwoofer outputs at LFE channel.
Also check your soundcard mixer - it must be in surround mode, not stereo.
Title: Re: Linear Phase Subwoofer
Post by: alex955 on 2017-10-20 20:15:13
Ok thanks, that's the info i've been missing. Any ideas if this is possible with a secondary soundcard instead of a 5.1 one?
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2017-10-21 12:50:24
Any ideas if this is possible with a secondary soundcard instead of a 5.1 one?
Not possible. No way to synchronize audio from different soundcards.
Title: Re: Linear Phase Subwoofer
Post by: alex955 on 2017-10-21 18:34:08
Ok thanks for all your answers !

Last question, a bit out of context but whil I have experts on the hand... Do you know if it's possible to split the sound from the computer tu 2 different cards: one program on one soundcard and another on on anoher soundcard (I don't need them to be synchronized)
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2017-10-22 07:06:44
Do you know if it's possible to split the sound from the computer tu 2 different cards: one program on one soundcard and another on on anoher soundcard (I don't need them to be synchronized)
Some programs have option for choice output device. If this option not present, they used default device, which selected at Windows Mixer. You can try change default device before each program launch.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2017-11-04 07:16:00
Failed to load DLL: foo_dsp_subwoofer.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000.
Install Microsoft Visual C++ 2010 Redistributable Package (https://www.microsoft.com/en-US/download/details.aspx?id=5555) and Visual C++ Redistributable for Visual Studio 2012 (https://www.microsoft.com/en-US/download/details.aspx?id=30679) (x86).
Title: Re: Linear Phase Subwoofer
Post by: hatrix on 2018-02-06 12:54:40
I was wondering if you could possibly make it so that you are able to set a separate crossover point for both LFE and mains, that way I can roll off my mains a bit lower than I actually crossover my sub. Say I cross my sub over at 80hz, I'm usually not happy with cutting so much low end from my studio monitors. Crossing over the sub as high as 80hz has typically helped me with nulls, so I would prefer to disable the HPF, but I still want to cut below ~50hz from my monitors. This gives me a lot more headroom and way less distortion at higher volumes.

Also, adding a simple subsonic filter for the LFE output would be awesome, that way I don't have to resort to using a VST plugin such as fabfilter pro-q 2 (which is linear phase).
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2018-06-01 14:07:24
Version 2.0 released (https://foobar2000.org/components/view/foo_dsp_subwoofer).
Added independent frequency adjustment; removed DBA support.
Title: Re: Linear Phase Subwoofer
Post by: Sage009 on 2018-06-20 23:42:46
Is there any way to reduce or remove the +6dB boost from adjusting the frequency cutoffs independently?
Title: Re: Linear Phase Subwoofer
Post by: Erratic on 2018-07-11 19:51:50
Download link on official site (and reply #42) is for version 1.4 not 2.0, it been pulled or something?
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2018-07-16 20:38:59
Download link on official site (and reply #42) is for version 1.4 not 2.0, it been pulled or something?
Sorry, it just a little bug - versions 1.4 and 2.0 are identical. Plugin with correct version number uploaded.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2018-07-16 20:42:20
Is there any way to reduce or remove the +6dB boost from adjusting the frequency cutoffs independently?
do not use independent adjustment.
Title: Re: Linear Phase Subwoofer
Post by: lvqcl on 2018-07-17 17:14:06
Quote
Current version
2.0, released on 2018-17-31 (http://www.foobar2000.org/components/view/foo_dsp_subwoofer)

What.
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2018-07-17 19:20:05
Quote
Current version
2.0, released on 2018-17-31 (http://www.foobar2000.org/components/view/foo_dsp_subwoofer)
What.
Time hole)
Title: Re: Linear Phase Subwoofer
Post by: BVM1959 on 2018-08-02 19:43:38
"Failed to load DLL: foo_dsp_subwoofer.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000."

Как это понимать?
What does it mean?
Title: Re: Linear Phase Subwoofer
Post by: Case on 2018-08-03 01:00:24
The component seems to be a Visual Studio 2010 compile and it's set to use dynamic C runtime linking. You need to install https://www.microsoft.com/en-us/download/details.aspx?id=5555 (https://www.microsoft.com/en-us/download/details.aspx?id=5555).
Title: Re: Linear Phase Subwoofer
Post by: Gadgety on 2018-09-19 13:04:22
Hi, Wow, a Linear Phase cross over!! I'm new to Foobar2000 and I've only just installed and opened the app, but this is my first impression: Mindblowing!

What I noticed that I found mindblowing:

* The amazing flexibility and ability to control settings
* Ms delay resolution down to 0.1 ms. Just wow!
* Negative delay - so that sub may be "prelayed"
* 12 different types of cross over filters and with adjustability within each!! Wow!
* Adjustable FIR length in fractions of ms
* Snap back to original settings when unsync/resync - nice safety net when/if I mess things up

Features I found that possibly could be added are:
* Additional names for the filters such as their db/octave or "Linkwitz-Riley" etc
* A dual ms/distance scale for the delay
* A version of delay adjust for when multiple subs are used and they are not equidistant to the main speakers/listener.
* In addition, I understand this is mono signal for the sub channel, could it be made into stereo?

I have a few questions:

If I unsync L/R there will be some influence on the total cross over frequency/timing curve. I guess this influences phase? Will this enable stereo LFE if I have more subs? I have two, and cross them over quite high in the range, so I will need stereo or lower the cross over frequency.

Bass processing is resource intensive. The adjustable FIR lengths, which I assume is the same as "filter taps" (please correct me if I misunderstand) enables a balance between resource usage, the time it takes to process and quality. If I set it to max, the 700 ms, I assume this will render the highest resolution in the bass. Is this correct?

Thank you for this outstanding plug in!!

Title: Re: Linear Phase Subwoofer
Post by: Gadgety on 2018-09-19 14:31:31
Ignore that stereo question. I guess unsyncing L/R could enable off-axis listening?
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2018-09-19 18:34:04
Thank you for this outstanding plug in!!
Hi, thanks for reply - you make me very happy!

Additional names for the filters such as their db/octave or "Linkwitz-Riley" etc
"Linkwitz-Riley" identical to "Classic" filter. I named it to "classic", because it draws by another formula at logarithmic scale and parametrized by another concept. I don`t like db/octave regulator, because it reflect physical realization with discrete steps.

A dual ms/distance scale for the delay
Yes, i think about this.

* A version of delay adjust for when multiple subs are used and they are not equidistant to the main speakers/listener.
* In addition, I understand this is mono signal for the sub channel, could it be made into stereo?
In first versions i made a support of second sub with independent delay and volume, but remove it later. Two reasons: it make using of plugin harder and no one use it. I plan to make independent plugin for this at future, if anybody need it. You can use Matrix Mixer (http://skipyrich.com/wiki/Foobar2000:Matrix_Mixer) (or some another) yet.

If I unsync L/R there will be some influence on the total cross over frequency/timing curve. I guess this influences phase?

Unsync mode is just simple equalization, no other side-effects.

The adjustable FIR lengths, which I assume is the same as "filter taps" (please correct me if I misunderstand) enables a balance between resource usage, the time it takes to process and quality. If I set it to max, the 700 ms, I assume this will render the highest resolution in the bass. Is this correct?

No, more taps no make higher resolution, it needs only for "brickwall" filtering and some peoples who like big taps. 700 ms = 32768 taps at 44.1 kHz samplerate. For example, the impulse response of "Soft" filter at 100Hz with width=2:
(https://lh3.googleusercontent.com/Xmbech9UD1zz9P9AtDe78mWTCCrW-UhDXibOEGiqf9xmXhhhjLfcBiDYOx-92G2Paf8sCgkt7a1iltA5OpBHAvY8puzo9gehPdqzA6FW8NHeXzLVicYsgMD5msgks_fK1qtR5tWQq7Poi0XdqcpVAb6O8E0BU_fsgUd_qTyu7gztll_TMGYCNuHZrVFLmX6zFdrpZN705BoX171l2Y8v_ZVJYjjor1uS2qOBO0XmbmJCEhp9cN3UBBaG2TJOcRLzNRfrp0tqPDHP-KsjajGMudPeBBT70GPRBHtE8XM2TkZJSzJxgtrgBY6-yjsojaTvCH48LN-lvL5HaYyh-Cam8h9NzQHh1tnUApGFnllTZm4g3il3S-4s94clXUckrXIwPDwtJMTAnGJxgiZB43jsyxkKtJqNy5w3e0--OkND280jvsQLmVqMUngUfeezasBHq8iF0fAF4Z55DviFLSHpccYzNfigrw645sAE2pziuEQO_DjhKQd-BfQdzwaapZFCZ0c9F5NVFnPyjMZ0fDBuwBPTSvAh-YQjoZk5PWsOdfoiw-muXLc4Y-XnsUhOLrHDNUUVpOAiqCK4NXgFqDephsa8G73S_tKGDq-9YuRkdfTwCI1dkVFzhmTOTdJ6QQ=w868-h369-no)

(https://lh3.googleusercontent.com/L8k4FhTi3FsFvhKNglsslCPl-GWp0M9uKgHT07y85IvXip7AavMp85jQ8K6C2AzvkWhmCcixLMVc4fjJFI1XpRqCwHPdBPBNrFavTtb0VkgvFJHogXTJaZPjmfZ6iMBtvZGRg8pARKz3tqDUI84dz80ygzarpFuaSeVDXwuR_FZhHmNbnxAWB9nvZsaLqoPvCNGNtRJmUjl6LK8AAEVUtUZO08ocUV1tABF_rqa7U9scsVbVyH1kgOzT6bvSQihlbmZQYlkWQvbPGKqnMa9IT9oGJpwQRNqQ7NHUEzqlowMPvzQzAeK_q34VzXDBliWMRKI4S8SDcUwgy3O8ltQwx7bVBxmU_5R-898rluUJjo1zEX_nnQpfJLL1k3mIaXsT690865dLdiAv72yJFEBnGsR_mhRLhAq7EpdIyIhwKCyxOswWsVAMT6h-_9DxjvBaMvkzVWHXqiQtpb2p7QERpGksbcn7L0l1NJCaYgOkVs5tfZp0Eqem4pkxHAHUsuQpeE7BpQbCB58wolOPiNYbeIfegvaqtaefr1aKuoWG42zxFm3WaxvpZZfb7bObLMtHbR1N_i8QCmopgk7YnFAHo-CKxRFJKBXrxJL30jtRagPvm7LlDzrxv_UT-hT7lQ=w868-h369-no)
Title: Re: Linear Phase Subwoofer
Post by: Gadgety on 2018-09-19 22:48:53
Thank you kindly for the explanatory and rapid reply E. Sokol!

Quote
In first versions i made a support of second sub with independent delay and volume, but remove it later. Two reasons: it make using of plugin harder and no one use it. I plan to make independent plugin for this at future, if anybody need it. You can use Matrix Mixer (http://skipyrich.com/wiki/Foobar2000:Matrix_Mixer) (or some another) yet.

Yes, please do. Bring it back!! I need it!! I use my dual "subs" up to ca 300 Hz and they will need individual alignment with the main speakers. There are other benefits of dual subs, for example when used with room correction software, they can be used to lift the dips in the response, that occur (not the way I have set them up, just to highlight other benefits of multiple subs).

I take the opportunity to return to the stereo question. Since this is built on LFE concept, doest that mean that stereo cannot be created in the dual sub independent plugin?

Thank you also for the Matrix Mixer link. I'll check it out.

I will be eagerly waiting for the dual sub independent plugin!!

Thank you again!
Title: Re: Linear Phase Subwoofer
Post by: Gadgety on 2018-09-20 00:13:31
I have to add, the interface is SO easy to use. Just switching between the curves, setting the frequency, and sliding width it's really, really nice. And fast. A lot of fun to use!
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2018-09-20 15:57:20
I take the opportunity to return to the stereo question. Since this is built on LFE concept, doest that mean that stereo cannot be created in the dual sub independent plugin?
You mean independent LFE for left and right channels?
Title: Re: Linear Phase Subwoofer
Post by: Gadgety on 2018-09-20 19:59:46
Yes, that's what I mean.

BTW, I've never seen so many types of crossovers applied to audio anywhere. I'm looking them up, to find out what their backgrounds are. I'm curious about what made you create this great application, and what your background is. A mathematician?
Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2018-09-21 16:14:12
Yes, that's what I mean.
OK, i think about this.

BTW, I've never seen so many types of crossovers applied to audio anywhere. I'm looking them up, to find out what their backgrounds are. I'm curious about what made you create this great application, and what your background is. A mathematician?
No, i`m not mathematician. Say more: i have not subwoofer even:) Programming, graphics, DSP and mathematics is my hobbies. I have some crazy ideas of non-standard audio processing, and this filters - one of them. My other interests - multichannel stereo splitting using fft, triple (https://hydrogenaud.io/index.php/topic,108040.0.html) and quadro (https://hydrogenaud.io/index.php/topic,108192.0.html) (ancient versions).
Title: Re: Linear Phase Subwoofer
Post by: Gadgety on 2018-09-22 00:10:39
Cool! What, no sub! :-D I really like your creative approach! Graphics - your structure and layout of the subwoofer crossover is great. Really easy to use, great clarity and structure.

 DSP applied to audio is fantastic. I got into it for room correction, almost 20 years ago. Other ways of playing with audio is Ambiophonics, which you may have heard of, multichannel spherical Ambisonics, and binaural Bacch 3D.

Thank you for the triple and quadro links!
Title: Re: Linear Phase Subwoofer
Post by: Gadgety on 2018-09-22 12:00:41
I'm trying to link your crossovers with known names. The classical is a modified Linkwitz-Riley if I remember correctly. I found a few pages of Douglas Self's book on active crossovers online. He names a lot of crossovers by their creators (perhaps you'll be in the next edition). Of your crossovers would you know if any of them correspond with any of the following names (and if so, which):

Le Cleac'h
Kreskovsky
Duelund
Butterworth
Bessel
Harsch

In the book he also discusses the types of crossover filters.

The first distinction Self makes is all pole vs non-pole, where an all poles have montonic roll-offs, meaning that once the response starts going down, it continues down. Non poles may come back up again, as in notch filters. Your filters are all pole.

The next distinction is symmetric  vs asymmetric as in having identical vs non identical slopes of both sides of the crossover. All of your filters are symmetric, showing identical slopes on both sides.

The next distinction Self makes is between all pass vs constant power vs constant voltage filters. All pass is a filter that sums the filter outputs in front of the loudspeaker to create a flat frequency response, aka amplitude, or SPL, or voltage response, on axis. All pass refers to the phase response with the phase of a first order all pass filter changing 180 degrees over the audio band, whereas a second order all pass filter phase changing 360 degrees across the audio band. The constant power crossover output filter sums the filter "...in front of the loudspeaker to create a flat frequency response in terms of power rather than in terms of SPL", that is it sums the total radiated power of both on-axis and off-axis response. This doesn't give a flat on-axis frequency response. The constant voltage crossover filter subtracts the output filter from the input, and when summing dual outputs a reconstructed linear phase waveform response is produced. The constant voltage filter shows a 6dB/octave output, regardless of the filter slope. I believe this is what your filters produce.

Self also discusses first-order crossovers stating that it is the only type that can accomplish linear phase, minimum phase and flat frequency response, hence it is the only type that allows a waveform to be accurately reconstructed when summing a high frequency and low frequency signal paths.  The shallowness of the first-order crossover slope of 6dB/octave requires that the loudspeaker drive elements can handle at least 2-3 octaves above and below the cross over frequency.



Title: Re: Linear Phase Subwoofer
Post by: E.Sokol on 2018-09-24 14:57:00
I'm trying to link your crossovers with known names.
I want to believe that my filters are unique - because all formulas was created by me. They designed as piecewise-defined function (except classic, erf, exponential and gudermannian) at logarithmic scale and named from a used functions names, which connect flat passband and stopband (and symmetric by design). They have not and can`t be have a physical prototypes.

The classical is a modified Linkwitz-Riley if I remember correctly.
Not quite.
Linkwitz–Riley filter can be parametrized only by integer step of roll-off values (12/24/48/etc dB/octave). Classic filter parametrized by required amplitude at cutoff frequency (-40 dB hard coded to have close view to other filters), but intersects with Linkwitz–Riley at some values. For example,
12 db/oct -> width = 6.62936
24 db/oct -> width = 3.31468
48 db/oct -> width = 2.20979
Title: Re: Linear Phase Subwoofer
Post by: Gadgety on 2018-09-27 14:34:28
Ok, thank you! What about this: it looks like all the crossovers, regardless of the filter slope, do cross over at -6dB in your application. Is that the equivalent of this ""The constant voltage filter shows a 6dB/octave output, regardless of the filter slope."?
Title: Re: Linear Phase Subwoofer
Post by: mlopezcol on 2019-01-21 05:42:03
Hi, great plug in!!! Is there any way to just 2.1 audio?  The plugin creates always 5.1?
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2019-04-25 17:21:46
I've been using this plug-in for a while, the improvements through its life have been great.  However, I discovered what I consider to be a bug - it breaks gapless playback.  It took me a while to figure out it was this plug-in, but disabling it restores gapless playback every time.
Title: Re: Linear Phase Subwoofer
Post by: ghostofstevejobs on 2020-10-26 08:25:11
Problem: App crashing immediately at start in the year of our lord 2020.
Failed to load DLL: foo_dsp_subwoofer.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000.
"Failed to load DLL....
Solution:
Install Microsoft Visual C++ 2010 Redistributable Package (https://www.microsoft.com/en-US/download/details.aspx?id=5555) AND Visual C++ Redistributable for Visual Studio 2012 (https://www.microsoft.com/en-US/download/details.aspx?id=30679) (x86).
Worked for me! I thought I had a newer version of these "Redistributables" that superseded these ancient ones from 2010.  I was wrong, they are necessary in this case. I got trigger happy with removing programs one day. As it turns out I have no idea what I'm doing :^) Thank you for the app and fix.

Running: Win10 (x64) v2004 19041.572. foobar 2000 1.6.2 beta 6
Title: Re: Linear Phase Subwoofer
Post by: Excruciarch on 2021-05-12 22:43:49
FYI: Microsoft Visual C++ 2010 Redistributable Package is no longer available for DL. Visual C++ Redistributable for Visual Studio 2012 (x86) is, however, but it does not solve the crash at startup by itself. Unfortunately for me, it is 5/12/2021. After enjoying the use of this DSP, and probably due to Foobar update, for about 2 years now, it won't start. It's amazing how different, in a bad way, on my 2.1, everything sounds. I've become addicted to this awesome little DSP "Subwoofer". Should I make a new thread? Just let go and move on? Cheers!

Failed to load DLL: foo_dsp_subwoofer.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000.
Title: Re: Linear Phase Subwoofer
Post by: Intensiflying on 2021-08-29 22:15:59
FYI: Microsoft Visual C++ 2010 Redistributable Package is no longer available for DL. Visual C++ Redistributable for Visual Studio 2012 (x86) is, however, but it does not solve the crash at startup by itself. Unfortunately for me, it is 5/12/2021. After enjoying the use of this DSP, and probably due to Foobar update, for about 2 years now, it won't start. It's amazing how different, in a bad way, on my 2.1, everything sounds. I've become addicted to this awesome little DSP "Subwoofer". Should I make a new thread? Just let go and move on? Cheers!

Failed to load DLL: foo_dsp_subwoofer.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000.

I too had this problem and fixed it by downloading and installing a redistributables all in one pack. Techpowerup has a pack called Visual C++ Redistributable Runtimes All-in-One. installing these fixed the problem. Hope that helps.
Title: Re: Linear Phase Subwoofer
Post by: sveakul on 2021-08-29 23:40:13
Actually you can now download the VC 2010 x86 redist here: https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe (https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe)

Change the x86 in the link to x64 for the 64-bit version.  Both are digitally signed by M icrosoft.
Title: Re: Linear Phase Subwoofer
Post by: Pelikan on 2021-08-30 13:57:11
Do I need this for better experience?
I have Edifier R1850DB pair + Edifier T5 Sub connected to SoundBlaster AE-5 digital connection (SPDIF) together with FxSound soft.

When Iv activate Subwoofer in Active DSPs Iv lost bass completely...
Some short manual for noobs (Like me) would be  great ;)

p.s. Windows 10 speakers settings - Stereo
Title: Re: Linear Phase Subwoofer
Post by: CitizenInsomniac on 2022-01-26 23:45:27
Some questions about this component:
1. Is there any documentation which describes the various filters available?
2. Are any of the filters considered better than others? Any reason to use anything other than the default filter?
3. When given a multi-channel audio signal as input does the DSP use only FL+FR or does it use all channels to derive the bass frequencies?
4. Are the bass frequencies removed from the input channels or are input channels left untouched?
5. What does L/R sync do?
6. What is the expected LFE channel output volume level relative to the other channels? Are additional volume adjustments typically necessary?

Any or all responses much appreciated. :)
Title: Re: Linear Phase Subwoofer
Post by: CitizenInsomniac on 2022-01-31 04:02:52
Bug report:
It looks like foo_dsp_subwoofer assumes all 5-channel input signals are using a 5.0 channel layout, so it ends up adding an LFE channel even when the input already has a LFE channel. For example, when given a 4.1 input signal (FL, FR, LFE, SL, SR) the DSP remaps the existing LFE channel to FC and generates a new LFE channel. The result is a 5.1 output that contains two LFE channels, one in FC position and another in LFE position.
Title: Re: Linear Phase Subwoofer
Post by: boxerfan88 on 2023-09-12 02:56:00
Hello there, I am new to foo_subwoofer.

I have a question about Source/LFE delay. How do I interpret it?
Does positive number mean source is delayed by # ms? Therefore negative number means LFE is delayed by # ms?

Thank you.
Title: Re: Linear Phase Subwoofer
Post by: xsdaver on 2024-02-21 18:37:07
It looks like this may be an abandoned component.  Any chance it will be ported to work with x64?  Or is there something else that does something similar?  I need a line level stereo crossover at 80 Hz, ideally with a 24dB Linkwitz-Riley slope.