Skip to content
/ audacity-scripting Public template
generated from unfor19/python-project

A Python package for managing Audacity programmatically (automatically).

License

Notifications You must be signed in to change notification settings

unfor19/audacity-scripting

Repository files navigation

audacity-scripting

IMPORTANT: This is still a Work In Progress (WIP), some features might not be stable.

PyPI

A Python package for automating Audacity tasks based on Audacity's Scripting Reference.

audacity-scripting-remove-spaces-demo.mp4

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

Supported OS: Windows, Linux, and macOS

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
  • Add labels to clips
  • Clean silence
  • Normalize audio
  • End Goal - Prepare videos for voice-clone-finetuning-vits

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.

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.

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 --file_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"

Known Issues

  • macOS prints Audacity's server logs (Server sending, Read failed on fifo, quitting, etc.) - documented in JOURNEY.md

References

Authors

Created and maintained by Meir Gabay

License

This project is licensed under the MIT License - see the LICENSE file for details