werman / noise-suppression-for-voice

Noise suppression plugin based on Xiph's RNNoise
GNU General Public License v3.0
4.73k stars 228 forks source link

"Open panel" causes Equalizer APO Configuration Editor to crash. #44

Closed YellowOnion closed 2 years ago

YellowOnion commented 4 years ago

Is there some way to control the amount of noise suppression?

werman commented 4 years ago

The only configuration know is VAD threshold (https://github.com/werman/noise-suppression-for-voice/pull/20), it is zero for VST plugin by default and could be tuned, however I don't think anyone tested if this parameter works with Equalizer APO.

Does it at least work if you don't try to change parameters?

YellowOnion commented 4 years ago

Yeah it works, My sound card just has heaps of noise, was hoping to boost it a little. definitely better than ReaFIR VST

werman commented 4 years ago

Does it have any logs, is there anything?

YellowOnion commented 4 years ago

No sorry, just looks like it crashes to desktop. Maybe just a bug in the UI expecting the plugin to have a UI component?

werman commented 4 years ago

I think logs could be found at C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\EqualizerAPO

Maybe just a bug in the UI expecting the plugin to have a UI component?

It may be, but I'd have to spin a windows vm to have a better understanding...

YellowOnion commented 4 years ago

2020-07-17 05:45:09.154 4952 C98F3980 (EqualizerAPO.cpp:245): Failure in IsInputFormatSupported of child apo

I get this message repeatedly but it predates me using this plugin.

PhantomGamers commented 4 years ago

I know this isn't helpful at all but I just wanted to say I'm having the same issue and I couldn't find any useful logs from Equalizer, closest thing I've found is %localappdata%\CrashDumps but the dump only says "The thread tried to read from or write to a virtual address for which it does not have the appropriate access."

Also oddly I don't have this C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\EqualizerAPO folder you mentioned.

githubplanetarparrot commented 4 years ago

I am encountering the same issue.

Version=1 EventType=APPCRASH EventTime=132416461924710150 ReportType=2 Consent=1 UploadTime=132416461927340705 ReportStatus=268435456 ReportIdentifier=686d1137-65bc-4f5f-aa4f-79d558185b3f IntegratorReportIdentifier=1203bbae-013d-418d-9d3d-7979b93fe91f Wow64Host=34404 NsAppName=Editor.exe OriginalFilename=Editor.exe AppSessionGuid=000036d0-0001-0032-ded3-ffa21170d601 TargetAppId=W:0006a3a1efc1618a6ed270fb2ec7f6fae4f800000904!0000b65945b18fdd883a305e834b7df16a0044674c14!Editor.exe TargetAppVer=2019//06//10:11:21:57!0!Editor.exe BootId=4294967295 TargetAsId=379 UserImpactVector=808452912 IsFatal=1 EtwNonCollectReason=1 Response.BucketId=76f6a8ab41912d645ad7cbed312c5035 Response.BucketTable=4 Response.LegacyBucketId=1934238784571592757 Response.type=4 Sig[0].Name=Application Name Sig[0].Value=Editor.exe Sig[1].Name=Application Version Sig[1].Value=1.2.1.0 Sig[2].Name=Application Timestamp Sig[2].Value=5cfe3d55 Sig[3].Name=Fault Module Name Sig[3].Value=Editor.exe Sig[4].Name=Fault Module Version Sig[4].Value=1.2.1.0 Sig[5].Name=Fault Module Timestamp Sig[5].Value=5cfe3d55 Sig[6].Name=Exception Code Sig[6].Value=c0000005 Sig[7].Name=Exception Offset Sig[7].Value=0000000000085612 DynamicSig[1].Name=OS Version DynamicSig[1].Value=10.0.18363.2.0.0.768.101 DynamicSig[2].Name=Locale ID DynamicSig[2].Value=1033 DynamicSig[22].Name=Additional Information 1 DynamicSig[22].Value=a882 DynamicSig[23].Name=Additional Information 2 DynamicSig[23].Value=a882675904241f1cbcf4c28fefb46de9 DynamicSig[24].Name=Additional Information 3 DynamicSig[24].Value=641a DynamicSig[25].Name=Additional Information 4 DynamicSig[25].Value=641ab726d97d72e60412bac19e1ad8f0 UI[2]=P:\Programs\EqualizerAPO\Editor.exe LoadedModule[0]=P:\Programs\EqualizerAPO\Editor.exe LoadedModule[1]=C:\Windows\SYSTEM32\ntdll.dll LoadedModule[2]=C:\Windows\System32\KERNEL32.DLL LoadedModule[3]=C:\Windows\System32\KERNELBASE.dll LoadedModule[4]=C:\Windows\SYSTEM32\apphelp.dll LoadedModule[5]=C:\Windows\System32\SHELL32.dll LoadedModule[6]=C:\Windows\System32\ucrtbase.dll LoadedModule[7]=C:\Windows\System32\cfgmgr32.dll LoadedModule[8]=C:\Windows\System32\shcore.dll LoadedModule[9]=C:\Windows\System32\msvcrt.dll LoadedModule[10]=C:\Windows\System32\RPCRT4.dll LoadedModule[11]=C:\Windows\System32\combase.dll LoadedModule[12]=C:\Windows\System32\bcryptPrimitives.dll LoadedModule[13]=C:\Windows\System32\windows.storage.dll LoadedModule[14]=C:\Windows\System32\msvcp_win.dll LoadedModule[15]=C:\Windows\System32\sechost.dll LoadedModule[16]=C:\Windows\System32\advapi32.dll LoadedModule[17]=C:\Windows\System32\profapi.dll LoadedModule[18]=C:\Windows\System32\powrprof.dll LoadedModule[19]=C:\Windows\System32\UMPDC.dll LoadedModule[20]=C:\Windows\System32\shlwapi.dll LoadedModule[21]=C:\Windows\System32\GDI32.dll LoadedModule[22]=C:\Windows\System32\win32u.dll LoadedModule[23]=C:\Windows\System32\gdi32full.dll LoadedModule[24]=C:\Windows\System32\USER32.dll LoadedModule[25]=C:\Windows\System32\kernel.appcore.dll LoadedModule[26]=C:\Windows\System32\cryptsp.dll LoadedModule[27]=C:\Windows\System32\ole32.dll LoadedModule[28]=C:\Windows\System32\CRYPT32.dll LoadedModule[29]=C:\Windows\System32\MSASN1.dll LoadedModule[30]=C:\Windows\SYSTEM32\VERSION.dll LoadedModule[31]=C:\Windows\SYSTEM32\AUTHZ.dll LoadedModule[32]=C:\Windows\SYSTEM32\dbghelp.dll LoadedModule[33]=C:\Windows\SYSTEM32\WINMM.dll LoadedModule[34]=P:\Programs\EqualizerAPO\libsndfile-1.dll LoadedModule[35]=P:\Programs\EqualizerAPO\libfftw3f-3.dll LoadedModule[36]=P:\Programs\EqualizerAPO\Qt5Widgets.dll LoadedModule[37]=P:\Programs\EqualizerAPO\Qt5Gui.dll LoadedModule[38]=P:\Programs\EqualizerAPO\Qt5Core.dll LoadedModule[39]=C:\Windows\System32\WS2_32.dll LoadedModule[40]=P:\Programs\EqualizerAPO\MSVCP120.dll LoadedModule[41]=P:\Programs\EqualizerAPO\MSVCR120.dll LoadedModule[42]=C:\Windows\SYSTEM32\WINMMBASE.dll LoadedModule[43]=C:\Windows\SYSTEM32\MPR.dll LoadedModule[44]=C:\Windows\System32\IMM32.DLL LoadedModule[45]=C:\Program Files (x86)\Citrix\ICA Client\epclient64.dll LoadedModule[46]=C:\Windows\SYSTEM32\ntmarta.dll LoadedModule[47]=C:\Windows\System32\bcrypt.dll LoadedModule[48]=C:\Windows\SYSTEM32\CRYPTBASE.DLL LoadedModule[49]=P:\Programs\EqualizerAPO\qt\platforms\qwindows.dll LoadedModule[50]=C:\Windows\System32\OLEAUT32.dll LoadedModule[51]=C:\Windows\system32\uxtheme.dll LoadedModule[52]=P:\Programs\RivaTuner Statistics Server\RTSSHooks64.dll LoadedModule[53]=C:\Windows\System32\clbcatq.dll LoadedModule[54]=C:\Windows\System32\MMDevApi.dll LoadedModule[55]=C:\Windows\System32\DEVOBJ.dll LoadedModule[56]=C:\Windows\system32\propsys.dll LoadedModule[57]=P:\Programs\EqualizerAPO\qt\imageformats\qico.dll LoadedModule[58]=P:\Programs\EqualizerAPO\qt\imageformats\qgif.dll LoadedModule[59]=P:\Programs\EqualizerAPO\qt\imageformats\qjpeg.dll LoadedModule[60]=C:\Windows\system32\dwrite.dll LoadedModule[61]=C:\Windows\System32\MSCTF.dll LoadedModule[62]=C:\Windows\system32\dataexchange.dll LoadedModule[63]=C:\Windows\system32\d3d11.dll LoadedModule[64]=C:\Windows\system32\dcomp.dll LoadedModule[65]=C:\Windows\system32\dxgi.dll LoadedModule[66]=C:\Windows\SYSTEM32\dxcore.dll LoadedModule[67]=C:\Windows\system32\twinapi.appcore.dll LoadedModule[68]=C:\Windows\system32\RMCLIENT.dll LoadedModule[69]=C:\Windows\System32\TextInputFramework.dll LoadedModule[70]=C:\Windows\System32\CoreUIComponents.dll LoadedModule[71]=C:\Windows\System32\CoreMessaging.dll LoadedModule[72]=C:\Windows\SYSTEM32\wintypes.dll LoadedModule[73]=C:\Windows\System32\iertutil.dll LoadedModule[74]=C:\Windows\SYSTEM32\SAMLIB.dll LoadedModule[75]=P:\Programs\Overwolf\0.153.0.13\OWExplorer.dll LoadedModule[76]=C:\Windows\System32\comdlg32.dll LoadedModule[77]=C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.959_none_e6c7bbbf130c62bb\COMCTL32.dll LoadedModule[78]=C:\Windows\System32\DUI70.dll LoadedModule[79]=C:\Windows\System32\DUser.dll LoadedModule[80]=C:\Windows\System32\dwmapi.dll LoadedModule[81]=C:\Windows\system32\explorerframe.dll LoadedModule[82]=C:\Windows\SYSTEM32\WindowsCodecs.dll LoadedModule[83]=C:\Windows\System32\thumbcache.dll LoadedModule[84]=C:\Windows\SYSTEM32\policymanager.dll LoadedModule[85]=C:\Windows\SYSTEM32\msvcp110_win.dll LoadedModule[86]=C:\Windows\System32\Windows.UI.FileExplorer.dll LoadedModule[87]=C:\Windows\System32\OLEACC.dll LoadedModule[88]=C:\Windows\SYSTEM32\edputil.dll LoadedModule[89]=C:\Windows\System32\StructuredQuery.dll LoadedModule[90]=C:\Windows\SYSTEM32\atlthunk.dll LoadedModule[91]=C:\Windows\System32\Windows.StateRepositoryPS.dll LoadedModule[92]=C:\Windows\system32\Windows.Storage.Search.dll LoadedModule[93]=C:\Windows\SYSTEM32\CLDAPI.dll LoadedModule[94]=C:\Windows\SYSTEM32\FLTLIB.DLL LoadedModule[95]=C:\Windows\SYSTEM32\SspiCli.dll LoadedModule[96]=C:\Program Files\Common Files\microsoft shared\ink\tiptsf.dll LoadedModule[97]=C:\Windows\System32\drprov.dll LoadedModule[98]=C:\Windows\System32\WINSTA.dll LoadedModule[99]=C:\Windows\System32\ntlanman.dll LoadedModule[100]=C:\Windows\System32\davclnt.dll LoadedModule[101]=C:\Windows\System32\DAVHLPR.dll LoadedModule[102]=C:\Windows\System32\wkscli.dll LoadedModule[103]=C:\Windows\SYSTEM32\cscapi.dll LoadedModule[104]=C:\Windows\System32\netutils.dll LoadedModule[105]=C:\Windows\System32\dlnashext.dll LoadedModule[106]=C:\Windows\System32\twinapi.dll LoadedModule[107]=C:\Windows\System32\PlayToDevice.dll LoadedModule[108]=C:\Windows\System32\DevDispItemProvider.dll LoadedModule[109]=C:\Windows\System32\coml2.dll LoadedModule[110]=C:\Windows\SYSTEM32\LINKINFO.dll LoadedModule[111]=C:\Windows\system32\NetworkExplorer.dll LoadedModule[112]=C:\Program Files (x86)\Dropbox\Client\DropboxExt64.44.0.dll LoadedModule[113]=C:\Windows\system32\PhotoMetadataHandler.dll LoadedModule[114]=C:\Users\austi\AppData\Local\Microsoft\OneDrive\20.124.0621.0006\amd64\FileSyncShell64.dll LoadedModule[115]=C:\Windows\SYSTEM32\WININET.dll LoadedModule[116]=C:\Windows\SYSTEM32\WTSAPI32.dll LoadedModule[117]=C:\Windows\SYSTEM32\USERENV.dll LoadedModule[118]=C:\Windows\System32\EhStorShell.dll LoadedModule[119]=C:\Windows\System32\SETUPAPI.dll LoadedModule[120]=C:\Windows\System32\PortableDeviceApi.dll LoadedModule[121]=C:\Windows\System32\WINTRUST.dll LoadedModule[122]=C:\Windows\System32\EhStorAPI.dll LoadedModule[123]=C:\Windows\SYSTEM32\ntshrui.dll LoadedModule[124]=C:\Windows\SYSTEM32\srvcli.dll LoadedModule[125]=C:\Windows\System32\urlmon.dll LoadedModule[126]=C:\Windows\system32\IconCodecService.dll LoadedModule[127]=C:\Windows\System32\ActXPrxy.dll LoadedModule[128]=P:\Programs\windows_rnnoise_bin_x64\bin\vst\librnnoise_vst.dll State[0].Key=Transport.DoneStage1 State[0].Value=1 OsInfo[0].Key=vermaj OsInfo[0].Value=10 OsInfo[1].Key=vermin OsInfo[1].Value=0 OsInfo[2].Key=verbld OsInfo[2].Value=18363 OsInfo[3].Key=ubr OsInfo[3].Value=959 OsInfo[4].Key=versp OsInfo[4].Value=0 OsInfo[5].Key=arch OsInfo[5].Value=9 OsInfo[6].Key=lcid OsInfo[6].Value=1033 OsInfo[7].Key=geoid OsInfo[7].Value=244 OsInfo[8].Key=sku OsInfo[8].Value=101 OsInfo[9].Key=domain OsInfo[9].Value=0 OsInfo[10].Key=prodsuite OsInfo[10].Value=768 OsInfo[11].Key=ntprodtype OsInfo[11].Value=1 OsInfo[12].Key=platid OsInfo[12].Value=10 OsInfo[13].Key=sr OsInfo[13].Value=0 OsInfo[14].Key=tmsi OsInfo[14].Value=119562 OsInfo[15].Key=osinsty OsInfo[15].Value=2 OsInfo[16].Key=iever OsInfo[16].Value=11.959.18362.0-11.0.200 OsInfo[17].Key=portos OsInfo[17].Value=0 OsInfo[18].Key=ram OsInfo[18].Value=16315 OsInfo[19].Key=svolsz OsInfo[19].Value=232 OsInfo[20].Key=wimbt OsInfo[20].Value=0 OsInfo[21].Key=blddt OsInfo[21].Value=190318 OsInfo[22].Key=bldtm OsInfo[22].Value=1202 OsInfo[23].Key=bldbrch OsInfo[23].Value=19h1_release OsInfo[24].Key=bldchk OsInfo[24].Value=0 OsInfo[25].Key=wpvermaj OsInfo[25].Value=0 OsInfo[26].Key=wpvermin OsInfo[26].Value=0 OsInfo[27].Key=wpbuildmaj OsInfo[27].Value=0 OsInfo[28].Key=wpbuildmin OsInfo[28].Value=0 OsInfo[29].Key=osver OsInfo[29].Value=10.0.18362.959.amd64fre.19h1_release.190318-1202 OsInfo[30].Key=buildflightid OsInfo[31].Key=edition OsInfo[31].Value=Core OsInfo[32].Key=ring OsInfo[32].Value=Retail OsInfo[33].Key=expid OsInfo[34].Key=containerid OsInfo[35].Key=containertype OsInfo[36].Key=edu OsInfo[36].Value=0 FriendlyEventName=Stopped working ConsentKey=APPCRASH AppName=Equalizer APO Configuration Editor AppPath=P:\Programs\EqualizerAPO\Editor.exe NsPartner=windows NsGroup=windows8 ApplicationIdentity=20FB982B74E4C3B36104DCA4EF6EB9F4 MetadataHash=834471186

franktntx commented 3 years ago

It would be great, that it could be edited in equalizer apo.

theglobe commented 3 years ago

There is only one parameter to be edited in this plugin, for most users the default value is the best choice. So there is no need to edit this parameter. Just load the plugin and resist the temptation to click the button. :)

