O que você vai aprender

  • Escrever scripts Nyquist básicos
  • Criar plugins customizados
  • Usar controles de usuário
  • Processar áudio matematicamente
  • Gerar sons sintéticos

Antes de começar

Introdução ao Nyquist🔗

Nyquist é um dialeto de Lisp criado por Roger Dannenberg para síntese e processamento de áudio. No Audacity, ele é acessado via Tools > Nyquist Prompt....

Sintaxe Básica🔗

; Comentários começam com ;
; Notação prefixada (polonesa):
(+ 1 2)        ; → 3
(* 3 4)        ; → 12
(sqrt 16)      ; → 4

Variáveis e Sinais🔗

A variável s representa o áudio selecionado:

; Reduz volume pela metade
(mult s 0.5)

; Inverte o áudio
(reverse s)

; Aplica filtro passa-baixa
(lowpass8 s 1000)

Em áudio estéreo, s é um array: (aref s 0) é o canal esquerdo, (aref s 1) é o direito.

Criando um Plugin com Controles🔗

Para criar um plugin que aparece no menu de efeitos:

;nyquist plug-in
;version 3
;type process
;name "Volume Adjust"
;action "Adjusting volume..."
;control level "Volume" float "linear" 1.0 0.0 2.0

(mult s level)

Headers Explicados🔗

HeaderSignificado
;version 3Versão do Nyquist
;type processTipo: generate, process, analyze
;nameNome do efeito no menu
;actionMensagem durante processamento
;controlDefine um controle de usuário

Controles de Usuário🔗

;control name "Label" type "unit" default min max

Tipos de controle:

TipoDescrição
floatNúmero decimal (slider)
intNúmero inteiro
choiceMenu de opções
stringTexto

Exemplos Práticos🔗

Gerador de Tom com Fade🔗

;nyquist plug-in
;version 3
;type generate
;name "Tom com Fade"
;action "Gerando tom..."
;control freq "Frequência (Hz)" float "" 440 20 20000
;control dur "Duração (s)" float "" 2 0.1 30
;control amp "Amplitude" float "" 0.5 0.0 1.0

(mult (fmosc (hz-to-step freq) (pwe 1 dur))
      (pwlv 0 0 amp dur 0)
      amp)

Detector de Picos (Análise)🔗

;nyquist plug-in
;version 3
;type analyze
;name "Detector de Picos"
;action "Analisando picos..."

(let ((peak (peak s ny:all)))
  (format nil "Pico: ~a dB" (linear-to-db peak)))
Plugin Nyquist no menu de efeitos — criado com headers adequados

Funções Úteis🔗

Processamento🔗

(lowpass8 s freq)      ; Filtro passa-baixa
(highpass8 s freq)     ; Filtro passa-alta
(scale factor s)       ; Escala o sinal
(reverse s)            ; Inverte o áudio
(s-abs s)              ; Valor absoluto (retifica)
(rms s)                ; Valor RMS
(peak s ny:all)        ; Pico máximo

Geração🔗

(fmosc step fm)        ; Oscilador FM
(osc step)             ; Oscilador simples
(noise duration)       ; Ruído branco
(silence duration)     ; Silêncio

Matemática🔗

(hz-to-step freq)      ; Hz para step MIDI
(step-to-hz step)      ; Step MIDI para Hz
(linear-to-db val)     ; Linear para dB
(db-to-linear db)      ; dB para linear

Erros comuns

  • Parênteses desbalanceados.
  • Confundir type process com type analyze: se o script retorna texto, use analyze. Se modifica áudio, use process.
  • Testar sem salvar.
  • Scripts lentos.

Perguntas para reflexão

  1. Qual variável representa o áudio selecionado?
  2. s
  3. Qual header define um plugin de análise?
  4. type analyze
  5. Qual função aplica filtro passa-baixa?
  6. lowpass8
  7. Nyquist é baseado em quê?
  8. Lisp

Você aprendeu

  • Nyquist é dialeto de Lisp para áudio
  • s = áudio selecionado
  • Headers definem tipo e controles
  • control cria parâmetros de usuário
  • Funções: lowpass8, highpass8, fmosc, noise
  • Salve scripts como .ny

Referências🔗