O que você vai aprender

  • Entender o mod-script-pipe
  • Configurar o Audacity para scripting
  • Escrever scripts Python básicos
  • Automatizar tarefas repetitivas
  • Integrar com fluxos de trabalho externos

Antes de começar

  • Python 3 instalado
  • Audacity 3.6+ instalado
  • Familiaridade com linha de comando

O que é mod-script-pipe?🔗

O mod-script-pipe é um módulo do Audacity que permite controle externo via named pipes (sockets). Scripts Python (ou qualquer linguagem) podem enviar comandos ao Audacity e receber respostas.

Fluxo: Python → named pipe → Audacity → processamento → resposta

Configurando o Audacity🔗

Habilitar o mod-script-pipe🔗

  1. Edit > Preferences...Modules
  2. Encontre mod-script-pipe
  3. Mude para New (ou Enabled)
  4. Reinicie o Audacity

O mod-script-pipe vem incluído no Audacity, mas pode estar desabilitado por padrão.

O Protocolo de Comunicação🔗

O script envia comandos como texto via named pipe:

  • Windows: \\.\pipe\ToSrvPipe e \\.\pipe\FromSrvPipe
  • Linux/macOS: /tmp/audacity_script_pipe.to.* e /tmp/audacity_script_pipe.from.*

Comandos são strings terminadas por newline.

Primeiro Script Python🔗

import sys
import os

if sys.platform == 'win32':
    to_pipe = r'\\.\pipe\ToSrvPipe'
    from_pipe = r'\\.\pipe\FromSrvPipe'
else:
    to_pipe = os.path.expanduser('~/tmp/audacity_script_pipe.to.1000')
    from_pipe = os.path.expanduser('~/tmp/audacity_script_pipe.from.1000')

def send_command(cmd):
    with open(to_pipe, 'w') as f:
        f.write(cmd + '\n')
        f.flush()

def get_response():
    with open(from_pipe, 'r') as f:
        return f.readline().strip()

# Exemplo: criar novo projeto
send_command('New:')
print(get_response())

# Importar arquivo
send_command('Import2:Filename=/caminho/para/audio.wav')
print(get_response())

Comandos Úteis🔗

ComandoDescrição
New:Novo projeto
Open:Filename=pathAbrir projeto
Import2:Filename=pathImportar áudio
Export:Filename=pathExportar áudio
Select:Start=0 End=10Selecionar trecho
Silence:Silenciar seleção
Effect:Compressor:...Aplicar efeito
Play:Reproduzir
Stop:Parar

Exemplo: Processamento em Lote🔗

import os

# Lista de arquivos para processar
files = ['audio1.wav', 'audio2.wav', 'audio3.wav']

for f in files:
    send_command(f'Import2:Filename={f}')
    send_command('SelectAll:')
    send_command('Effect:NoiseReduction:NoiseReduce=6')
    send_command('Effect:Normalize:PeakLevel=-1')
    output = f.replace('.wav', '_processed.wav')
    send_command(f'Export:Filename={output}')
    send_command('RemoveTracks:')
    print(f'Processado: {f}{output}')
Script Python processando múltiplos arquivos via pipe

Integrando com Outros Fluxos🔗

O scripting permite integrar o Audacity com:

  • FFmpeg: converter formatos antes/depois
  • Whisper: transcrever áudio automaticamente
  • FFmpeg + Python: pipeline completo de processamento
  • CI/CD: processamento automatizado em servidores

Erros comuns

  • Audacity precisa estar aberto.
  • Caminhos absolutos.
  • Respostas assíncronas.
  • Erros silenciosos.

Perguntas para reflexão

  1. Qual módulo permite scripting no Audacity?
  2. mod-script-pipe
  3. Como o Python se comunica com o Audacity?
  4. Named pipes
  5. Qual comando importa um arquivo?
  6. Import2:Filename=path
  7. O Audacity precisa estar aberto para scripting?
  8. Sim

Você aprendeu

  • mod-script-pipe permite controle externo
  • Comunicação via named pipes
  • Python envia comandos como texto
  • Útil para batch processing
  • Audacity deve estar aberto
  • Integre com FFmpeg, Whisper, etc.

Referências🔗