Dry/wet fader for plugins

I’d like to have an option to add a dry/wet crossfader for plugin effects. This would especially come in handle for automating effects.

Say I have a plugin with multiple controllers adjusted how I want, and I want this to apply with automation in the track. For now, I think this either can be achieved only by automating all the controllers individually, or using an external bus and/or a crossfader plugin.

I know Jackrack and LMMS have this feature.

@seablade: Ok, tried searching now but didn’t find anything. You mind posting a link?

@kellydv: Yes I got it working using 2 buses and a crossfader plugin, routing as follow:

Main track -> Bus with effect plugin -> 4ch bus with crossfader -> Master
Main track -> 4ch bus with crossfader -> Master

And then automate the crossfade controller.

I wonder if you can achieve the same thing using only the main track and the send/insert features? Tried it but it’s just dead silent, apparently I don’t understand exactly how they work, or how 4 channels is handled with a stereo region… This was what I thought of, arranging the plugin box like:

[Main track, 4ch]

-> [Send dry to Insert ch 1, 2]
[Effect plugin]
-> [Send wet to Insert ch 3, 4]

Well most effects do have a dry wet balance where appropriate, but IIRC if you look in mantis, where feature requests should ne made you will find this feature request for dry/wet mix already exists and you should probably voice your support for it there.

Have you tried the bus method you mentioned? Personally, I think that is the most intuitive way to achieve what you want (also given the way jack and Ardour work together at the UI level).

Also, if you have plugins such as dynamics processors active, things might not behave sonically as you’d expect. Better IMO to send a track to a bus, tweak plugins to your delight there, and adjust the volume relative to a ‘dry’ signal from the track.

Now that I think more, my comment about it not behaving as expected may be off… But it’s an interesting question because currently Ardour is fully capable of what you want, but using busses.

A really cool feature would be to copy all or part of a track’s plugins in their current states to be pasted into a bus or another track… As I recal, parameters don’t transfer over at the moment.

@kelleydv: you can drag-n-drop processors (plugins and more) from any track/bus to any other track/bus; the copy will have the same settings as the original.

@farbro: I think you’d be better off using a stereo bus instead of 4ch. Try like this:

Main Track -> Effects Bus -> Stereo Bus -> Master
Main Track -> Stereo Bus -> Master

Just connect the ‘left’ of the Effects Bus to the ‘left’ of the Stereo Bus, the ‘right’ to ‘right’, and do the same for the Main Track to Stereo Bus. In other words, don’t bother with the 4 channel bus. Now the Stereo Bus fader will adjust the overall level of Main Track + Effects, and then you can adjust the fader of Effects Bus for the wet/dry control you wanted. Note that with this scheme, increasing the level of Main Track increases the dry signal and the input to Effects Bus.

Try it out. If you’re not sure what I mean, I could try getting some output from JACK for an example of how I do it… I’ll have to search for that command though :slight_smile:

@paul: thanks for pointing that out

@kellydv: Thanks, tried it out but I don’t think that gives the same result as my crossfader scheme? Can you achieve a 100 % wet signal on the Stereo bus only by adjusting the Effects fader? When it’s set to 0, the Stereo bus gets 50 % dry and 50 % wet signal right? Because the Stereo bus is only adding dry + wet signal, and you can’t turn the dry signal down without affecting the Effect bus. I suppose you can solve this by routing to another Dry bus between Main Track and the Stereo Bus, but then you have to automate both the Dry bus fader and the Effects bus fader for getting a 100 % wet signal.

1 Like

@farbro: you’re right, it’s not the same, but I’ve got an idea.

Main Track L -> Mono Bus With Effects -> Stereo Bus
Main Track R -> Mono Bus -> Stereo Bus

The stereo outputs from Mono Bus and Mono Bus WE should just go to the matching inputs on Stereo Bus. Then the pan of Main Track will do what you want (L=Wet, R=Dry), and the fader of Stereo Bus will control the overall level :slight_smile:

(Mono Bus isn’t really necessary, but then again you could have different effects over there)

a more important question here is: how is it that so many fine recordings have been mixed on mixing consoles that do not have the “crossfade” solution that Farbro wants? You simply can’t do it on any mixing console that I know of, and yet that didn’t impede the production of Kind of Blue, Thriller or Autobahn (to cite just 3 notably different musical forms). From reading this thread it would appear that wet/dry crossfade is an essential and obvious feature when working with plugins, and nobody working with consoles + FX gear did things in this way. I’ll need some convincing that adding wet/dry to every plugin is really an improvement given this history. Right now though, the argument is going in Farbro’s direction until someone can explain to him why a wet/dry mix of most plugins is not what you want. I’ve already noted that its crazy to do it for dynamics processors and that most delays and reverbs have their own. So that leaves things like flangers, phasers and EQ. Can anyone do justice to my basic point?

