How to add effect after bus

Hi, I’m recording with Ardour and have multiple tracks which need same effects. So I created a bus with all the effects and routed all tracks to the bus with the effects. So far everything is good.

Now I want to add other effects, for example some Reverb, to a track, but not all tracks. So adding the Reverb effect to the bus is no option.
I want that the track goes through my effects bus, and after this, it should add the Reverb effect.

I could clone my effects bus and make a second version, which has same effects plus reverb on it.
But problems with this solution:

  • If I change some settings in effects, I will have to change them twice, on both effect busses.
  • Higher CPU usage because effects have to run twice
    This works for now, but it is not a good solution.

So some way to process a track by a bus and get the audio back from the bus onto the track to process it further would be nice.
How can I do this in Ardour?

Ardour does not support this workflow. You cannot “insert” a bus into a track.

Why would you want to do this anyway? The audio is already summed. “routing back” the sum of the bus won’t buy you anything. You can just keep adding effects the bus, or send to another bus.

Are the effects that you are using that CPU intense that you have to consolidate them to a single instance on a bus? I suggest to just copy the effects to each track (you can use drag/drop and can also keep their settings in sync by by dragging). Then use aux-sends to a reverb bus.

Or, put the reverb on its own bus, add Send Effect in the original track and send that reverb bus to the same bus

Yeah sorry, I didn’t think about this. It will be not possible without having another instance of the effects for this bus.

Well, I have some ‘base’ effects, that I want to have on all tracks, since they will be all recorded with same mic and my voice, so inputs are pretty similar, so I can use same effects / setups.

I always need at least: noise reduction, gate, compressor and equalizer.
And after them for example reverb or other effects, but only on some of the tracks.

I will end up with maybe about 30 tracks.

Well, to be frank, I haven’t tryed, but I guess to have 30 instances of at least my 4 basic effects could eat up some CPU.
But it would be the best solution, which I can tweak the best.
Do you have experience with such a setup? Could it be possible to run 30*4+ effects on a 2 years old higher mid class CPU?

For reverb and such effects, a bus would be a good solution.
Only problem is I would like to have the other effects first, and after them the reverb. But if I output a track to my effects bus, it is not possible to add a send on the track but after the bus.

So currently I’m thinking about having the effects on every single track.
Would you recommend such a setup. Have you tryed it to have multiple effects on about 30 tracks? How was CPU usage?

very likely: yes.

Ardour is designed to efficiently run many plugins, but it depends on the effects in particular and the buffersize.

Ardour was fine with ~150 track sessions with a Compressor + EQ for mixing on core-duo CPUs about a decade ago. Some have even larger sessions. Also Harrison Mixbus (an Ardour derivative) has those built-in on every track and every bus and has been around for over a decade.

Expander/Gate, compressor and EQs need very little CPU, I’d expect you can easily run a few hundred of those even a modest modern machine and also at rather low latency. Noise-reduction plugins however can be heavy on the CPU.

PS. It is relatively easy to test: Create a track, add the effects, select the track, Menu > Track > Duplicate Track/Bus (10 times). check, duplicate again, add 10 more. etc. Check the DSP load or look when Ardour starts to overload and x-run.

PPS. @at0m’s suggestion is also a good one!

1 Like

@Bleuzen: also, bear in mind that processing all tracks through a single instance of a compressor or gate (or any non-linear plugin) is not at all the same thing as processing each one with an individual instance. For example, a noise gate working on the sum of all tracks will open whenever any of the tracks has enough signal, letting through any noise from all the other tracks at the same time. So in this instance, you really do want an instance of at least the noise reduction, gate, and compressor for each track. The action of these will also depend on whether they’re receiving an EQ’ed signal, so if you want the EQ before any of them in the signal path you will need an instance of EQ for each too.


Ok, I tryed it with the duplicate test. With all 4 effects, it wouldn’t work.
Then I tryed to only have Gate, Compressor and EQ on the tracks. It has lower CPU usage, but still much (55% only the ardour process when having 35 tracks).

So there are 2 things to optimize:

  • I use Calf for Gate, Compressor and EQ. It seems Calf has pretty high CPU usage. Maybe there are better Gates / Compressors / EQs with lower CPU usage
  • The noise reduction is on every track with same settings. It would be a smart idea to have them processed once and not always calculate the noise reduction effect during playback. So is there a way to apply the noise reduction effect during recording, but with keeping the recording in sync? This would be a great help and save a lot of CPU.

Yep thanks for the explanation. You are right, as I wrote earlier, I didn’t think of that when I wrote my first post. So since multiple instances are needed anyway, I have chosen to have the effects on all tracks. It would work if I could find a way to ‘pre-process’ the noise reduction effect (or apply it during recording) and not in realtime during playback.

And thanks for your help guys so far!

Edit: I just read in the Ardour development update that “Wet Recording” is comming.
So I guess I will have to wait for Ardour 6 :confused:

To record we, you can use Input -> Bus [de-noise Fx] -> track [record] ->... in Ardour5. It’s not very convenient, but it works just fine.

Thanks, but this adds delay to the recording.

It will be perfectly aligned if you ensure that the (recording) track’s inputs are only connected to the bus. You probably have a connection setup where the track’s inputs include both the bus and some physical inputs.

Recording track is not connected to hardware, only to the bus where the noise reduction effect is on.

To test this, I have created 2 tracks, which record at the same time. One track (“R 1”) records from the NoiseReduction-FX bus, and the other track (“R 2”) records from hardware.

Here are my input settings for R 1:

And for R 2:

Now let’s make a test recording:

As you can see, R 2 (recording from hardware) is in sync and not delayed, but R 1 is a little delayed.

(I’m using Ardour 5.12 on Manjaro Linux with Jack 2 as backend.)

@bleuzen: This is correct. Since you have two connections to the same source, the latency is be ambiguous and cannot correctly compensated for. Do as @paul suggested and only connect one source. This is important in Ardour 5.12 which does not features bus-latency compensation.

Also this all assumes that the plugin that you are using does report its latency correctly. What plugin are you testing here? Also, how do you conclude that “R2” is “in sync” - I don’t see any reference to synchronize to.

To test this: Play track 1 -> soundcard, physical output -> analog-cable -> soundcard, analog input -> record on track 2.

The cable here emulates a musician exactly playing along, repeating what you hear from track1. Recording it on track2 should align perfectly.

@x42 I have removed all connections to my hardware, only the bus records from hardware now. Still the same problem.
During testing I also tryed to remove the noise reduction effect. And found out, that this may not be the problem. Even without the effect (and without any other effects) when I record through the bus, there is latency.
Only the bus (w/o effects) records from hardware, only the recording track records from the bus -> unwanted latency.

I also tested this with a new session, to be sure nothing is wrong with my session:

  1. Add a bus (without effects)
  2. Remove all connections to hardware input expect to the bus
  3. Let a track record from that bus
    you (or at least I) end up with an unwanted latency in the recording.
    As soon as I let the track record from hardware and not the bus, there is no latency anymore.

To be sure it is in sync, I listen to the result. I have my Instrumental imported as a track and only record my voice with Ardour. I can hear during listening, if my voice fits in the song or not.

Noise reduction plugin is this one:

And I haven’t tested your idea yet, but the plugin not seems to be the problem, since latency is already there without effects. (Also it displays it’s latency in the little window in it’s settings, so it seems it reports it’s latency.)