Automate sliding time scale for large amount of selection


I am just wondering if anyone could help me with a task that has to do with sliding time scale? I have 40+ songs that I want to perform the sliding time scale function on but I am not sure about how to do it more efficiently, I am new to Audacity and music processing so can anyone point me in the right direction? Thanks a lot!

For each song I don’t want to apply the sliding time scale on the entire thing, instead I have probably 50+ segments within each song that I want to shrink their length for (for each song the segments are different too). I have lists of all the segments in each song that I want to select and shrink, along with the % of tempo change associated with each segment. It will look like this:

segment % of tempo change I want
frame 10 to 20 50%
frame 56 to 72 90%
(50+ of these for each song)…

Since there are a lot of segments to process I don’t want to select them manually one by one, so I am just wondering is there a tool associated with Audacity that can allow me to enter all the selection at once and perform the tempo change automatically?

I also welcome any solution that is not in Audacity! I have also looked into AutoHotKey which allows users to automate a series of actions in a GUI, but I am not sure if it can also read a text file line by line and enter the info for me automatically. I am also open to the option of building a plug-in by myself but can anyone point me to where I could get started?

I apologize if this is posted in the wrong board!

Once you change the tempo of one section all subsequent timings will change : the subsequent parts you wanted to modify the tempo of will then occur at a different time.

A possible solution : split up the track into segments using labels. Then select the segments where you want to change the tempo, modify them, then reassemble all the segments to create the finished track.

If the tempo change for many segments was the same, they could be done as a batch process : which in Audacity is called “chains”.


So about this problem I was thinking I could start processing the segments from the end of the track all the way to the beginning of it, so that if I change the length of a segment at the end it wouldn’t affect the start time of all the segments before it. I am thinking this could solve the problem too?