@Paul: There are a very few cases where it might be necessary, but for those, I would suggest it’s probably better to use ardour’s existing buss structure anyway. The use cases that come immediately to mind would be some forms of ‘upward’ or parallel compression’ - where it may be necessary to mix some of the un-effected signal with the output from a compressor, but for ‘normal’ dynamics / compression this is exactly what you don’t want to do. Similarly, for filters / EQ, it’s not normally necessary to mix clean / effected signals, and if you do there can be all kinds of phase issues to contend with (which is not something the host could or should try to compensate for).
The only ‘common’ case would be reverb, for which either the effect itself will have a wet / dry crossfade or a buss could be used (and is probably the preferable solution). In terms of analogue consoles, its almost unheard of to have insert or patch points with dedicated crossfaders, not least because anything you might want to do that would require it, can be done more easily or with more flexibility by using aux sends / return busses or just a spare / duplicate channel etc. I think ardour already provides a means to cover these (rare) use cases, possibly in a more flexible way than would be possible by adding the extra complication / DSP overhead of crossfaders for plugins.

Quite the opposite Paul, it ISN’T crazy to do with dynamics processors, in fact it is a common thing when dealing with Parallel Compression for instance.

The thing is, that I know live engineers(Myself included depending on the show) that set up their console processing and subgroups on larger VCA consoles, etc. specifically for this. They will use the Pan or the VCAs to mix as LinuxDSP described to get exactly this effect. So my feeling is the better question here is, “Why wouldn’t we make it easier?” Obviously LinuxDSP and I disagree on this a bit, but my feeling is just because we can do it, doesn’t mean it can’t be improved.

Now that being said, for normal compression etc. LinuxDSP is absolutely correct, most people don’t want this. Just I can see it being a useful feature if implemented correctly.


@seablade: I think we agree about the parallel / upwards compression being a valid use case, but I just can’t help thinking that adding a plugin crossfader is the wrong way to go about it (I can’t describe exactly why I think that is the case, it just ‘feels’ wrong).
For cases such as that it almost seems as if it is something that should be in the plugin itself (compressor, dynamics processor etc) where there could be better integration with the other aspects of the plugin (note that not all dynamics processors will work in parallel configurations, especially some multiband compressors due to the phasing of the filters etc) - however I realize I’m probably biased in favour of the ‘in the plugin’ approach, being a plugin developer :slight_smile:

@paul: I agree with your point. Farbro had a creative idea that he wanted to realize using Ardour, and I think I explained a simple way to do it with the existing tools. Whether he likes the result is another question. I had fun thinking about his problem.

@seablade: “I can see it being a useful feature if implemented correctly.”
So what’s the correct way? As linuxdsp said, it can be done in a more flexible way with busses. One of the things I like most about Ardour is that it has been very fast and easy to learn because of its simplicity. I have found Logic, for example, to be a pain to learn because it’s got so many features. The learning hump in logic has kept me away, whereas Ardour’s unobtrusive UI has been a lot easier to step into as an amateur. Though it’s simple, it is flexible enough to do what Farbro wanted. So my main point is this: if you can do it with busses, why add an extra function?

Am I correct in understanding that the use of a bus for parallel compression won’t currently work completely correctly, because buses in Ardour don’t (yet) do latency compensation?


Not necessarily going to disagree with anything you said there;) Fun thing about sound, there can be many ‘right’ ways to do something.


It isn’t a question on whether it can be done, but rather whether it can be made easier. After all isn’t that what most DAWs these days do, make something easier and faster for the user? Otherwise why have beat splicing or silence detection when you can always do it by hand for example?

@DLC11 you are correct, There is no latency compensation on busses which means that unless you manually insert latency somehow you will be dealing with phasing, how significant however depends on the plugins in question. That would be one large advantage to a wet/dry mix control in the track is to allow for latency compensation easier.


@kellydv: Good idea about the panner, but as far as I can see this will only give a mono signal in the end. Perhaps you could use a 4 ch panner but I don’t know how that is for automating.

Regarding the necessity of this feature, I’m quite into electronic and experimental music and with Ardour3 and MIDI support I think you will gain more users operating in these genres. I would use a wet/dry feature for creating more “DJ-ish” songs, with lots of automation for dynamically changing the sounds of the synths and wav audio, creating flanging-like sounds but automated how you want them to apply. With this feature it would be easy to make effects “sweep” back and forth in the song and you can make them fade in or out, which for example may sound cool in a pre-chorus for building up energy before a transition.

Using buses for doing this is achievable of course but if you have a multiple of tracks you want to use this with you will end up with a lot of buses and you will get kind of a mess. And by this I agree with seablade, even if it’s already doable it is not that simple to set up, and I think that making things a lot easier is a fully acceptable reason for implementing new features. :slight_smile:

Ok, I’m becoming more convinced of your need. Now I have a practical question (which was the sub-conscious source of my irritation at the possibility of this feature):

How should the wet/dry parameters of a track’s active plugins be treated?

Should it be like: Global Dry 100% = all plugins dry 100%, Global Wet 100% = all plugins realize wet/dry setting ?

That makes the most sense to me, but I can think of other possibilities too. If this feature were to be implemented, a choice would have to be made.

It wouldn’t be per track, it would be per plugin;)


Ha! I did misunderstand. In that case, I concede that this could be a useful feature :slight_smile: Shouldn’t it be the job of the plugin developer to add it though? And my question still applies to a single plugin.

Not sure i understood your question for two posts back. To answer your question about the most recent, yes it could be, but many developers develop their plugins with a specific use in mind and don’t think about the possibility of someone using it different, this is a global control that COULD apply across any plugin really depending on who is using it, so it could be implemented at the DAW level, unlike most.