Audacity: Freier und kostenloser Audioeditor und Aufnahmesoftware

Werbepolitik

Erstellung von Nyquist Plugins

  1. Einführung in die Nyquist und Lisp Programmierung
  2. Programmierung in Nyquist
  3. Erstellung von Nyquist Plugins

Das Erzeugen eines Audacity-Plug-Ins mit Nyquist ist genau so einfach wie das Erstellen einer Textdatei mit dem Dateityp ".ny", das Hinzufügen von etwas Nyquist-Code sowie einigen Kommentaren, die etwas über den Plug-In-Typ aussagen, und das Einstellen der Datei in den Audacity-Ordner plug-ins. Hier ist ein sehr einfaches Plug-In-Beispiel:

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

Die erste Zeile eines Nyquist-Plug-Ins muss exakt so lauten wie im vorigen Beispiel, und die zweite Zeile muss eine Versionsnummer enthalten. Plug-Ins der Version 2 und 3 unterstützen mehr Widgets, aber Plug-Ins der Version 3 sind nicht in Audacity 1.3.3 oder älter unterstützt. Die nächste Zeile enthält den Plug-In-Typ, was weiter unten diskutiert wird. Dann kommt der Name des Plug-Ins, der im Menü angezeigt wird, und dann die "Action", die in Audacity angezeigt wird, während es das Plug-In verarbeitet. Dann können weitere optionale Zeilen folgen. Audacity geht davon aus, dass jede Zeile, die nicht mit einem Semikolon (;) beginnt, Nyquist-Code enthält und daher ausgeführt wird.

Audacity unterstützt drei Arten von Plugins, die in Nyquist geschrieben werden können:

  ;type generate
  ;type process
  ;type analyze

Diese korrespondieren mit den drei Menüs, die Plug-Ins enthalten können: Erzeugen, Effekt und Analyse. Von Erzeugen-Plug-Ins wird erwartet, dass sie neue Audiodaten auf der grünen Wiese erzeugen, Effekt-Plug-Ins ("verarbeiten") und verändern existierende Audiodaten an Ort und Stelle, und Analyse-Plug-Ins verarbeiten Audiodaten, verändern sie aber nicht (obwohl sie Texte hinzufügen dürfen).

Für Effekt- und Analyse-Plug-Ins baut Audacity die Nyquist-Umgebung auf, sodass die Variable s die vom Benutzer selektierten Audiodaten enthält. Alle Expressions (Ausdrücke) in der Plug-In-Datei werden in der gespeicherten Reihenfolge ausgeführt, und der Rückgabewert des letzten Ausdrucks ersetzt die Selektion in Audacity. Sollte der letzte Ausdruck keine Audiodaten zurückgeben, gibt Audacity einen Fehler zurück.

Parameter Dialoge

Audacity unterstützt nur beschränkt solche Plug-Ins, die ein Dialogfenster anzeigen, um Parameter vom Benutzer abzufragen. Hier ist ein Beispiel eines Plug-Ins, das einen Dialog eröffnet:

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

Falls Audacity mindestens eine "control"-Zeile findet, öffnet es ein Dialogfenster, um den Benutzer nach bestimmten Parametern für das Plug-In zu fragen. Jeder Parameter besteht aus einem Textfeld und einem Schieberegler. Nachdem der Benutzer alle Parameter angegeben hat, wird das Schlussergebnis in einer Nyquist-Variable abgelegt, die genau denjenigen Namen hat, den Sie in der "control"-Zeile angeben. So sieht zum Beispiel der Dialog für den zuvor gezeigten Verzögerungseffekt in Audacity unter Linux aus:

Nyquist Plugin Bildschirmfoto

Beachten Sie, dass die "info"-Zeile ganz oben im Dialog angezeigt wird und dass das "\n" zum Zeilenumbruch wird. Die Parameter der "control"-Zeile betreffen das Aussehen und die Grenzen der Parameter. Jede "control"-Zeile muss exakt aus den nachfolgend genannten 8 Elementen bestehen, in dieser Reihenfolge:

  1. Das Wort "control"
  2. Der Name des Steuerungselements - dies ist der Name der Nyquist-Variable, die gesetzt wird, wenn der Benutzer Anpassungen im Dialog macht.
  3. Die Benennung links vom Steuerungselement
  4. Die Art des Wertes: entweder int (Ganzzahl) oder real.
  5. Die Benennung rechts vom Wert (gewöhnlicherweise die Einheit, wie z.B. "Hz" oder "dB").
  6. Der Standard/Initial Wert des Parameter
  7. Der Minimal Wert des Parameter
  8. Der Maximal Wert des Parameter

Rückgabe von Benennungen

Ein Nyquist-Plug-In kann, anstelle von Audiodaten, auch eine Liste von Texten zurückgeben. Eine Liste von Texten besteht einfach aus Zeit/Text-Paaren, zum Beispiel:

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

Wenn ein Plug-In eine Liste von genau dieser Form zurückgibt, wird Audacity eine neue Textspur erzeugen und die Texte an diesen Positionen hinzufügen. Ein solches Plug-In ist üblicherweise vom Typ "analyze".

Neu! Seit Audacity Version 1.3.1 können Sie jetzt optional beides ausgeben eine Start- und eine Endzeit, wie hier:

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

Hinweis: Textmarken dürfen sich in Audacity 1.3 überlappen; Die Endzeit der einen kann nach der Anfangszeit der nächsten sein.

Stereo-Stücke verarbeiten

Nyquist stellt Stereospuren als ein Array (d.h. eine Reihe von Elementen) von Klängen dar (keine Liste). Viele Nyquist-Funktionen arbeiten automatisch mit diesen Arrays, aber nicht alle. Deshalb könnte es manchmal nötig sein, ein Stereoarray zu zerlegen oder wieder zusammenzusetzen. Hier sind einige nützliche Funktionen:

(arrayp s)gibt wahr wieder, wenn s ein Array ist
(aref s 0)Das erste Element in Array s - Der linke Kanal
(aref s 1)Das zweite Element in Array s - Der rechte Kanal
(setf s (make-array 2))macht s in ein neues Array der Länge 2
(setf (aref s 0) left)macht left das erste Element eines Arrays s
(setf (aref s 1) right)macht right das zweite Element eines Arrays s

Für Ihren Komfort: Wenn die Eingabe in Ihr Nyquist-Plug-In in Stereo ist, aber die einzige Ausgabe ist ein Mono-Klang, wird Audacity den Klang automatisch in den linken und rechten Kanal kopieren.

Wo soll ich von hier aus weitermachen

Audacity kommt mit einigen Beispiel-Plugins, die Sie als einen Startpunkt untersuchen oder verändern können. Der beste Weg, um Nyquist zu lernen, ist es selber auszuprobieren. Wenn Sie Probleme bei der Fehlerbehandlung habe, sollten Sie es in Erwägung ziehen, die alleinige Version von Nyquist herunterzuladen (siehe Link in Teil 1).

Wenn Sie Probleme haben Nyquist überhaupt ans laufen zu kriegen, kontaktieren Sie uns bitte.

Wenn Sie an Nyquist Plugin Effekten arbeiten und diese mit anderen teilen möchten oder wenn Sie darüber diskutieren möchten, wie man einige Effekte in Nyquist hervorruft, schreiben Sie bitte im Nyquist Thema im Audacity Forum oder treten Sie der audacity-nyquist Mailingliste bei.

Vergessen Sie nicht, das vollständige Nyquist 2.37 Referenzhandbuch für mehr Details über Lisp und Nyquist zu konsultieren.