Audacity: vrije geluidseditor en opnamesoftware

Reclamebeleid

Nyquist-plugins aanmaken

  1. Inleiding in Nyquist en Lisp programmeren
  2. Programmeren in Nyquist
  3. Nyquist-plugins aanmaken

Een plugin voor Audacity maken met Nyquist is net zo eenvoudig als een tekstbestand maken met de extensie ".ny" met wat Nyquist code, met bijgevoegd een paar opmerkingen om het soort nyquist plugin aan te duiden, en het bestand in de plug-ins-map van Audacity te plaatsen. Hier volgt een eenvoudige plugin als voorbeeld:

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

De eerste regel van een Nyquist-plugin moet precies overeenstemmen met het voorbeeld hierboven, de tweede regel moet een versienummer bevatten. Versie 2 en 3 plugins ondersteunen meer widgets, maar versie 3 plugins worden niet ondersteund in Audacity 1.3.3 of eerder. De volgende regel geeft het soort plugin aan, wat hieronder besproken wordt. Dan volgt de naam van de plugin, die in de menubalk weergegeven wordt, en dan de "action", wat door Audacity weergegeven wordt terwijl het de plugin verwerkt. Er zijn nog meer optionele regels die kunnen volgen. Elke regel die niet met een punt-komma (;) begint wordt verondersteld Nyquist-code te bevatten en zal uitgevoerd worden.

Audacity ondersteunt drie soorten plugins die met Nyquist geschreven kunnen worden:

  ;type generate
  ;type process
  ;type analyze

Deze corresponderen met de drie menu's die plugins kunnen bevatten: Genereren, Effect, en Analyseren. Plugins in het menu Genereren moeten nieuwe Audio vanaf het begin genereren, Effect plugins ("process") wijzigen bestaande Audio die geladen is, en plugins in het menu Analyseren verwerken audio maar wijzigen die niet (maar ze mogen er wel labels aan toevoegen).

Voor plugins in het menu Effect of Analyseren, laadt Audacity de Nyquist omgeving opdat de audio, die de gebruiker geselecteerd heeft, in de variabele s staat. Alle uitdrukkingen in het pluginbestand worden in volgorde uitgevoerd, en de resultaatswaarde van de laatste uitdrukking wordt gezet op de plaats van de selectie in Audacity. Als de laatste uitdrukking geen audio oplevert, geeft Audacity een foutmelding.

Parameter-dialoogvensters

Audacity heeft een beperkte ondersteuning voor plugins met een dialoogvenster waar de gebruiker parameters kan invoeren. Dit is een voorbeeld van een plugin die een dialoogvenster opent:

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

Als Audacity tenminste één "control" regel vindt, zal het een dialoog openen om de gebruiker te vragen bepaalde parameters voor de plugin in te voeren. Elke parameter bestaat uit een tekstvenster en een schuifgreep, en nadat de gebruiker elke heeft ingevoerd, wordt de laatste waarde opgeslagen in een Nyquist variabele met een naam die u opgeeft op de "control" regel. Zo ziet het boven getoonde dialoogvenster er uit voor het Effect 'Snelheid wijzigen ...' in Audacity voor Linux:

Nyquist-plugin screenshot

Merk op dat de "info" regel bovenaan de dialoogvenster getoond wordt, en dat de "\n" een nieuwe regel wordt. De parameters van de "control" regel beïnvloeden het uiterlijk en de beperkingen van de parameter. Elke "control" regel moet bestaan uit precies de volgende 8 elementen, in deze volgorde:

  1. Het woord "control"
  2. De naam van de control - dit is de naam van de Nyquist variabele die ingesteld wordt wanneer de gebruiker gegevens invoert in het dialoogvenster.
  3. Het label links van de control
  4. Het type van de waarde: ofwel int (geheel getal) ofwel real.
  5. Het label rechts van de waarde (meestal units als "Hz" of "dB").
  6. De standaard-/beginwaarde van de parameter
  7. De minimumwaarde van de parameter
  8. De maximumwaarde van de parameter

Resultaatlabels

In plaats van audio als resultaat op te leveren kan een Nyquist plugin ook een lijst met labels opleveren. Een lijst met labels is eenvoudig een lijst met tijd-/labelparen, bijvoorbeeld:

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

Als een plugin precies zo'n lijst met resultaten oplevert, zal Audacity een nieuw labelspoor aanmaken en de labels op die plaatsen zetten. Dit type plugin is meestal van het soort "analyze".

Nieuw! Vanaf versie 1.3.1 van Audacity kunt u naar keuze een begin- en een eindtijd laten opleveren, op de volgende manier:

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

Merk op dat labels in Audacity elkaar mogen overlappen; de eindtijd van de ene kan komen na de begintijd van de volgende.

Stereosporen bewerken

Nyquist stelt stereosporen voor als arrays van geluiden (geen lijst). Veel Nyquist functies werken automatisch met deze arrays, maar dat doen ze niet allemaal, dus soms zal het noodzakelijk zijn stereo arrays op te splitsen, of er een opnieuw samen te stellen. Dit zijn een paar nuttige funcies:

(arrayp s)levert waar op als s een array is
(aref s 0)het eerste element in array s - het linkerkanaal
(aref s 1)het tweede element in array s - het rechterkanaal
(setf s (make-array 2))maakt s in een nieuw array met lengte 2
(setf (aref s 0) left)maakt left het eerste element van de array s
(setf (aref s 1) right)maakt right het tweede element van de array s

Voor het gemak is het zo geregeld dat, als de input voor uw Nyquist plugin stereo is, maar u wilt alleen mono geluid hebben, dan zal Audacity automatisch zowel links als rechts hetzelfde kopiëren.

Hoe nu verder

Audacity wordt compleet aangeleverd met voorbeeldplugins die u als vertrekpunt kunt onderzoeken of aanpassen. De beste manier om Nyquist te leren is door het uit te proberen. Als u problemen heeft met fouten, overweeg dan de standalone versie van Nyquist te downloaden (zie de link in Deel 1).

Als u Nyquist helemaal niet aan de praat krijgt, neem dan a.u.b. contact.

Als u werkt aan Nyquist plugineffecten en ze met anderen wilt delen, of als u in het algemeen details wilt bespreken over hoe u bepaalde effecten kunt bereiken, post op de Nyquist-pagina van het Audacity-forum of abonneer u op de audacity-nyquist mailing list.

Vergeet ook niet de volledige Nyquist 2.37 referentiehandleiding te raadplegen voor meer details over Lisp en Nyquist.