Batch Tempo Change


I have a folder with 212 sound files that need to be exactly the same length (0.8s). I am using the Change Tempo feature from Audacity, and edited a chain (> parameters > length > 0.8) in order to do it in batch since it is very time consuming. However the resulting sounds remain unchanged.

Is there anything I can do?


I think that’s it for now. Change Tempo takes its setting from the “percentage” control, so for different length sound files to all end up the same length, you have to adjust the setting for each file.

In the future it may be possible to write a script to automate the process, but unfortunately that does not help you now.

I see! thank you very much

Ahh, I am trying to do almost exactly the same thing… I don’t suppose anyone has made any progress to solve this: be able to define chains using length variables and not just percent change?

Or anyone else know of any programmatic way to achieve this same result? Going through manually for what I want to do would be super tedious

This is looking very likely for the next version of Audacity (Audacity 2.3.0).
I’ve tested this script successfully with the alpha version:
(It will NOT work with Audacity 2.2.2 or earlier)

;nyquist plug-in
;version 4
;type tool
;name "Change to Length"
;author "Steve Daulton"
;copyright "Released under terms of the GNU General Public License version 2"

;control target "Target duration" time "" 30 1 nil

(let ((len (- (get '*selection* 'end)(get '*selection* 'start))))
  (setf pc (/ (* 100.0 (- len target)) target))
  (setf command (format nil "ChangeTempo: Percentage=~a" pc))
  (aud-do command))