View Issue Details

IDProjectCategoryView StatusLast Update
0001724ardourfeaturespublic2020-04-19 20:12
Reporterlincoln Assigned Topaul  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Product Version2.0 
Summary0001724: Solo and muted tracks
DescriptionArdour 2 presently implements a Solo In Place policy. This means that if you solo a muted track, the track will remain muted. Cubase behaves differently here, if you solo a muted track you will be able to hear it.

I personaly find this feature very useful and have come to miss it in Ardour.

I am attaching a small patch to unmute the track if the solo button is pressed. In this mode Ardour will still solo in place but it disregards the mute button. The track is muted again once the solo is disengaged.

Maybe this feature should be made available as an option. I would be willing to look into that if people find this useful.

Lincoln
TagsNo tags attached.

Activities

2007-06-08 14:08

 

route_cc_solo_unmute.patch (693 bytes)   
Index: libs/ardour/route.cc
===================================================================
--- libs/ardour/route.cc	(revision 1979)
+++ libs/ardour/route.cc	(working copy)
@@ -769,7 +769,12 @@
 		_soloed = yn;
 		solo_changed (src); /* EMIT SIGNAL */
 		_solo_control.Changed (); /* EMIT SIGNAL */
-	}
+	}	
+	
+	if (_muted) {
+		Glib::Mutex::Lock lm (declick_lock);
+		desired_mute_gain = (yn?1.0:0.0);
+	}	
 }
 
 void
@@ -808,7 +813,13 @@
 		_mute_control.Changed (); /* EMIT SIGNAL */
 		
 		Glib::Mutex::Lock lm (declick_lock);
-		desired_mute_gain = (yn?0.0f:1.0f);
+		
+		if (_soloed){
+			desired_mute_gain = 1.0f;
+		}
+		else {
+			desired_mute_gain = (yn?0.0f:1.0f);
+		}
 	}
 }
route_cc_solo_unmute.patch (693 bytes)   

porl

2007-06-13 08:10

reporter   ~0004065

another way would be to make the solo button work more like a 'pre fader listen' button - it ignores routing, muting and fader position and goes directly to a pre-determined output (often either the control room output or a headphones output on a live desk). if you could allow in the options the target output for the solo/pfl button i think it would be extremely flexible.

porl

realhangman

2007-06-15 17:10

reporter   ~0004069

Very good suggestion lincoln.

I'd only use the feature porl suggested with a complete new button (pfl). The solo button must be post-fader.

paul

2007-06-27 20:25

administrator   ~0004082

porl - solo via bus as the solo model (under options) already does that.

paul

2007-06-27 20:25

administrator   ~0004083

lincoln, i'd welcome this done as an option.

2007-08-15 20:06

 

solo_mute_override.patch (4,337 bytes)   
Index: gtk2_ardour/ardour_ui.h
===================================================================
--- gtk2_ardour/ardour_ui.h	(revision 2300)
+++ gtk2_ardour/ardour_ui.h	(working copy)
@@ -691,6 +691,7 @@
 	void toggle_GainReduceFastTransport();
 	void toggle_LatchedSolo();
 	void toggle_ShowSoloMutes();
+	void toggle_SoloMuteOverride();
 	void toggle_LatchedRecordEnable ();
 	void toggle_RegionEquivalentsOverlap ();
 	void toggle_PrimaryClockDeltaEditCursor ();
Index: gtk2_ardour/ardour.menus
===================================================================
--- gtk2_ardour/ardour.menus	(revision 2300)
+++ gtk2_ardour/ardour.menus	(working copy)
@@ -324,6 +324,7 @@
                    <menuitem action='SoloInPlace'/>
                    <menuitem action='SoloViaBus'/>
                    <menuitem action='ShowSoloMutes'/>
+                   <menuitem action='SoloMuteOverride'/>
                </menu>
 	       <menu action='Crossfades'>
 		   <menuitem action='toggle-xfades-active'/>
Index: gtk2_ardour/ardour_ui_ed.cc
===================================================================
--- gtk2_ardour/ardour_ui_ed.cc	(revision 2300)
+++ gtk2_ardour/ardour_ui_ed.cc	(working copy)
@@ -450,6 +450,8 @@
 	ActionManager::session_sensitive_actions.push_back (act);
 	act = ActionManager::register_toggle_action (option_actions, X_("ShowSoloMutes"), _("Show solo muting"), mem_fun (*this, &ARDOUR_UI::toggle_ShowSoloMutes));
 	ActionManager::session_sensitive_actions.push_back (act);
+	act = ActionManager::register_toggle_action (option_actions, X_("SoloMuteOverride"), _("Override muting"), mem_fun (*this, &ARDOUR_UI::toggle_SoloMuteOverride));
+	ActionManager::session_sensitive_actions.push_back (act);
 
 	/* !!! REMEMBER THAT RADIO ACTIONS HAVE TO BE HANDLED WITH MORE FINESSE THAN SIMPLE TOGGLES !!! */
 
