Any scripting language that supports named pipes can be used.
- The full set of Scripting Commands is listed at Scripting Reference.
- Many of the commands in the Scriptables I and Scriptables II menus were created because they are useful in scripting.
- Alternatives to Python scripting that use the same set of commands are:
What Scripting can do
Commands that Scripting uses are the same as in the Audacity macros feature. You can for example:
- Select audio
- Apply effects
- Rearrange clips
- Export the results.
Scripting goes beyond the simpler tasks and presets of macros. Using Python scripting can for example do calculations about regions to select, or can make decisions on the basis of number and types of tracks in a project. It is also possible to build additional user interface in Python, for example an extra toolbar, and have it send commands to Audacity over the pipe.
Caveats and Warnings
|Scripting drives Audacity from outside the Audacity user interface.
See the advice below about not using scripting on a web server.
|Scripting support is mainly intended for use by developers.
There is a fuller list of limitations at the foot of this page.
|Scripting is NOT SUITABLE for providing a service on a web server.
Enabling mod-script-pipe allows Audacity to be controlled from outside the Audacity User Interface. In some environments, such as a web server, that is too big a security risk.
The plug-in module "mod-script-pipe" is not enabled by default in Audacity, so must be enabled in Audacity preferences.
After enabling it for the first time, you will need to restart Audacity. You can then check that it is enabled and was started by revisiting the preferences page.
- Run Audacity
- Go into
- Choose mod-script-pipe (which should show New) and change that to Enabled.
- Restart Audacity
- Check that it now does show Enabled.
This establishes that Audacity is finding mod-script pipe, and that the version is compatible.
Check mod-script-pipe works
You will also need the scripting language Python (version 3.6 or later recommended) to try out the examples.
A simple Python test script is provided to check that the pipe is working:
After checking that the "pipe_test.py" script works, you could try adding other commands to the end of the pipe_test.py script. Each command name ends with a colon, and may be followed by parameters. For example:
For practical scripting, the script "pipeclient.py" provides a useful starting point:
More sample scripts are available here:
- 'pipe work' in GitHub - Sample scripts for exercising the pipe.
- The same collection of test scripts is also available as a download from FossHub Audacity-Devel (Scripting Tests). This includes the sample audio that is used in the tests.
A table showing all the available scripting commands is at Scripting Reference.
Most commands in Audacity that are in the Audacity menus can be accessed via Scripting. Here is one example from that table:
|SetLabel:||Set Label...||int Label, (default:0)
string Text, (default:unchanged)
|Modifies an existing label.|
The string "SetLabel: Text='Foo'" sent from Python would set the first label in a project to the word 'Foo'.
Using "pipe_test.py", the command could be sent with:
Using "pipeclient.py" as a command-line script, simply type the command at the prompt:
Enter command or 'Q' to quit: SetLabel: Text='Foo'
Known Issues & Missing Features
|Some current issues: