Hello, I am using Ardour to practice transcribing and I often find myself soloing my midi track and then reference audio track to see how I am doing. Right now I am doing this with my mouse which is rather annoying because it breaks the flow.
Is it possible for me to add the following kind of functionality? When I press F1, exclusive solo is switched on first track and when I press F2, exclusive solo is switched on the second track.
I checked out the scripting section in the manual and I saw Track and Route class methods that can check if a track is soloed or muted although I am not sure if I can do that muting or soloing myself. Also I am not sure how I could add my own shortcuts for this.
If I can figure out how to get the tracks, check and set solo and bind it to a shortcut, I could implement the script. Thanks in advance!
Not possible unless you want to write some Lua. There are no actions for “solo Track N”, only for “solo selected track(s)”. Once you’ve written a script for each possible “Track N”, you can bind certain keys to the script, but there isn’t a free choice of keys and there’s s a lmit to how many you can bind.
Haven’t tested it but in theory you could conceivably use Mixer Scenes for this, set up one scene with track one solo’d and the second scene for track two solo’d. Then use F1 and F2 to swap between.
I managed to more or less achieve what I want with the mixer scenes. I set up F1 to solo track one, F2 to solo track two and F3 to apply no solo. The only problem is that the shortcuts only work when I am in the “Mix” view.
I also tried to achieve the results via Lua but I didn’t succeed. It seems like only RouteGroup object is soloable/mutable but I have no route groups, just routes (which I managed to find via Session:get_routes()). If there is no other way, I guess I could wrap the first and the second track in its own route group and then operate on that.
Tracks and busses and VCAs (which all inherit from ARDOUR:Stripable) all have a solo (and mute) control, and that’s what you have to use to solo them (using :set_value())