Audacity : logiciel libre d'enregistrement et de montage audio

Liste d'annonce

Création de greffons Nyquist

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

Pour créer un greffon Nyquist pour Audacity, il suffit de créer un fichier texte avec l'extension ".ny", d'y insérer du code Nyquist, d'y ajouter quelques commentaires indiquant le type de greffon, et de placer le fichier dans le répertoire plug-ins d'Audacity. Voici un exemple basique :

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

La première ligne d'un greffon Nyquist doit être exactement comme dans l'exemple ci-dessus, et la seconde ligne doit indiquer un nombre de version. Les versions 2 et 3 des greffons supporte les gadgets (widgets), mais la version 3 des greffons n'est pas supportée dans Audacity ou plus vieux. La ligne suivante donne le type de greffon ce qui est expliqué plus bas. Vient ensuite le nom du greffon, qui est affiché dans la barre de menu, et ensuite l'"action|", qui est ce qu'Audacity affiche lorsqu'il est occupé au traitement du greffon. D'autres lignes optionnelles peuvent suivre. Toute ligne ne débutant pas par un point-virgule (;) sera interprétée comme du code Nyquist et sera exécutée.

Audacity supporte trois types de greffons Nyquist :

  ;type generate
  ;type process
  ;type analyze

Ils correspondent aux trois menus qui peuvent proposer des greffons : Générer, Effet et Analyser. Des greffons de type "Génération" créent de nouveaux sons, ceux de type "Effet" modifient des zones audio sélectionnées et ceux de type "Analyse" traitent des sons mais sans les modifier (ils peuvent néanmoins ajouter des marqueurs).

Pour les greffons d'effet et d'analyse, Audacity définit l'environnement Nyquist de sorte que la zone audio sélectionnée soit stockée dans la variable s. Toutes les expressions du fichier ".ny" seront exécutées de manière séquentielle, et la valeur renvoyée par la dernière expression remplacera la sélection dans Audacity. Si cette valeur ne correspond pas à un signal audio, Audacity renvoie un message d'erreur.

Boîtes de dialogue de paramétrage

Audacity est capable d'afficher une boite de dialogue pour la saisie interactive des paramètres. Voici un exemple de greffon basé sur l'utilisation d'une boîte de dialogue :

  ;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))

Si Audacity repère au moins une ligne ";control", il ouvre une boite de dialogue pour demander à l'utilisateur la valeur d'un des arguments du greffon. À chaque entrée correspond une boite de texte et un curseur, et, après modification de l'une d'elles, la valeur est stockée dans une variable Nyquist dont le nom figure dans la ligne ";control". Voici la boite affichée par Audacity (sous Linux) pour le greffon d'effet "Delay" :

Copies d'écran de greffon Nyquist

Remarque : la ligne "info" est affichée dans la partie supérieure de la boite, et "\n" devient une nouvelle ligne. Les arguments de la ligne ";control" affectent le type et les bornes des paramètres d'entrée. Chaque ligne ";control" doit comporter dans l'ordre les 8 éléments suivants :

  1. Le mot-clé "control"
  2. Le nom du paramètre - c'est le nom de la variable Nyquist à laquelle sera assignée la valeur entrée.
  3. L'intitulé placé à la gauche du contrôle de saisie
  4. Le type de la variable : soit int (nombre entier) soit real.
  5. L'étiquette à placer à droite de la valeur (généralement l'unité de la valeur comme "Hz" ou "dB").
  6. La valeur par défaut du paramètre
  7. La valeur minimale du paramètre
  8. La valeur maximale du paramètre

Retourner des marqueurs

Au lieu de renvoyer un signal comme sortie du greffon Nyquist, il est possible de renvoyer une liste de marqueurs. Une liste de marqueurs est tout simplement une liste de couples (temps, étiquette), par exemple :

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

Lorsqu'un greffon renvoie une liste de cette forme précisément, Audacity crée une nouvelle piste de marqueurs et ajoute les étiquettes aux instants correspondants. Ce sont généralement les greffons de type "analyse" qui utilise les marqueurs.

Nouveau ! À partir de la version 1.3.1 d'Audacity, vous pouvez désormais si vous le désirez retourner à la fois un temps de début et un temps de fin, comme ceci :

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

Remarquez que les marqueurs d'Audacity 1.3 peuvent se superposer; la fin d'une zone peut être après le début de la zone marquée suivante.

Traiter des pistes stéréo

Nyquist représente les pistes stéréo par des tableaux de sons (et non comme une liste). Beaucoup de fonctions Nyquist travaillent automatiquement avec ce genre de variables, mais il arrive que vous soyez forcé de séparer les deux pistes, de les traiter séparément, puis de les ré-assembler. Voici quelques fonctions à ce sujet :

(arrayp s)renvoie "true" si s est un tableau
(aref s 0)retourne le premier élément du tableau s - c'est-à-dire le canal gauche
(aref s 1)retourne le second élément du tableau s - c'est-à-dire le canal droit
(setf s (make-array 2))déclare s comme un tableau de taille 2
(setf (aref s 0) left)stocke le signal left dans le premier élément du tableau s
(setf (aref s 1) right)stocke le signal right dans le second élément du tableau s

Si le signal d'entrée du greffon Nyquist est stéréo et que la sortie est un signal mono, Audacity duplique automatiquement la sortie en canaux droite et gauche identiques.

Pour aller plus loin...

Quelques exemples de greffons Nyquist sont fournis avec Audacity afin que vous puissiez les examiner. La meilleure manière d'apprendre à utiliser Nyquist est de s'en servir. Si vous rencontrez des problèmes de débogage, vous pouvez télécharger la version indépendante de Nyquist (suivre le lien dans la première partie).

Si vous n'arrivez pas à faire fonctionner Nyquist, vous pouvez nous contacter.

Si vous travaillez sur un greffon d'effet Nyquist et que vous souhaitez le partager avec d'autres, ou si vous désirez discuter de la manière de concevoir certains effets Nyquist, veuillez poster sur le forum de conseils Nyquist ou joindre la liste de diffusion audacity-nyquist.

N'oubliez pas de consulter le Manuel de Référence Nyquist 2.37 l complet pour plus de détails sur Lisp et Nyquist.