I’m talking about adjusting the gain levels across all tracks, in one operation. I know of other ways to change the volume, but can I adjust gain levels (specifically, the gain sliders) on multiple tracks, simultaneously?
There’s no built-in way to adjust the gain of multiple tracks at the same time, but you could write a Nyquist Macro to do so.
Here’s some code that could be the basis of such a plug-in. This code may be run as it is in the Nyquist Prompt with Audacity 2.4.0:
;type tool
;control mode "Set track gain as" choice "Absolute value,Increase/Decrease" 0
;control gain "Track Gain (dB)" float "" 0 -36 36
(let ((trackinfo (aud-get-info "tracks"))
(id 0))
(dolist (info trackinfo)
(let ((isselected (assoc 'SELECTED info))
(trkgain (assoc 'GAIN info)))
(when (and isselected (= (second isselected) 1))
(case mode
(0 (aud-do-command "SelectTracks" :mode "Set" :track id :trackcount 1)
(aud-do-command "SetTrackAudio" :gain gain))
(t (setf trkgain (+ (linear-to-db (second trkgain)) gain))
(setf trkgain (max (min trkgain 36) -36))
(aud-do-command "SelectTracks" :mode "Set" :track id :trackcount 1)
(aud-do-command "SetTrackAudio" :gain trkgain))))
(incf id))))
For slightly earlier versions of Audacity, the “aud-do-command” lines will need replacing with “aud-do” commands.
Note that Nyquist Macros are quite a new feature, so this won’t work at all on old versions.
Thanks Steve, So, I’ll wait until 2.4.0 is out. Will this code work for Linux also?