If you need to edit it, here is perhaps a workaround: After loading the plugin in the Editor, choose Options -> Embed and then disable it again (it is a check box). Now choose Edit (in the drop down menu to the left) and you will see a configuration line with the name of the parameter and floating point value. Here you can set the value of the parameter, 0 to 1 (with decimals, outside this range crashes Eq APO).

This configuration line is also written to the config file, and you can also edit it there.

Eq APO differs from other hosts in that it does not provide GUI controls to the plugin. Interestingly, Embed is also supposed to open the plugins controls but does not crash Eq APO.

werman commented 3 years ago

Yes, I actually installed Windows in a VM and can confirm that the crash is due to Eq APO not handling correctly the lack of GUI in the plugin.

"Options -> Embed" is indeed a solution.

theglobe commented 3 years ago

I found this source code of Equalizer APO: https://github.com/mirror/equalizerapo/blob/master/helpers/VSTPluginInstance.cpp (Is this the official source?)

In particular this piece

void VSTPluginInstance::startEditing(HWND hWnd, short* width, short* height)
{
    if (effect == NULL)
        return;

    VstRect* rect;
    effect->dispatcher(effect, effEditGetRect, 0, 0, &rect, 0.0f);
    effect->dispatcher(effect, effEditOpen, 0, 0, hWnd, 0.0f);
    effect->dispatcher(effect, effEditGetRect, 0, 0, &rect, 0.0f);

    *width = rect->right - rect->left;
    *height = rect->bottom - rect->top;
}

