Audacity: vrije geluidseditor en opnamesoftware

Reclamebeleid

Programmeren in Nyquist

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

Wat Nyquist zo verschillend maakt van Lisp is dat het ontworpen is om met geluid te werken, en dat het vele ingebouwde "primitives" en functies heeft die geluiden synthetiseren, analyseren en manipuleren. Binnen Audacity maakt dit het relatief gemakkelijk om complexe effecten te creëren uit de waaier van ingebouwde functies in Nyquist.

In Nyquist kan een variabele even gemakkelijk een geluid bevatten als het een getal of een string kan bevatten. Er zijn vele functies voorzien die u toestaan om geluiden heel efficiënt uit te rekken, vervormen en combineren. Het is zelfs mogelijk om een geluid "uiteen te trekken" en toegang te krijgen tot zijn individuele samples, maar dit is buiten het doel van deze handleiding.

Om een Nyquist-expressie uit te proberen in Audacity, kan u "Nyquist Prompt" in het Effect-menu gebruiken. Elke geselecteerde audio zal in de variabele s terechtkomen, en de selectie zal vervangen worden door het resultaat van de Nyquist-expressie die u ingeeft. In Deel 3 zal u leren hoe u een plugin-effect maakt door gebruik te maken van Nyquist.

Synthetiseren

De volgende instructies creëren allemaal nieuwe geluiden. U kunt ze gebruiken om "Genereren"-plugin-effecten aan te maken, of u kan deze gesynthetiseerde geluiden combineren met geselecteerde audio om interessante effecten te produceren.

(noise)Genereert witte ruis
(const value [duration])Genereert een constant (stil) signaal
(sine pitch [duration])Genereert een een sinusgolf met een ingestelde toonhoogte en duur.
De toonhoogte is een MIDI-nootnummer, met 60 voor de middelste C.
(hzosc hz)Genereert een sinusgolf met een bepaalde frequentie in Hz.
(osc-saw hz)Genereert een zaagtandgolf met een bepaalde frequentie in Hz.
(osc-tri hz)Genereert een driehoekgolf met een bepaalde frequentie in Hz.
(osc-pulse hz bias)
(pluck pitch)

Envelopes

Nyquist ondersteunt envelopes. Door een envelope toe te passen op een geluid kan u de algemene vorm van zijn amplitude regelen. Een van de gemakkelijkste manieren om een envelope te construeren is met de env-functie, die 7 parameters bevat die algemeen gebruikt worden om gesynthetiseerde muzieknoten vorm te geven: attack time, decay time, release time, attack level, decay level, sustain level, and overall duration. Zie de afbeelding hieronder:

Nyquist envelope-diagram.

Om een envelope toe te passen op een geluid gebruikt u gewoon de mult-functie. Dus indien s een geluid is, dan is dit het geluid waarop een simpele envelope toegepast wordt:

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

Een van de meest algemene types van envelope is een stuksgewijze lineaire functie, die geconstrueerd kan worden met de pwl-functie. De pwl-functie bevat een lijst van parameters die paren (tijd, waarde) aanduiden. Er is een impliciet beginpaar (tijd, waarde) van (0, 0) en een impliciete eindwaarde van 0. Er moet altijd een oneven aantal parameters zijn, omdat de eindtijd niet impliciet is. Bijvoorbeeld:

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

Geluiden combineren

Naast het vermenigvuldigen van twee geluiden met de mult-functie is het mogelijk om twee geluiden (of envelopes) op te tellen met de add-functie.

Filters

Nyquist heeft een aantal algemene filters ingebouwd. Hier zijn een aantal van de meest algemene:

(lp sound cutoff)
(hp sound cutoff)High-pass filter (eerste-orde Butterworth). Kantelfrequentie kan vlotten of een signaal zijn (voor tijdsafhankelijk filteren) en wordt uitgedrukt in hertz.
(comb sound hz decay)Past een kamfilter toe op het geluid. Deze benadrukt (resoneert met) frequenties die meervouden zijn van hz.
(alpass sound decay hz)All-pass filter, creërt een delay-effect zonder de resonanties van een kamfilter.
(notch2 sound hz)

Geluiden vervormen en combineren

Het is buiten het bereik van deze introductiehandleiding om alle manieren uit te leggen waarop een geluid vervormd kan worden in Nyquist. Deze functies wijzigen geluiden niet rechtstreeks, maar modificeren in plaats daarvan de Nyquist-environment. Om deze veranderingen toe te passen op geluiden moet u de cue-functie gebruiken.

(stretch factor (cue sound))Verandert de lengte van het geluid dat gecued wordt met de gegeven factor.
(scale factor (cue sound))Schaalt de amplitude van het geluid dat gecued wordt met de gegeven factor.
(loud dB (cue sound))Vermeerdert of vermindert het volume van het geluid dat gecued wordt met het gegeven aantal decibels.
(at t (cue sound))Begint het gegeven geluid op een bepaalde tijd in seconden. Dit kan niet gebruikt worden om stilte toe te voegen aan het begin of het einde, maar het kan gebruikt worden bij het combineren van twee of meer geluiden.
(seq (cue s1) (cue s2))Creëert een sequentie van geluid s1 gevolgd door geluid s2.
(sim (cue s1) (cue s2))Combineert twee geluiden zodat ze simultaan afgespeeld worden.

Volgende: Nyquist-plugins creëren