Scripting Python

    Definição curta: O Tenacity suporta scripting em Python através de uma API dedicada que permite automatizar tarefas repetitivas, aplicar efeitos em batch, manipular projetos e criar ferramentas de processamento customizadas.

    Antes de começar

    • Tenacity aberto, para conferir cada coisa na interface enquanto lê

    O que você vai aprender

    • Explicar Habilitar scripting com suas palavras
    • Explicar API básica com suas palavras
    • Explicar Exemplo prático com suas palavras
    • Reconhecer, no seu próprio material, onde o assunto desta página se aplica

    O que é

    O Tenacity expõe uma API Python (tenacity) que pode ser usada para:

    • Aplicar efeitos programaticamente
    • Manipular projetos (criar/mover/deletar trilhas)
    • Análise de áudio (detectar BPM, pitch, loudness)
    • Automação de workflows repetitivos
    • Processamento em lote de múltiplos arquivos

    A API é inspirada na API interna do Audacity, mantendo compatibilidade com scripts existentes.

    Índice de sub-tópicos

    Habilitar scripting

    1. Edit > Preferences > Effects
    2. Verificar se Enable Python scripting está marcado
    3. Reiniciar Tenacity
    4. Tools > Script Browser para ver exemplos

    API básica

    import tenacity
    
    # Acessar projeto atual
    proj = tenacity.project()
    
    # Obter trilhas
    tracks = proj.tracks
    
    # Obter seleção
    start, end = tenacity.get_selection()
    
    # Aplicar efeito
    tenacity.apply_effect("Noise Reduction", {"Threshold": 12})
    
    # Executar comando
    tenacity.run_command("Normalize")

    Operações com trilhas

    # Criar nova trilha
    track = proj.add_track("audio", "Nova Trilha")
    
    # Selecionar trilha
    track.select()
    
    # Deletar trilha
    track.delete()
    
    # Mover trilha
    track.move_to(position=2.5)

    Exemplo prático

    Script para normalizar todas as trilhas de um projeto:

    import tenacity
    
    proj = tenacity.project()
    
    for track in proj.tracks:
        track.select()
        # Normalizar para -3 dB
        tenacity.apply_effect("Normalize", {
            "peak amplitude": -3.0,
            "remove DC offset": True
        })
    
    tenacity.message("Normalização completa!")

    Diagrama de execução

    sequenceDiagram
        participant U as Usuário
        participant T as Tenacity
        participant P as Python
        U->>T: Executa script
        T->>P: Import tenacity module
        P->>T: API exposta
        T->>P: tenacity.project()
        P->>T: Projeto atual
        T->>P: tenacity.apply_effect()
        P->>T: Efeito aplicado
        T->>U: Resultado

    Módulos disponíveis

    MóduloFunção
    tenacityAPI principal (projeto, trilhas, efeitos)
    tenacity.audioAnálise de áudio (peak, RMS, pitch)
    tenacity.utilsUtilitários (progress bar, logging)

    Limitações

    • Scripts operam no projeto aberto no momento — não é possível editar arquivos fechados
    • Alguns efeitos não expõem todos os parâmetros via API
    • Erros em scripts podem causar crash do Tenacity
    • Suporte a Python 3.8+ (verificar versão instalada)

    Você aprendeu

    • Habilitar scripting
    • API básica
    • Exemplo prático
    • Módulos disponíveis
    • Limitações

    Perguntas para reflexão

    1. O que Habilitar scripting resolve, e o que se perde sem isso?
    2. O que API básica resolve, e o que se perde sem isso?
    3. O que Exemplo prático resolve, e o que se perde sem isso?
    4. Que parte desta página você conseguiria executar sem consultar o texto?

    Artigos relacionados

    Veja também

    Referências