So in our case we have an effect, but no implementation of getRect(), thus rect will be unassigned.

It is possible to fix, by implementing getRect() that returns a rect set to some values, which would lead to hosts opening an empty window, just for the sake of fixing a bug in Equalizer APO.

franktntx commented 3 years ago

There is only one parameter to be edited in this plugin, for most users the default value is the best choice. So there is no need to edit this parameter. Just load the plugin and resist the temptation to click the button. :)

If you need to edit it, here is perhaps a workaround: After loading the plugin in the Editor, choose Options -> Embed and then disable it again (it is a check box). Now choose Edit (in the drop down menu to the left) and you will see a configuration line with the name of the parameter and floating point value. Here you can set the value of the parameter, 0 to 1 (with decimals, outside this range crashes Eq APO).

This configuration line is also written to the config file, and you can also edit it there.

Eq APO differs from other hosts in that it does not provide GUI controls to the plugin. Interestingly, Embed is also supposed to open the plugins controls but does not crash Eq APO.

Hello, can you give me an example of how to change the parameters?

VSTPlugin: Library "C:\Program Files\VSTPlugins\rrnNoise\librnnoise_vst.dll"

theglobe commented 3 years ago

https://sourceforge.net/p/equalizerapo/tickets/138/

werman commented 3 years ago

