Audacity: software libero di modifica e registrazione dell'audio

Linea di condotta per la pubblicità

Creare plug-in Nyquist

  1. Introduzione alla programmazione Nyquist e Lisp
  2. Programmare in Nyquist
  3. Creare plug-in Nyquist

Creare un plug-in per Audacity usando Nyquist è semplice come creare un file di testo con l'estensione ".ny" con un certo codice Nyquist, aggiungendo pochi commenti per indicare il tipo di plug-in, e posizionando il file nella cartella plug-ins di Audacity. Ecco un plug-in molto semplice come esempio:

  ;nyquist plug-in
  ;version 1
  ;type process
  ;name "Fade In"
  ;action "Fading In..."
  (mult (ramp) s)

La prima linea di un plug-in Nyquist deve essere esattamente come l'esempio precedente, e la seconda linea deve indicare un numero di versione. I plug-in versione 2 e 3 supportano più widget, ma i plugin versione 3 non sono supportati in Audacity 1.3.3 o precedenti. La linea successiva indica il tipo di plug-in, che viene trattato più avanti. Poi viene il nome del plug-in, che è quello visualizzato nella barra menu, e poi la "azione", che è quella che Audacity visualizza mentre è occupato ad elaborare il plug-in. Vi sono altre linee opzionali che possono seguire. Ogni linea che non inizia con un punto e virgola (;) si presume che contenga un codice Nyquist e verrà eseguita.

Audacity supporta tre tipi di plug-ins scritti in Nyquist:

  ;type generate
  ;type process
  ;type analyze

Questi corrispondono ai tre menu che possono contenere i plug-in: Genera, Effetti, e Analizza. I plug-in Genera sono previsti per generare un nuovo audio dal nulla, i plug-in Effetti ("process") modificano un audio esistente, e i plug-in Analizza elaborano l'audio ma non lo modificano (sebbene sia permesso aggiungere etichette).

Per i plug-in Effetti e Analizza, Audacity configura l'ambiente Nyquist in modo che l'audio che l'utente ha selezionato sia nella variabile s. Tutte l'espressioni nel file plug-in sono eseguite in ordine, e il valore risultante dell'ultima espressione è sostituito per la selezione in Audacity. Se l'ultima espressione non fornisce audio, Audacity mostra un errore.

Dialoghi Parametri

Audacity ha un supporto limitato per i plug-in che mostrano un dialogo per ottenere parametri dall'utente. Ecco un esempio di un plug-in che apre un dialogo:

  ;nyquist plug-in
  ;version 1
  ;type process
  ;name "Delay..."
  ;action "Performing Delay Effect..."
  ;info "Demo effect for Nyquist by Roger Dannenberg.\nThis effect 
     creates a fixed number of echos."  ; (should be all on one line)
  ;control decay "Decay amount" int "dB" 6 0 24
  ;control delay "Delay time" real "seconds" 0.5 0.0 5.0
  ;control count "Number of echos" int "times" 5 1 30

  (defun delays (s decay delay count)
    (if (= count 0) (cue s)
	   (sim (cue s)
        (loud decay (at delay (delays s decay delay (- count 1)))))))
  (stretch-abs 1 (delays s (- 0 decay) delay count))

Se Audacity trova almeno una linea "control", aprirà un dialogo per invitare l'utente a fornire certi parametri al plug-in. Ciascun parametro consiste di un campo di testo e di un cursore, e dopo che l'utente ha inserito ognuno, il valore finale verrà memorizzato in una variabile Nyquist con un nome che specificate nella linea "control". Ecco quello che mostra il dialogo per l'effetto Ritardo in Audacity per Linux:

Immagini dei plugin Nyquist

Da notare che la linea "info" è visualizzata nella parte superiore del dialogo, e che "\n" diventa una nuova linea. I parametri per la linea "control" agiscono sull'aspetto e le limitazioni del parametro. Ciascuna linea "control" deve consistere esattamente dei seguenti 8 elementi, in ordine:

  1. La parola "control"
  2. Il nome del control - questo è il nome della variabile Nyquist che verrà impostata quando l'utente agisce sul dialogo.
  3. L'etichetta a sinistra del control
  4. Il tipo del valore: int (intero) o real.
  5. L'etichetta a destra del valore (in genere le unità come "Hz" o "dB").
  6. Il valore predefinito/iniziale del parametro
  7. Il valore minimo del parametro
  8. Il valore massimo del parametro

Restituzione etichette

Invece di restituire audio, un plug-in Nyquist può restituire una lista di etichette. Una lista di etichette è semplicemente una lista di coppie tempo/etichetta, per esempio:

  ((0.0 "start") (30.0 "middle") (60.0 "end"))

Quando un plug-in restituisce una lista esattamente in questa forma, Audacity creerà una nuova traccia etichetta e aggiungerà le etichette in quelle posizioni. Questo stile di plug-in è usualmente del tipo "analizza".

Nuovo! A partire dalla versione 1.3.1 di Audacity, è possibile ora opzionalmente restituire un tempo di inizio e un tempo di fine, simile a questo:

  ((0.0 25.0 "start") (30.0 45.0 "middle") (60.0 75.0 "end"))

Da notare che le etichette possono sovrapporsi in Audacity 1.3; il tempo di fine di una può posizionarsi dopo il tempo di inizio della successiva.

Elaborare tracce stereo

Nyquist rappresenta le tracce stereo come un insieme di audio (non una lista). Molte funzioni Nyquist funzionano automaticamente con questi insiemi, ma non tutte, cosicché alcune volte è possibile ritenere necessario dividere un insieme stereo, o riassemblarne uno. Ecco alcune utili funzioni:

(arrayp s)restituisce vero se s è un insieme
(aref s 0)il primo elemento nell'insieme s - il canale sinistro
(aref s 1)il secondo elemento nell'insieme s - il canale destrol
(setf s (make-array 2))produce s in un nuovo insieme di lunghezza 2
(setf (aref s 0) left)produce left il primo elemento dell'insieme s
(setf (aref s 1) right)produce right il secondo elemento dell'insieme s

Per convenienza, se l'input nel vostro plug-inr Nyquist è stereo, ma producete solo un audio singolo (mono), Audacity automaticamente lo copierà in ambedue i canali destro e sinistro.

Dove andare da qui

Audacity viene fornito con alcuni plug-in di esempio che è possibile esaminare o modificare come punto di partenza. Il modo migliore per comprendere Nyquist è di provarlo. Se avete problemi nell'eliminare gli errori, prendete in considerazione di scaricare la versione separata di Nyquist (vedere il link nella Parte 1).

Se avete dei problemi nel lavorare con Nyquist, contattateci.

Se state eseguendo un lavoro sui plug-in effetti Nyquist e desiderate condividerlo con altri, o se volete discutere dei dettagli generali di come ottenere certi effetti in Nyquist, inviate un messaggio nella sezione Nyquist del Forum Audacity o iscrivetevi alla audacity-nyquist mailing list.

Non dimenticate di consultare il completo Manuale di riferimento Nyquist 2.37 per avere maggiori dettagli sull'uso di Nyquist.