Index: gtk2_ardour/ardour_ui_options.cc
===================================================================
--- gtk2_ardour/ardour_ui_options.cc	(revision 2300)
+++ gtk2_ardour/ardour_ui_options.cc	(working copy)
@@ -483,6 +483,12 @@
 }
 
 void
+ARDOUR_UI::toggle_SoloMuteOverride()
+{
+	ActionManager::toggle_config_state ("options", "SoloMuteOverride", &Configuration::set_solo_mute_override, &Configuration::get_solo_mute_override);
+}
+
+void
 ARDOUR_UI::toggle_PrimaryClockDeltaEditCursor()
 {
 	ActionManager::toggle_config_state ("options", "PrimaryClockDeltaEditCursor", &Configuration::set_primary_clock_delta_edit_cursor, &Configuration::get_primary_clock_delta_edit_cursor);
@@ -969,6 +975,8 @@
 		ActionManager::map_some_state ("options", "LatchedSolo", &Configuration::get_solo_latched);
 	} else if (PARAM_IS ("show-solo-mutes")) {
 		ActionManager::map_some_state ("options", "ShowSoloMutes", &Configuration::get_show_solo_mutes);
+	} else if (PARAM_IS ("solo-mute-override")) {
+		ActionManager::map_some_state ("options", "SoloMuteOverride", &Configuration::get_solo_mute_override);
 	} else if (PARAM_IS ("solo-model")) {
 		map_solo_model ();
 	} else if (PARAM_IS ("auto-play")) {

Index: libs/ardour/route.cc
===================================================================
--- libs/ardour/route.cc	(revision 2300)
+++ libs/ardour/route.cc	(working copy)
@@ -769,7 +769,12 @@
 		_soloed = yn;
 		solo_changed (src); /* EMIT SIGNAL */
 		_solo_control.Changed (); /* EMIT SIGNAL */
-	}
+	}	
+	
+	if (_muted && Config->get_solo_mute_override()) {
+		Glib::Mutex::Lock lm (declick_lock);
+		desired_mute_gain = (yn?1.0:0.0);
+	}	
 }
 
 void
@@ -808,7 +813,13 @@
 		_mute_control.Changed (); /* EMIT SIGNAL */
 		
 		Glib::Mutex::Lock lm (declick_lock);
-		desired_mute_gain = (yn?0.0f:1.0f);
+		
+		if (_soloed && Config->get_solo_mute_override()){
+			desired_mute_gain = 1.0f;
+		}
+		else {
+			desired_mute_gain = (yn?0.0f:1.0f);
+		}
 	}
 }
 
Index: libs/ardour/ardour/configuration_vars.h
===================================================================
--- libs/ardour/ardour/configuration_vars.h	(revision 2300)
+++ libs/ardour/ardour/configuration_vars.h	(working copy)
@@ -85,6 +85,7 @@
 CONFIG_VARIABLE (bool, latched_record_enable, "latched-record-enable", false)
 CONFIG_VARIABLE (bool, all_safe, "all-safe", false)
 CONFIG_VARIABLE (bool, show_solo_mutes, "show-solo-mutes", false)
+CONFIG_VARIABLE (bool, solo_mute_override, "solo-mute-override", false)
 
 /* click */
solo_mute_override.patch (4,337 bytes)   

lincoln

2007-08-15 20:09

reporter   ~0004269

I uplooadedd a patch to optionally unmute a soloed track. This patch extends the previous patch with a new option in the options->solo menu as requested. The option is called 'override muting'.

lincoln

2008-10-11 13:35

reporter   ~0005181

Paul, any chance of getting this included at some point?

seablade

2008-11-24 12:18

manager   ~0005334

Assigning to Paul to take a look at the newer patch.

     Seablade

paul

2008-11-26 21:36

administrator   ~0005380

patch applied and extended so that changes in option state are tracked as it happens.in 2.7.1.

system

2020-04-19 20:12

developer   ~0021529

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
2007-06-08 14:08 lincoln New Issue
2007-06-08 14:08 lincoln File Added: route_cc_solo_unmute.patch
2007-06-13 08:10 porl Note Added: 0004065
2007-06-15 17:10 realhangman Note Added: 0004069
2007-06-27 20:25 paul Note Added: 0004082
2007-06-27 20:25 paul Note Added: 0004083
2007-08-15 20:06 lincoln File Added: solo_mute_override.patch
2007-08-15 20:09 lincoln Note Added: 0004269
2008-10-11 13:35 lincoln Note Added: 0005181
2008-11-24 12:18 seablade Status new => assigned
2008-11-24 12:18 seablade Assigned To => paul
2008-11-24 12:18 seablade Note Added: 0005334
2008-11-26 21:36 paul cost => 0.00
2008-11-26 21:36 paul Status assigned => resolved
2008-11-26 21:36 paul Resolution open => fixed
2008-11-26 21:36 paul Note Added: 0005380
2020-04-19 20:12 system Note Added: 0021529
2020-04-19 20:12 system Status resolved => closed