I understand that an Audacity Macro is basically a sequence of what are essentially menu commands. No conditional statements, no looping and so on.
I have found too that in general, an Audacity command that takes parameters assumes the values used in the previous execution of that Audacity command.
The command ChangeSpeed is an example:-
As is the Comment command, .
It seems to me that the promising young macro writer could do worse than write a set of cover functions for such commands.
Suppose I want to reduce playback time by 85%, then I write a “Playback85” or a “Reduction15” macro that amongst other things invokes not the Audacity “ChangeSpeed” command, but a cover function “ChangeSpeed_1_174”, which would look like the example in the screenshot above. I might create a stable of ChangeSpeed_1_11, ChangeSpeed_1_25, ChangeSpeed_1_43, ChangeSpeed_1_67 to effect reductions to 90%, 80%, 70% and 60% of the original playback times.
Regardless of the previous playback speed, my cover function “ChangeSpeed_1_43” will always enforce the desired 70% reduction (or do I mean 30%?)
Cover Functions have a long history. If I feared that the Audacity command set was about to change, I could create up to 360 cover functions, one for each command, and base all my macros on my cover functions. When the Audacity command set changes, I change just the affected cover functions, and every one of my macros picks up the change.
Please see also this post.