COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :

Go Back   Cockos Incorporated Forums > Other Software Discussion > WDL users forum

Reply
 
Thread Tools Display Modes
Old 08-09-2020, 08:01 AM   #1
vasyan
Human being with feelings
 
vasyan's Avatar
 
Join Date: Oct 2019
Location: Sayan Mountains, Siberia
Posts: 22
Default Some inaccuracies in the work of IPlug/IPlug2 plugins in DAW Kushview Element

The problem concerns everyone, because your VST2 plugins will behave in this DAW in the same way!

When loading absolutely any plug-in assembled with the IPlug or IPlug2 in DAW Kushview Element, the plug-in is initialized in mono mode, but other plugins assembled by third-party frameworks are initialized normally, that is, in stereo mode.

Therefore, I cannot figure out why this is happening?
Is this a bug of the DAW Kushview Element or an IPlug framework?
I would like to work together to sort out this problem, and if it becomes necessary to contact the developers of Kushview Element, to correct this inaccuracy in the work.

This problem was not found in the VST3 plugins.
vasyan is offline   Reply With Quote
Old 08-10-2020, 01:45 AM   #2
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

How can I test this? Is there a prebuilt demo version I can download?
Tale is offline   Reply With Quote
Old 08-10-2020, 09:49 AM   #3
vasyan
Human being with feelings
 
vasyan's Avatar
 
Join Date: Oct 2019
Location: Sayan Mountains, Siberia
Posts: 22
Default

Thanks!
I found some inconsistency in the code in the IPlugVST2.cpp file, which causes incorrect initialization of plugins in hosts using the Juce framework.
This is exactly what this piece of code is:

Code:
 case effGetSpeakerArrangement:
    {
      VstSpeakerArrangement** ppInputArr = (VstSpeakerArrangement**) value;
      VstSpeakerArrangement** ppOutputArr = (VstSpeakerArrangement**) ptr;
      if (ppInputArr)
      {
        *ppInputArr = &(_this->mInputSpkrArr);
      }
      if (ppOutputArr)
      {
        *ppOutputArr = &(_this->mOutputSpkrArr);
      }
      return 1;
    }
I looked at how this is done in third-party plugins, using audioeffectx.cpp as an example:

Code:
case effGetSpeakerArrangement:
v = getSpeakerArrangement (FromVstPtr<VstSpeakerArrangement*> (value), (VstSpeakerArrangement**)ptr) ? 1 : 0;
break;
where in audioeffectx.h there is a virtual method declaration getSpeakerArrangement (), which is implemented by default like this:

Code:
virtual bool getSpeakerArrangement (VstSpeakerArrangement** pluginInput, VstSpeakerArrangement** pluginOutput) { *pluginInput = 0; *pluginOutput = 0; return false; } ///< Return the plug-in's speaker arrangements
as a result I made a fix in IPlugVST2.cpp:

Code:
case effGetSpeakerArrangement:
    {
      VstSpeakerArrangement** ppInputArr = (VstSpeakerArrangement**) value;
      VstSpeakerArrangement** ppOutputArr = (VstSpeakerArrangement**) ptr;
      if (ppInputArr) *ppInputArr = nullptr;
      if (ppOutputArr) *ppOutputArr = nullptr;
      return 0;
    }
With this change, the problem went away.

It would be very nice if a virtual method similar to getSpeakerArrangement() was called in IPlugVST2.cpp so that the developer can override it at his own discretion. However, at the moment, there is no such possibility.
vasyan is offline   Reply With Quote
Old 08-10-2020, 11:16 PM   #4
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Interesting that your fix helps, but doesn't that disable speaker arrangements altogether?

I would still like to look into this myself, but I would need a prebuilt version of Element...
Tale is offline   Reply With Quote
Old 08-16-2020, 07:27 AM   #5
vasyan
Human being with feelings
 
vasyan's Avatar
 
Join Date: Oct 2019
Location: Sayan Mountains, Siberia
Posts: 22
Default

Quote:
Originally Posted by Tale View Post
Interesting that your fix helps, but doesn't that disable speaker arrangements altogether?
The vast majority of plug-ins do not take into account speaker placement. At least before, when I used the VST2 framework, I was satisfied with the default option, that is, as I described above.

Quote:
Originally Posted by Tale View Post
I would still like to look into this myself, but I would need a prebuilt version of Element...
You can use any VST host built with the Juce framework. There are host examples in the Juce distribution.
vasyan is offline   Reply With Quote
Old 08-28-2020, 05:37 AM   #6
TBProAudio
Human being with feelings
 
TBProAudio's Avatar
 
Join Date: May 2014
Location: Germany
Posts: 643
Default

Quote:
Originally Posted by Tale View Post
Interesting that your fix helps, but doesn't that disable speaker arrangements altogether?
I would also agree, the fix makes no sense to me. Also the statement regarding hosts using the Juce framework might be questionable. As far as I know Tracktion uses Juce modules... And Tracktion works well with IPLUG1. So from my perspective too many questions to make such a big wave.
__________________
www.tbproaudio.de
TBProAudio is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 10:59 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.