View Issue Details

IDProjectCategoryView StatusLast Update
0009229ardourbugspublic2023-02-09 17:38
Reportersollapse Assigned Tox42  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Summary0009229: VST3: Pro-Q 3 UI fails to detect mono track/bus
DescriptionWhen using Pro-Q on a mono track or bus the UI continues to provide stereo options. The bx_console_9000 has similar functionality with different UI's for mono and stereo, and works correctly in Ardour. I've included a screenshot using Pro-Q forced to mono within Metaplugin to show the correct interface.
TagsNo tags attached.

Activities

sollapse

2023-02-08 01:37

reporter  

pro-q.jpg (396,858 bytes)

sollapse

2023-02-08 05:29

reporter   ~0027320

It seems that the bx_console_SSL9000 fails to detect mono as well now. This was working previously. I'm running 7.2.251 currently.

sollapse

2023-02-08 05:42

reporter   ~0027321

Added screenshot highlighting the new instance on latest version (7.2.251). The plugin which detected mono correctly was added using version 7.2.200.
9000_old.jpg (928,575 bytes)

sollapse

2023-02-08 07:31

reporter   ~0027322

I was able to trigger the mono mode of the 9000 VST by enabling manual config in the pin connectors dialog. Pro-Q is unaffected however and still remains in stereo.

x42

2023-02-08 21:58

administrator   ~0027330

Fixed in 7.2-260-g445e5162fd (tested with Pro-Q)

sollapse

2023-02-09 03:35

reporter   ~0027335

Thanks for this. Will it be possible in the future to allow the pin connector to manually force the correct I/O ports for the plugin? For instance, Pro-Q also offers surround modes. I've been using Metaplugin to choose the correct ports for VST3 plugins as a workaround.

x42

2023-02-09 16:29

administrator   ~0027341

While there is support for surround (just connect all the pins), it is not currently possible to distinguish the VST3 modes semantically.
Ardour just enumerates connected pins sequentially (L, R, C, LFe, Ls, .. see bitset below)

This caused the current bug: Only pin 1 was connected, so Ardour announced "Left" -- but VST3 distinguishes "only left of a stereo-pair" and "mono".
For whatever reason there is also the ambiguity of connecting the first six pins (L, R, C, Lfe, Ls, Rs) and explicitly choosing "Surround".

So at some point we may have to expose this explicitly and let the user pick

VST3 defines the following bitset:
  const Speaker kSpeakerL    = 1 << 0;    ///< Left (L)
  const Speaker kSpeakerR    = 1 << 1;    ///< Right (R)
  const Speaker kSpeakerC    = 1 << 2;    ///< Center (C)
  const Speaker kSpeakerLfe  = 1 << 3;    ///< Subbass (Lfe)
  const Speaker kSpeakerLs   = 1 << 4;    ///< Left Surround (Ls)
  const Speaker kSpeakerRs   = 1 << 5;    ///< Right Surround (Rs)
  const Speaker kSpeakerLc   = 1 << 6;    ///< Left of Center (Lc) - Front Left Center
  const Speaker kSpeakerRc   = 1 << 7;    ///< Right of Center (Rc) - Front Right Center
  const Speaker kSpeakerS    = 1 << 8;    ///< Surround (S)
  const Speaker kSpeakerCs   = kSpeakerS;   ///< Center of Surround (Cs) - Back Center - Surround (S)
  const Speaker kSpeakerSl   = 1 << 9;    ///< Side Left (Sl)
  const Speaker kSpeakerSr   = 1 << 10;   ///< Side Right (Sr)
  const Speaker kSpeakerTc   = 1 << 11;   ///< Top Center Over-head, Top Middle (Tc)
  const Speaker kSpeakerTfl  = 1 << 12;   ///< Top Front Left (Tfl)
  const Speaker kSpeakerTfc  = 1 << 13;   ///< Top Front Center (Tfc)
  const Speaker kSpeakerTfr  = 1 << 14;   ///< Top Front Right (Tfr)
  const Speaker kSpeakerTrl  = 1 << 15;   ///< Top Rear/Back Left (Trl)
  const Speaker kSpeakerTrc  = 1 << 16;   ///< Top Rear/Back Center (Trc)
  const Speaker kSpeakerTrr  = 1 << 17;   ///< Top Rear/Back Right (Trr)
  const Speaker kSpeakerLfe2 = 1 << 18;   ///< Subbass 2 (Lfe2)
  const Speaker kSpeakerM    = 1 << 19;   ///< Mono (M)
  const Speaker kSpeakerACN0  = (Speaker)1 << 20; ///< Ambisonic ACN 0
  const Speaker kSpeakerACN1  = (Speaker)1 << 21; ///< Ambisonic ACN 1
  const Speaker kSpeakerACN2  = (Speaker)1 << 22; ///< Ambisonic ACN 2
//[...]

  const SpeakerArrangement kEmpty      = 0;          ///< empty arrangement
  const SpeakerArrangement kMono       = kSpeakerM;  ///< M
  const SpeakerArrangement kStereo     = kSpeakerL   | kSpeakerR;    ///< L R
  const SpeakerArrangement kStereoSurround = kSpeakerLs  | kSpeakerRs;   ///< Ls Rs
//[...]
  

sollapse

2023-02-09 17:38

reporter   ~0027342

I would look forward to that option! Although this leads to another question I have about dynamically configured plugins. I mentioned that the bx_9000 VST at first was able to detect mono channels correctly (7.2.191). Somewhere around 2-3 nightly versions back, this function was broken and now it only triggers it's mono mode when manual config is selected. Does this mean multiple methods are involved (or allowed) for a plugin to determine the channels in use?

Issue History

Date Modified Username Field Change
2023-02-08 01:37 sollapse New Issue
2023-02-08 01:37 sollapse File Added: pro-q.jpg
2023-02-08 05:29 sollapse Note Added: 0027320
2023-02-08 05:42 sollapse Note Added: 0027321
2023-02-08 05:42 sollapse File Added: 9000_old.jpg
2023-02-08 07:31 sollapse Note Added: 0027322
2023-02-08 21:58 x42 Note Added: 0027330
2023-02-08 21:58 x42 Assigned To => x42
2023-02-08 21:58 x42 Status new => resolved
2023-02-08 21:58 x42 Resolution open => fixed
2023-02-09 03:35 sollapse Note Added: 0027335
2023-02-09 16:29 x42 Note Added: 0027341
2023-02-09 17:38 sollapse Note Added: 0027342