Audacity Scripting - Python package for automating Audacity
Project description
audacity-scripting
A Python package for automating Audacity tasks based on Audacity's Scripting Reference.
https://github.com/unfor19/audacity-scripting/assets/15122452/080e772c-3e40-424b-87ce-c2ac0dd75570
Music by Sergio Prosvirini from Pixabay
Requirements
- Install Python 3.9+
- Install Audacity 3.4.2+
- Audacity - Enable mod-script-pipe
- Run Audacity
- Go into Edit > Preferences > Modules
- 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.
Installation
python -m pip install audacity-scripting
Features
- Remove spaces between clips - Removes spaces in all tracks for a given project absolute path
/path/to/my_project.aup3
- Clean silence
- Normalize audio
- Prepare videos for voice-clone-finetuning-vits
Known Issues
- macOS prints Audacity's server logs (
Server sending
,Read failed on fifo, quitting
, etc.) - documented in JOURNEY.md
Available Commands
Auto-generated by unfor19/replacer-action, see readme.yml
Usage: audacity-scripting [OPTIONS] COMMAND [ARGS]...
No confirmation prompts
Options:
-ci, --ci Use this flag to avoid confirmation prompts
--help Show this message and exit.
Commands:
add-labels Alias: al Add labels to clips in a given project
clean-spaces Alias: cs Clean spaces between clips in a given project
do-command Alias: dc - Execute a raw command in Audacity
testing This is for testing purposes only
version-print Get the version from the version file.
Getting Started
All the commands assume that the Audacity application is up and running; That is mandatory as we communicate with Audacity's pipe to execute all the commands.
NOTE: See the GitHub Actions Tests Workflow to check it in action.
Remove spaces between clips
This command copies the original file and removes spaces (gaps) between audio clips from the copied file.
audacity_scripting clean-spaces --path "/path/to/my_project.aup3"
Send a command to Audacity
Send a command to Audacity according to Audacity's Scripting Reference.
audacity_scripting do-command --command "Select: Tracks=0.0 Start=0.0 End=0.0"
Contributing
Expand/Collapse
This section assumes you've completed the Requirements section.
Development Requirements
-
macOS
- Install HomeBrew Package Manager
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Install required packages with HomeBrew
brew install make
- Install HomeBrew Package Manager
-
Windows
-
Install Chocolatey Package Manager
-
Install required packages with Choco
IMPORTANT: Open a PowerShell window with elevated permissions (As Administrator)
choco install -y make
-
From now on, we'll use make
commands to develop and build this Python package locally.
-
Fork this repository on GitHub
-
Git clone your forked repository
-
Add this repository as a "source" remote
cd audacity-scripting
git remote add source https://github.com/unfor19/audacity-scripting.git
Check git remotes
git remote -v
Assuming you are
willywonka
, here's the desired output:origin https://github.com/willywonka/audacity-scripting.git (fetch) origin https://github.com/willywonka/audacity-scripting.git (push) source https://github.com/unfor19/audacity-scripting.git (fetch) source https://github.com/unfor19/audacity-scripting.git (push)
-
Prepare
.VENV
directory - This step also installs the latest version ofpip
andwheel
make venv-prepare
-
IMPORTANT: The Makefile activates
.VENV
for anyvenv-
target. -
Install this package's development
requirements.txt
in.VENV
make venv-install
-
Install this package in edit mode
IMPORTANT: For any change in ./src/audacity_scripting/cli/, it's best to re-run this command to update the CLI commands; see Click Framework.
make venv-install-edit
You can now start the development process!
Development Process
- Checkout to a new branch
feature/my-awesome-feature
- (Optional) Add a new Python package and update ./requirements.txt accordingly
make venv-install PACKAGE_NAME=click==8.1.7
make venv-requirements-update
- Add tests on your feature in ./tests; all tests are based on the Python's unittest framework
- Run tests - This wrapper command kills existing Audacity instances, cleans up test outputs, starts Audacity, and then starts the tests.
make wrapper-run-test
- Commit changes to your cloned fork
git commit -am "added an awesome feature"
- Create a GitHub Pull Request from your fork to the source repository.
Syncing with the "source" code
You've already added source
as a git remote, to sync from source
to your current branch, execute this command:
git pull source main
Following that, you might need to handle some merge conflicts, but that's it; you're up-to-date with the latest version of the source code.
References
- GitHub Issue - Audacity Remove spaces between clips
- SourceForge Issue - Audacity pipes
- GitHub Actions Windows Pipes Discussion
- Audacity pipes issue on Windows
- Python and Windows named pipes on Stackoverflow
Authors
Created and maintained by Meir Gabay
License
This project is licensed under the MIT License - see the LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for audacity_scripting-1.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e105c1746dbd889ed9145ef7ad1d25160bf7379aa9897ff8625f99ddd8be9021 |
|
MD5 | dc3e12e15db79a10fa820fbeaa568f54 |
|
BLAKE2b-256 | 92860ca0ee52dcfcb99c6b72845c6898841a5ba749ef34c5fada02d16fa47909 |