@theglobe Thank you for analysis!

For Equalizer APO it would be correct to initialize rect to nullptr and check it after effEditGetRect.

I'm not sure about having a workaround since what if some other host checks if a plugin has GUI by checking the returned rect.

pannal commented 2 years ago

There is only one parameter to be edited in this plugin, for most users the default value is the best choice. So there is no need to edit this parameter. Just load the plugin and resist the temptation to click the button. :)

If you need to edit it, here is perhaps a workaround: After loading the plugin in the Editor, choose Options -> Embed and then disable it again (it is a check box). Now choose Edit (in the drop down menu to the left) and you will see a configuration line with the name of the parameter and floating point value. Here you can set the value of the parameter, 0 to 1 (with decimals, outside this range crashes Eq APO).

This configuration line is also written to the config file, and you can also edit it there.

Eq APO differs from other hosts in that it does not provide GUI controls to the plugin. Interestingly, Embed is also supposed to open the plugins controls but does not crash Eq APO.

Can you confirm that the VAD threshold works with EqualizerAPO? Also, the README states that its default is 50% - how does that translate to the float value of the parameter?

MrBridgeSix commented 2 years ago

There is only one parameter to be edited in this plugin, for most users the default value is the best choice. So there is no need to edit this parameter. Just load the plugin and resist the temptation to click the button. :)

If you need to edit it, here is perhaps a workaround: After loading the plugin in the Editor, choose Options -> Embed and then disable it again (it is a check box). Now choose Edit (in the drop down menu to the left) and you will see a configuration line with the name of the parameter and floating point value. Here you can set the value of the parameter, 0 to 1 (with decimals, outside this range crashes Eq APO).

This configuration line is also written to the config file, and you can also edit it there.

Eq APO differs from other hosts in that it does not provide GUI controls to the plugin. Interestingly, Embed is also supposed to open the plugins controls but does not crash Eq APO.

Stopped working after EQ APO 1.3.

werman commented 2 years ago

Released v1.01, there is GUI now.