View Issue Details

IDProjectCategoryView StatusLast Update
0006983ardourbugspublic2020-03-15 17:06
Reporterbeefheart Assigned Totimbyr  
Status assignedResolutionreopened 
PlatformLinuxOSKubuntuOS Version16.04
Product Version5.0 
Summary0006983: The plugin manager adds plugins to the track in the reverse order
DescriptionIf you select multiple plugins in the plugin manager and then add them to a track/bus the plugins are added in the opposite order that you selected them in the manager.

Select plugins to add in this order:
plugin a
plugin b
plugin c

Plugins are added in this order:
plugin c
plugin b
plugin a
TagsNo tags attached.


duplicate of 0005705 closedLeatuspenguin Plugins load up in reverse order from what the plugin manager shows 
related to 0007416 closedx42 Plugings copy paste of plugins (very!) challenging 



2016-08-25 17:45

reporter   ~0018481

I've seen the same behavior as well on the Mac OS X version of 5


2016-08-25 20:09

reporter   ~0018483

Duplicate of 0005705


2016-08-29 17:48

reporter   ~0018512

I've just noticed that this also happens with copy and pasting a bunch of fx from one track to another, the order gets reversed on the destination track as well.


2017-07-06 23:59

administrator   ~0019866

Fixed since Ardour 5.10-211-g608f99ad1


2017-08-29 08:42

reporter   ~0019993

Testing 5.11 and this is not fixed entirely. Selecting the plugins, ctrl+c and then ctrl+v on the new track copies the fx in the correct order but if you right click on the selection to copy and then right click in the new track to paste they are inserted in the wrong order.


2017-08-31 12:16

developer   ~0020007

I cannot reproduce the issue you describe with 5.11.

For instance in a new Session with two Tracks, with the first containing a-Compressor, a-Delay and a-EQ post fader in that order. If I select them in the reverse order, i.e eq, delay, compressor and then right click and copy and paste to the second track then the processing order is correct (comp -> delay -> eq)

Perhaps there is some detail I am missing, so can you please provide a more explicit set of instructions to reproduce.


2017-08-31 12:48

reporter   ~0020008

Just as you did really, add some plugins to a track prefader, select them by clicking the first plugin (or last, don't seem to make much difference) and then shift clicking on the last plugin, right click on the last plugin and copy. Right click on in the prefader fx section of the new track and paste.

I've just noticed that pasting them post fader seems to add them in the correct order but if you paste pre fader on the same track they get put in the wrong order.


2017-09-01 00:30

developer   ~0020010

I can confirm that copy and pasting pre-fader does cause them to be added in the incorrect order with 5.11 and master (5.11.144)


2017-09-04 00:26


0001-Fix-copying-and-pasting-processors-plugins-pre-fader.patch (1,750 bytes)   
From d5e287e6fbbefe1c1de3d371f49f78868e226880 Mon Sep 17 00:00:00 2001
From: Tim Mayberry <>
Date: Mon, 4 Sep 2017 10:13:35 +1000
Subject: [PATCH] Fix copying and pasting processors/plugins pre-fader

When processor index == 0 Route::before_processor_for_index() would always
return an empty processor sptr that resulted in trying to insert before the
Trim processor rather than before the first processor that is displayed to the
user (Fader/Amp).

Related to #6983
 libs/ardour/ | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/libs/ardour/ b/libs/ardour/
index e89b9b8..041f03b 100644
--- a/libs/ardour/
+++ b/libs/ardour/
@@ -725,7 +725,7 @@ Route::before_processor_for_placement (Placement p)
 /** Supposing that we want to insert a Processor at a given index, return
- *  the processor to add the new one before (or 0 to add at the end).
+ *  the processor to add the new one before (or -1 to add at the end).
 Route::before_processor_for_index (int index)
@@ -736,17 +736,15 @@ Route::before_processor_for_index (int index)
 	Glib::Threads::RWLock::ReaderLock lm (_processor_lock);
-	ProcessorList::iterator i = _processors.begin ();
 	int j = 0;
-	while (i != _processors.end() && j < index) {
-		if ((*i)->display_to_user()) {
-			++j;
+	for (ProcessorList::const_iterator i = _processors.begin (); i != _processors.end(); ++i) {
+		if ((*i)->display_to_user() && j >= index) {
+			return *i;
-		++i;
+		j++;
-	return (i != _processors.end() ? *i : boost::shared_ptr<Processor> ());
+	return boost::shared_ptr<Processor> ();
 /** Add a processor either pre- or post-fader


2017-09-04 00:28

developer   ~0020011

I uploaded a patch that should fix the issue with copy and pasting pre-fader. I'm not that familiar with that part of the code so I'll wait for some feedback before committing.

I noticed a few other issues but I don't think there are any regressions after applying the patch.

Issue History

Date Modified Username Field Change
2016-08-25 17:43 beefheart New Issue
2016-08-25 17:45 TheCranston Note Added: 0018481
2016-08-25 20:09 Leatuspenguin Note Added: 0018483
2016-08-29 17:48 beefheart Note Added: 0018512
2016-08-31 10:11 paul Relationship added duplicate of 0005705
2017-07-06 23:59 x42 Note Added: 0019866
2017-07-06 23:59 x42 Status new => resolved
2017-07-06 23:59 x42 Resolution open => fixed
2017-07-06 23:59 x42 Assigned To => x42
2017-07-07 00:00 x42 Relationship added related to 0007416
2017-08-29 08:42 beefheart Note Added: 0019993
2017-08-29 08:42 beefheart Status resolved => feedback
2017-08-29 08:42 beefheart Resolution fixed => reopened
2017-08-31 12:16 timbyr Note Added: 0020007
2017-08-31 12:48 beefheart Note Added: 0020008
2017-08-31 12:48 beefheart Status feedback => assigned
2017-09-01 00:30 timbyr Note Added: 0020010
2017-09-04 00:26 timbyr File Added: 0001-Fix-copying-and-pasting-processors-plugins-pre-fader.patch
2017-09-04 00:28 timbyr Note Added: 0020011
2020-03-15 17:06 x42 Assigned To x42 => timbyr