View Issue Details

IDCategoryLast Update
0007116bugs2020-04-19 20:18
ReporterOnkelDeadAssigned Toovenwerks 
Reproducibilityalways 
Status closedResolutionfixed 
Platformx86_64OSUbuntuOS Version16.04.01
Product Version5.X git (version in description) 
Fixed in Version 
Summary0007116: Control send enable via OSC via /select/send_enable wont work as expected
DescriptionAll I've tried with /select/send_enable or /strip/send/enable seems to have no effect.
I tested it with both, internal sends (to Audio Bus) or external send (to hardware interface directly).

I'm using Ardour as a digital live mixer with mono audio bus strips as stage monitor sends. I'd like to use this functionality to mute single monitors for each track/instrument.

If my assumption about the expected behavior is wrong, please let me know.

Checked on Ardour 5.4.367.
Steps To Reproduce- Create an Ardour session from scratch, add one audio track and one audio bus.
- On the audio track, add an aux send to the bus.
- Select the audio track.
- Try to disable/enable this send via OSC with /select/send_enable or /strip/send/enable.
TagsNo tags attached.

Activities

ovenwerks

2016-11-16 17:16

reporter   ~0018976

This works for Mixbus which has an enable signal built in (RT code I think). Ardour does not. As such Ardour always shows enabled in the OSC feedback. This may be changed to plugin/processor disable in Ardour but would then create the possibility of having clicks in the bus the send was pointed at. So at the moment, these two commands are Mixbus specific.

Does having this control processor disable seem like a good solution to you?

OnkelDead

2016-11-17 08:33

reporter   ~0018978

Hm, if I understood your suggestion right, I should enable/disable sends via /strip/plugin/(de)activate.
Unfortunately this wont work and Ardour logs an OSC Error:

[ERROR]: OSC: cannot find plugin # 2 for RID '1'

Seems that Ardour skips internal sends as not be a processor plugin during this OSC functionality.


BTW: possible clicks aren't a real problem because I use this function during stage setup before the live performance/recording.
Until now, I did apply a patch to Ardour (attached file) to solve this, but this cant be a final solution.

OnkelDead

2016-11-17 08:34

reporter  

route_set_send_enable.patch (1,000 bytes)
--- 5.4.367-org/ardour/libs/surfaces/osc/osc.cc	2016-11-16 10:43:37.046847998 +0100
+++ 5.4.367/ardour/libs/surfaces/osc/osc.cc	2016-11-17 09:28:14.060806484 +0100
@@ -2597,6 +2597,24 @@
 		}
 
 		if (s->send_level_controllable (sid)) {
+                    
+                        boost::shared_ptr<Route> r = boost::dynamic_pointer_cast<Route> (s);    
+                        
+                        if (!r) {
+                               return 0;
+                        }
+                        
+                        boost::shared_ptr<Send> s = boost::dynamic_pointer_cast<Send> (r->nth_send(sid));
+
+                        if (s) {
+                                if (val) {
+                                        s->activate();
+                                }
+                                else {
+                                        s->deactivate();
+                                }
+                        }  
+                        
 			return 0;
 		}
 

ovenwerks

2016-11-17 16:59

reporter   ~0018982

No the plugin parts will not help, you are right. I was asking if using deactivate would be useful so I could implement it :)

The answer seems to be yes. Your patch is certainly the first step, but there are at least three places where enable needs to be added to the code.

ovenwerks

2016-11-18 15:56

reporter   ~0018986

Fixed in commit 1015e19ad3d5b9aa0f368bc6add1fbceac0091d4 Should work for both /strip and /select

system

2020-04-19 20:18

developer   ~0023674

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2016-11-16 10:40 OnkelDead New Issue
2016-11-16 17:16 ovenwerks Note Added: 0018976
2016-11-16 17:16 ovenwerks Status new => feedback
2016-11-17 08:33 OnkelDead Note Added: 0018978
2016-11-17 08:33 OnkelDead Status feedback => new
2016-11-17 08:34 OnkelDead File Added: route_set_send_enable.patch
2016-11-17 16:59 ovenwerks Note Added: 0018982
2016-11-18 15:56 ovenwerks Note Added: 0018986
2016-11-18 15:56 ovenwerks Status new => resolved
2016-11-18 15:56 ovenwerks Resolution open => fixed
2016-11-18 15:56 ovenwerks Assigned To => ovenwerks
2020-04-19 20:18 system Note Added: 0023674
2020-04-19 20:18 system Status resolved => closed