Audacity: software libero di modifica e registrazione dell'audio

Linea di condotta per la pubblicità

Programmare in Nyquist

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

Quello che rende diverso Nyquist da Lisp è che esso è stato ideato per lavorare con l'audio, e ha numerose funzioni incorporate che sintetizzano, analizzano, e manipolano l'audio. In Audacity, questo rende relativamente facile costruire complessi effetti oltre le funzioni incorporate di Nyquist.

In Nyquist, una variabile può contenere un audio facilmente come un numero o una stringa. Sono disponibili molte funzioni che vi permettono di allungare, distorcere, e combinare l'audio in maniera molto efficiente. È anche possibile "dividere" un audio e accedere ai suoi singoli campioni, ma questo va oltre lo scopo di questo tutorial.

Per provare una espressione Nyquist in Audacity, è possibile usare "Scrivi comando Nyquist" nel menu Effetti. Qualunque audio abbiate selezionato sarà nella variabile s, e la selezione sarà sostituita con il risultato dell'espressione Nyquist che avete inserito. Nella Parte 3, imparerete come creare un plug-in effetto usando Nyquist.

Sintetizzare

Le seguenti funzioni creano tutte nuovi audio. È possibile usarle per creare plug-in effetti "Genera", o potete combinare questi audio sintetizzati con l'audio selezionato per produrre interessanti effetti.

(noise)Genera rumore bianco
(const value [duration])Genera un segnale costante (silenzio)
(sine pitch [duration])Genera un'onda sinusoidale con l'intonazione e la durata specificate.
L'intonazione è un numero di nota MIDI, con 60 per medio C.
(hzosc hz)Genera un'onda sinusoidale a una particolare frequenza in Hz.
(osc-saw hz)Genera un'onda a denti di sega a una particolare frequenza in Hz.
(osc-tri hz)Genera un'onda triangolare a una particolare frequenza in Hz.
(osc-pulse hz bias)
(pluck pitch)

Inviluppi

Nyquist supporta gli inviluppi. Applicando un inviluppo a un audio, è possibile controllare la forma complessiva della sua ampiezza. Uno dei modi più facili per costruire un inviluppo è con la funzione env, che comprende 7 parametri che sono comunemente usati per modellare note musicali sintetizzate: tempo di attacco, tempo di decadimento, tempo di rilascio, livello di attacco, livello di decadimento, livello di sostegno, e durata complessiva.Vedete l'illustrazione seguente:

Diagramma di inviluppo Nyquist

Per applicare un inviluppo a un audio, usate la funzione mult. Quindi se s è un audio, poi questo è l'audio con un semplice inviluppo applicato a esso:

  (mult s (env 0.1 0.1 0.2 1.0 0.5 0.3 1.0))

Uno dei tipi più generali di inviluppo è una funzione lineare piece-wise, che può essere costruita con la funzione pwl. La fuznione pwl comprende un elenco di parametri che indicano delle coppie (tempo, valore). Vi è una implicita coppia iniziale (tempo, valore) di (0, 0), e un valore finale implicito di 0. Vi deve essere sempre un numero dispari di parametri, poiché il tempo finale non è implicito. Per esempio:

  ; symmetric rise to 0.7 (at time 1) and fall back to 0 (at time 2):
  (pwl 1.0 0.7 2.0)

Combinare l'audio

Oltre alla riproduzione di due audio con la funzione mult, è possibile aggiungere due audio (o inviluppi) con la funzione add.

Filtri

Nyquist viene fornito con diversi filtri incorporati. Ecco alcuni dei più utilizzati:

(lp sound cutoff)
(hp sound cutoff)Filtro passa alto (primo ordine Butterworth). Il cut off può essere un float o un segnale (filtro per la variazione del tempo) ed è espresso in hertz.
(comb sound hz decay)Applica un filtro pettine all'audio, che enfatizza (risuona a) frequenze che sono multiple di un Hz.
(alpass sound decay hz)Filtro passa tutto, che crea un effetto ritardo senza le risonanze di un filtro pettine.
(notch2 sound hz)

Trasformazione e combinazione dell'audio

Va oltre lo scopo di questo tutorial introduttivo spiegare tutte le modalità in cui può essere trasformato un audio in Nyquist. Queste funzioni non modificano direttamente l'audio, ma modificano invece l'ambiente Nyquist. Affinché queste modifiche agiscano sull'audio, dovete usare la funzione cue.

(stretch factor (cue sound))Le modifiche della lunghezza dell'audio sono definite dal fattore fornito.
(scale factor (cue sound))Le graduazioni dell'ampiezza dell'audio sono definite dal fattore fornito.
(loud dB (cue sound))L'aumento o la riduzione del volume dell'audio sono definiti dal numero di decibel fornito.
(at t (cue sound))Iniziare l'audio fornito a un particolare tempo in secondi. Questo non può essere usato per aggiungere silenzio all'inizio o alla fine, ma può essere usato quando si combinano due o più suoni.
(seq (cue s1) (cue s2))Creare una sequenza di audio s1 seguita da audio s2.
(sim (cue s1) (cue s2))Combinare due audio in modo che siano riprodotti contemporaneamente.

Successivo: Creare plug-in Nyquist