Channel configuration issue

Hello

Are multiple output configurations supported in Reaper and Live ?

I set channel configurations in the introjucer to {2, 2}, {1, 1}, {6, 6}, {8, 8} however Reaper only sees the 8ch VST and 2ch AU, while Live only sees 8ch VST and AU. Then getNumOutputChannels() returns 8 (or 2) whatever the number of channels in the track. 

Similar issue was reported for Studio One here : http://www.juce.com/forum/topic/mono/stereo-au-problems-studio-one

Thanks for any help,

Charles

Not quite sure I follow your post, but I don't think VST 2.4 supports dynamic numbers of inputs and outputs. If you build with max number of channels set to 8 then it will always appear as an 8-channel plugin. At least this is my experience with it. I think VST3 can do this however, although I've not tried. Nor am I aware of whether this is something that has filtered into JUCE's VST3 wrapper. 

Thanks for your reply. To be more specific, my goal is to have the plugin react differently depending on the number of outputs (i.e., the number of channels in the track). So in prepareToPlay() I use getNumOutputChannels() to determine the current number of outputs and perform different actions.

It works fine in Protools and Logic. However it does not work in Reaper and Live since getNumOutputChannels() always return 8 (even if the plugin is in a stereo or 5.1 track) ...

As far as I understand, the VST norm supports different channel configurations. The number of outputs should be set in setSpeakerArrangement(), which is implemented in Juce : https://github.com/julianstorer/JUCE/blob/master/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp#L893

However, the function is not called... I don't know why. On the Reaper forum I was told that Reaper implements this call (via effSetSpeakerArrangement) each time the number of channels in the track changes. In my case the number of outputs is only set at init by https://github.com/julianstorer/JUCE/blob/master/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp#L252 and it is set to the maximum number of channels, not to the number of channels in the track (as it should be).

Cheers

 

I see what you're talking about now. I'm also curious about this. If you find out anything let me know. I'm going to reboot into Windows now and take a look, but my debugging tools are kind of impaired there since I started using GCC to build JUCE projects sad But cheeky for being able to use more or less the same makefiles on Linux and Windows. Btw, no real surprise that it works in Logic and Protools given they do not use the VST protocol?

Ok, I just cracked open a plugin project here on Win7. JuceVSTWrapper::setSpeakerArrangement() is being called just fine for me whenever I change the number of channels on a track in Reaper. Note, it is only called if I choose one of my preferred setups {1, 1}, {2,2}, {8,8}, etc. getNumOutputChannels() also returns the correct number of outputs in my prepareToPlay() method. Sorry, I'm not sure why it's failing for you. You're hardly using a prehistoric version of Juce?

Thanks, good to know that it works on Windows 7 !

I am using an up-to-date version of Juce and Reaper, on OSX Maverick. The issue may be only for Mac... 

It may also depend on the version of Reaper, which one did you use ?

 

 

4.57, I'll not be able to check on an OSX machine till early September, but I hope you have it sorted long before then!

Hummm, Reaper behavior seems to have changed from version 4.58 : http://forum.cockos.com/showthread.php?t=142098

That might be the issue ! I'll do more testing and try to contact them again to sort that out.

Cheers

Charles

 

So it looks like an issue with the host rather than Juce. I hope they sort it out.

Here is the answer : http://forum.cockos.com/showthread.php?t=142098

the effSetSpeakerArrangement message is only sent if the user enables "inform plug-in when track channel count changes". This setting is under the individual plug-in compatibility settings, which can be accessed via the "+" button on the plug-in window when the plug-in is loaded, or via the right-click context menu in the FX browser

And it works. Be aware that the VST plugin needs to be re-loaded after setting that option.

 

Thanks for letting us know.