Audacity : logiciel libre d'enregistrement et de montage audio

Liste d'annonce

Programmer en Nyquist

  1. Introduction à la programmation Lisp et Nyquist
  2. Programmer en Nyquist
  3. Création de greffons Nyquist

Ce qui distingue Nyquist de Lisp, c'est l'utilisation qui en est faite. Nyquist est conçu pour travailler sur des sons, et possède donc de nombreuses primitives intégrées et fonctions qui synthétisent, analysent et manipulent des données audio. Dans Audacity, il est ainsi aisé de construire des effets complexes à partir de l'ensemble des fonctions de base de Nyquist.

Dans le langage Nyquist, une variable peut représenter aussi bien un son qu'une chaîne ou un nombre. De nombreuses fonctions vous permettent d'étirer, distordre ou combiner deux sons de manière très efficace. Il est même possible d'"éventrer" un son pour en examiner et manipuler les échantillons un à un (ceci ne sera pas abordé dans ce tutoriel).

Pour accéder à l'invite de commande Nyquist dans Audacity, choisissez "Console Nyquist" dans le menu Effet. La zone sélectionnée est placée dans la variable s et sera remplacée par le résultat de l'expression Nyquist que vous taperez. Dans la partie 3, nous apprendrons à créer un greffon d'effet basé sur Nyquist.

Synthèse

Les fonctions suivantes créent de nouveaux sons. Vous pouvez les utiliser pour créer des greffons de type "Générer...", ou bien associer ces sons de synthèse à la zone audio sélectionnée pour produire de nouveaux effets.

(noise)Génère un bruit blanc
(const value [duration])Génère un signal constant (silence)
(sine pitch [duration])Génère un son pur à la fréquence (pitch) et durée (duration).
La fréquence est le numéro MIDI de la note (60 pour le Do moyen).
(hzosc hz)Génère un son pur en indiquant la fréquence en Hz.
(osc-saw hz)Génère un signal en dent de scie à la fréquence hz indiquée en Hz.
(osc-tri hz)Génère un signal triangulaire à la fréquence hz indiquée en Hz.
(osc-pulse hz bias)
(pluck pitch)

Enveloppes

Nyquist gère aussi les enveloppes, c'est-à-dire l'évolution temporelle de l'amplitude d'un son. Une manière simple de construire une enveloppe est la fonction env qui prend les 7 paramètres d'entrée usuels reportés sur la figure ci-dessous : temps d'attaque (attack time), temps de décroissance (decay time), temps de relâchement (release time), niveau d'attaque (attack level), niveau de décroissance (decay level), niveau de maintien (sustain level), durée totale (overall duration).Voir schéma ci-dessous :

Diagramme d'enveloppe Nyquist.

La fonction mult permet d'appliquer une enveloppe à un son. Ainsi, si s est un son, alors le son après application de l'enveloppe est :

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

Un type d'enveloppe couramment utilisé est la fonction linéaire par morceaux qui peut être obtenue à l'aide de la fonction pwl. Celle-ci prend comme argument la liste des couples (instant, valeur). Le premier élément (0,0) est implicite et la valeur finale est implicitement définie à 0. La liste doit donc comporter un nombre impair d'éléments, l'instant final étant à définir. Voici un exemple :

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

Combinaison de sons

En plus du fait de multiplier deux sons avec la fonction mult, vous pouvez additionner deux sons (ou deux enveloppes) grâce à la fonction add.

Filtres

Nyquist est fourni avec de nombreux filtres intégrés. Voici une liste des plus courants :

(lp sound cutoff)
(hp sound cutoff)Filtre passe-haut (Butterworth 1° ordre). La fréquence (spécifiée en Hz) peut être une constante ou un signal (dans le cas d'un filtre dynamique dont la bande passante évolue au cours du temps).
(comb sound hz decay)Filtre en peigne, qui accentue les résonances aux fréquences multiples d'une fréquence donnée.
(alpass sound decay hz)Filtre passe-tout, qui ajoute un effet de retard sans ajouter de résonance comme le filtre en peigne.
(notch2 sound hz)

Transformation et combinaison de sons

Nous n'avons pas ici l'ambition de présenter en détail toutes les fonctions Nyquist permettant la transformation de sons. Les fonctions suivantes ne modifient pas le signal en lui-même, mais l'environnement Nyquist. Pour appliquer les modifications aux sons, vous devez utiliser la fonction cue.

(stretch factor (cue sound))Modifie la longueur du son par le facteur multiplicateur donné.
(scale factor (cue sound))Modifie l'amplitude du son par le facteur multiplicateur donné.
(loud dB (cue sound))Augmente ou diminue le niveau sonore d'un nombre donné de décibels.
(at t (cue sound))Commence le son à un instant t spécifié en secondes. Cette fonction ne peut être utilisée pour ajouter du silence au début ou à la fin d'un signal, mais lors de la combinaison de plusieurs sons.
(seq (cue s1) (cue s2))Enchaîne le son s2 à la suite du son s1.
(sim (cue s1) (cue s2))Combine les sons s1 et s2 de manière simultanée.

Suite : Création de greffons Nyquist