Integrated Plugin Pin I/O Utility

Hi,
With version 2.5 I applaud Paul and the dev team for enabling mono plugins to be used with stereo tracks. I was wondering about the ability to use stereo plugins with mono tracks, Currently I use the swh splitter to split mono streams to stereo and enable use of stereo plugins, Paul has informed me that this is not an Ardour issue, but the stereo plugins issue. The drawback to doing this is that mono tracks end up going to the master bus as 2 streams which makes panning awkward, and mixes on large projects appear more complicated than they truly are.

How difficult would it be to have a little utility in (or relative to) the pre and post fader plugin sections that would expose the I/O plugin pins and the corresponding Ardour pins so that plugins could be routed mono to stereo to mono or whatever routing the user desired (even if it’s “weird”). Even something similar to the export dialog where users select what channels their export is mapped to would be sufficient.

If what I’m asking requires another 10000 lines of code, please forgive my ignorance.

My ongoing appreciation to the hard work of the Ardour dev team!

hi GMaq,

The only thing I can think of is to create a stereo bus with your stereo plugin, and an insert in the mono track fader that would connect to both ins and outs of the stereo bus. It is clumsy … but it would in principle work.

thorgal,

Thanks for the tip, I do agree there are many alternate ways to do this with inserting, side-chaining and bussing. I am new to Ardour but have years of experience with other DAWs that handle this kind of thing behind the scenes, so it’s quite an adjustment getting used to how this is handled in Ardour.

It seemed to me this must be a common issue with Ardour newbies, perhaps I am more aware of it because
I am using a large number of VST plug-ins, whereas the most common LADSPA ones come in either orientation for users to choose.

GMaq - first you need to decide what you think should actually happy when you route a mono signal into a plugin expecting two inputs. If you think the signal should just be replicated, then just put a 1->2 splitter plugin in front of the 2in one. If you have any other ideas, do tell …

Ardour’s position is that plugin outputs are more significant than inputs, so for example if you route a mono signal into a 1in/2out plugin (such as GVerb) we assume there is an important DSP reason why it generates 2 outputs from 1 input.

An obvious alternative is to throw away one of the output signals, but this seems risky and arbitrary.

So what do you have in mind?

@Paul,

Firstly please don’t think I am trying to be petulant about this, that is certainly not the case. It is easy for me as an end-user to be idealistic about this since I am placing the burden of actually executing it on someone else’s shoulders without knowing the “size” of the burden but I certainly don’t take that for granted. I am visualizing the signal path of a plugin being somewhat like a hardware effect or device. For instance I have an old Alesis Microverb laying around the studio, when I used it with my mixing board I used it in stereo in my effects loop, when I used it with my Guitar rig I used the left channel in and outs only in series with my guitar stomp boxes. The same effect could be used for both applications, while it’s true that some of the “stereo” effects and nuances were being lost in the mono scenario, they were of no consequence in that application. Obviously mono is NOT going to work or even be desirable with every stereo plugin.

When I look around at most “stereo” gear like Keyboard Synths, Line 6 Pods, Effect boxes etc, there seems to be the option of plugging in stereo or using the “left mono” output. So in the best case scenario what I “have in mind” is the ability to access the virtual inputs and outputs of a given effect and decide for myself to use Ardour’s virtual “patch cords” in stereo or “left mono” since Ardour can “see” how many ins and outs are in each plugin even VST’s. Since many plugin effects have the option of operating in mono (by merging the stereo input I would assume) then this should minimize signal loss…Obviously a ping-pong delay is never going to be an option with a mono track, but a slapback echo wouldn’t be noticeably lacking in mono operation. I guess the fallback position would be to either force or trick the plugin to accept a “left mono” input…(oh-oh back to a splitter again?), or as you suggested throw one stream of output away, in many cases this would not be noticeable, if it sounds bad - don’t do it that way!. I suppose another idea would be to “merge” the two output streams after the last plugin before the channel output, would that be possible? A “Merge Streams” button that could intelligently insert after the last plugin in a given chain? Anyway, some ideas, harebrained as they well may be.

Thanks for reading, :smiley:

Your suggestions are all fine, to a point. But let me expand a bit …

Hardware units do 1 of 2 things: (a) use “jack-sense” to figure out what is plugged in (b) just go ahead and process both channels anyway. My guess is that almost all units do (b). You will note that they all generate two channels of output no matter what is plugged in. If there are any units that alter their DSP when only one input is plugged in, I’d love to hear about them, but notice that this model puts the responsibility for this mostly on the plugin. It also requires a way for the plugin (not ardour) to ask which of its inputs are connected, and LADSPA doesn’t offer this (neither, IIRC, does the AudioUnit API which expects plugins to reconfigure themselves to match a required input configuration).

Your “best” case scenario requires an entirely different paradigm for plugin use, one generally called “patching” or “modular”. There are JACK apps that offer this (such as ingen, alsa modular synth and others). In those apps, plugins are free-floating units that you patch together at will. You can, of course, use such applications as inserts with ardour.

However, it is difficult to provide this kind of flexibility when the paradigm is a signal flowing through a serial list of processors, which is what ardour and most other DAWs offer. Note that other DAWs have a similar problem (ardour has this too) when it comes to wanting to do side-chaining (where you feed two unrelated signals into the same plugin, and one signal affects the operation carried out on the other). Its not possible to wire them up in any trivial way when the plugins are implicitly ordered as a list with one feeding the other. We have long talked about adding such an “environment” to ardour itself, but it is not top priority and I have no idea when/if it will happen.

Regarding “throwing one channel away” - there is no generic answer to whether this a good idea or not. It would depens entire on the plugin. And this is where it comes back to the user adding merge/split plugins because they (and probably only they) know what the best thing to do is.

OK,

Understood… my hardware analogy doesn’t hold water in the world of software. Since other apps (Cubase, Reaper etc,) are doing this behind the scenes I actually can’t say what kind of signal butchery is going on there which makes it difficult to know what I actually want. And their developers won’t be taking their precious time to explain it to me - THAT’S WHY I USE ARDOUR!!!

Having played with JOST, PATCHAGE and even VST HOST I quickly found myself tangled up to my neck in virtual patch cables, and JACK was not always a happy camper either.

I have my answer and will continue to play around with splitters and mergers which isn’t all that difficult either, There is always bussing to play with as well.

Thanks Paul for your time and patience.

Your hardware example is easily fixed by putting that stereo effect on a separate bus. You can then choose if you want the input to go to both sides equally, panned slightly over, etc. You can also choose where to send the output.

I find that most stereo effect work better on a separate bus for the above and many other reasons.

hogiewan,

Yes I agree with you, I used to do it that way in Cubase and N-Track, I find Ardour a little less intuitive in that respect, That’s not a criticism I just have to learn a new way, For a while I was evaluating Reaper and Ardour together and Reaper got me in the habit of just chaining the FX right on the channel, simple to keep track of and as long as you knew the difference between dry and wet, equally effective.

yeah, but I have found that 90% of stereo effects I use are going to be used by more than one tack. 5% are for stereo tracks and the other 5% can have mono-stereo splitters