How does it work?I have debuged for hours to fix the bug that vst cannot show audio frequency but can process audio normally,only to find it does not call the function void VSTPluginInstance::process(In EqApo\helpers\VSTPluginInstance.cpp,line 326) and the method "effect->processReplacing(effect, inputArray, outputArray, frameCount); " is not used too.It is only called after I click the "apply" button in editor.exe and the effect of vst plugin remains.Hmm...that's confusing.You know,in obs-studio the method "effect->processReplacing(effect, inputArray, outputArray, frameCount); " is used to process real-time audio.But how does EqualizerApo make it?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
After hours and hours debugging,I think I finally finde the reason why my gain plgin doesn't show meter:The plugin editor gui is only used to set configurations,it does not process the audio.What process the audio is unknown,but I know it read chunkData directly from config.txt other than the plugin gui editor.It's so...surprising....
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ohno...I just find myself debugging on a machine which has installed EqualizerApo before...Thus all the change I have made won't work.It's so...frustrating.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I get your confusion because it isn't obvious how things work.
As the audio engine of Equalizer APO works with commands given in config.txt and included .txt files the VST plugin shown in the Configuration Editor doesn't do the actual audio changing. A second plugin instance is started by the engine which reads the chunk data and sets this plugin.
Knowing the above, basically there is an interface part which uses functions and a processing part (APO engine) that uses the same and other functions. This also means that the plugin in an interface of Equalizer APO won't show anything which is real time data such as the sample frequency of the audio stream or the frequency spectrum, etc.
❤️
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hmm...But I think is a bug:Anyway I the user should see the frequency spectrum to have a better experience.But I failed to figure out how does the apo load the vst dll file and use it to process audio stream.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I agree that it would be nice to see the frequency spectrum. However, how Equalizer APO works this is currently impossible. And it may be that an Audio Processing Object may not or isn't capable to have an interface. This is likely as it's running in the Windows audio service which has limited rights. But there may be a solution: If an APO is capable to "send" data to another running app then this app can show the frequency spectrum. Or in the language of Equalizer APO: The Equalizer APO's APO (audio engine) sends data to the Configuration Editor.
The loading and running of an APO is done by Windows. I'm not a c++ programmer but I'm guessing it starts with the EqualizerAPO::APOProcess() function which is called by Windows to process the audio stream. It has 2 function calls to engine.process(). This a method of the FilterEngine class. I think there all the setup Equalizer APO commands lines are called. Setup means here that the config file is processed and "factories" are created of the commands including VST plugin commands.
🎉
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
As developer of the Peace equalizer I know all about how Equalizer APO works. But I find the source code pretty difficult to understand. Glad to know that you can do something with my info.
❤️
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
How does it work?I have debuged for hours to fix the bug that vst cannot show audio frequency but can process audio normally,only to find it does not call the function void VSTPluginInstance::process(In EqApo\helpers\VSTPluginInstance.cpp,line 326) and the method "effect->processReplacing(effect, inputArray, outputArray, frameCount); " is not used too.It is only called after I click the "apply" button in editor.exe and the effect of vst plugin remains.Hmm...that's confusing.You know,in obs-studio the method "effect->processReplacing(effect, inputArray, outputArray, frameCount); " is used to process real-time audio.But how does EqualizerApo make it?
After hours and hours debugging,I think I finally finde the reason why my gain plgin doesn't show meter:The plugin editor gui is only used to set configurations,it does not process the audio.What process the audio is unknown,but I know it read chunkData directly from config.txt other than the plugin gui editor.It's so...surprising....
Ohno...I just find myself debugging on a machine which has installed EqualizerApo before...Thus all the change I have made won't work.It's so...frustrating.
I get your confusion because it isn't obvious how things work.
As the audio engine of Equalizer APO works with commands given in config.txt and included .txt files the VST plugin shown in the Configuration Editor doesn't do the actual audio changing. A second plugin instance is started by the engine which reads the chunk data and sets this plugin.
Knowing the above, basically there is an interface part which uses functions and a processing part (APO engine) that uses the same and other functions. This also means that the plugin in an interface of Equalizer APO won't show anything which is real time data such as the sample frequency of the audio stream or the frequency spectrum, etc.
Hmm...But I think is a bug:Anyway I the user should see the frequency spectrum to have a better experience.But I failed to figure out how does the apo load the vst dll file and use it to process audio stream.
I agree that it would be nice to see the frequency spectrum. However, how Equalizer APO works this is currently impossible. And it may be that an Audio Processing Object may not or isn't capable to have an interface. This is likely as it's running in the Windows audio service which has limited rights. But there may be a solution: If an APO is capable to "send" data to another running app then this app can show the frequency spectrum. Or in the language of Equalizer APO: The Equalizer APO's APO (audio engine) sends data to the Configuration Editor.
The loading and running of an APO is done by Windows. I'm not a c++ programmer but I'm guessing it starts with the EqualizerAPO::APOProcess() function which is called by Windows to process the audio stream. It has 2 function calls to engine.process(). This a method of the FilterEngine class. I think there all the setup Equalizer APO commands lines are called. Setup means here that the config file is processed and "factories" are created of the commands including VST plugin commands.
Thank you for offering me more information,I am trying very hard to work out.I will appreciate if the develop doucument can be more detailed.
As developer of the Peace equalizer I know all about how Equalizer APO works. But I find the source code pretty difficult to understand. Glad to know that you can do something with my info.