Stvaranje Nyquistovih dodataka
- Uvod u Nyquist i Lisp programiranje
- Programiranje u Nyquistu
- Stvaranje Nyquistovih dodataka
Stvaranje dodatka za Audacity pomoću Nyquista jednostavno je kao stvaranje tekstne datoteke s produžetkom ".ny" s nekim Nyquist kodom, zatim dodavanjem par komentara za napomenu vrste dodatka i smještanje datoteke u Audacityjevu plug-ins mapu. Ovdje je vrlo jednostavan primjer dodatka:
;nyquist plug-in ;version 1 ;type process ;name "Fade In" ;action "Fading In..." (mult (ramp) s)
Prvi redak Nyquistova dodatka mora biti posve isti kao u primjeru gore, a drugi redak mora pokazivati broj inačice. Inačica 2 i 3 dodatka podupiru više widgeta, ali dodatke inačice 3 ne podupire Audacity 1.3.3 ili prijašnji. Sljedeći redak je vrsta dodatka koji je objašnjen ispod. Zatim dolazi ime dodatka koji je prikazan u izborniku, zatim "radnja" koju Audacity prikazuje dok obrađuje dodatak. Zatim slijede mogući redci. Bilo koji redak koji ne počinje s točka-zarezom (;) uzima se kao Nyquistov kod te se izvodi.
Audacity ima potporu za tri vrste dodataka koji mogu biti napisani u Nyquistu:
;type generate ;type process ;type analyze
Ovi se odnose na tri izbornika koji mogu sadržavati utičnike: Stvori, Učinci i Prouči. Utičnici Stvori inače stvaraju zvuk od ničega, utičnici Učinci ("process") mijenjaju postojeći zvuk, a utičnici Prouči pomažu korisniku da bolje promotri svoje djelo te ne prave nikakve promjene (iako dodaju oznake).
Za utičnike izbornika Učinci i Prouči, Audacity postavlja okolinu za Nyquist tako da je izabrani zvuk u promjenjivom s. Svi izrazi u utičničkoj datnici izvršuju se po redu i izlazna vrijednost zadnjega izraza zamjenjuje izbor u Audacityju. Ako zadnji izraz ne vraća vrijednost, Audacity javlja kvar.
Razgovori o čimbenicima
Audacity ima ograničenu potporu za dodatke koji prikazuju razgovor za unos čimbenika. Ovdje je primjer dodatka koji započinje razgovor:
;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))
Ako Audacity nađe bar jednu "upravljačku" crtu, otvara pričalicu kako bi javio korisniku za određene čimbenike utičnika. Svaki čimbenik ima tekstnu kućicu i klizač te kad korisnik unese svaku, konačna je vrijednost spremljena u Nyquistovu nepoznanicu s imenom koje odredite u "upravljačkoj" crti. Ovako izgleda pričalica za učinak Odgoda u Linuxu:
Napominjem da "info" redak je prikazan na vrhu razgovora i da "\n" postaje novi red. Čimbenici "nadzornoga" retka utječu na izgled i ograničenja čimbenika. Svaki "control" redak mora sadržavati točno 8 sljedećih članova, u poredanih:
- Riječ "nadzor"
- Ime nadzora - ovo je ime Nyquistove nepoznanice koja će se postaviti kad korisnik upravlja razgovorom.
- Oznaka s lijeva nadzora
- Vrsta vrijednosti: ili
int(cijeli broj) ilireal. - Oznaka s desna strane vrijednosti (obično u jedinicima kao "Hz" ili "dB").
- Zadana/početna vrijednost čimbenika
- Najmanja vrijednost čimbenika
- Najveća vrijednost čimbenika
Vraćanje oznaka
Umjesto vraćanja zvuka, Nyquistov utičnik može vratiti popis oznaka. Popis je oznaka jednostavno popis parova (vrijeme, oznaka), primjerice:
((0.0 "start") (30.0 "middle") (60.0 "end"))
Kad dodatak vrati popis u točno ovakvom obliku, Audacity će stvoriti novi zapis s oznakom i dodati oznake na tim mjestima. Ovakva vrsta dodataka obično je "analizator".
Novo! Počevši s Audacityjevom inačicom 1.3.1 možete, ako želite, dobiti početno i krajnje vrijeme, kao ovo:
((0.0 25.0 "start") (30.0 45.0 "middle") (60.0 75.0 "end"))
Napominjem da se oznake u Audacityju 1.3 mogu preklapati; završetak jedne može biti poslije početka druge.
Obradba stereo zapisa
Nyquist predstavlja stereo zapise kao niz zvukova (ne kao popis). Puno Nyquistovih funkcija samodjelno radi s tim nizovima, ali katkad ne pa ćete morati rascijepiti stereo niz ili presastaviti jedan. Tu imate neke korisne funkcije.
(arrayp s) | vraća istinu ako je s niz |
(aref s 0) | prvi član niza s - lijevi kanal |
(aref s 1) | drugi član niza s - desni kanal |
(setf s (make-array 2)) | pravi s u novi niz dužine 2 |
(setf (aref s 0) left) | pravi left prvim članom niza s |
(setf (aref s 1) right) | pravi right drugim članom niza s |
Za vašu ugodnost, ako je ulaz za vaš Nyquistov dodatak stereo, a vama izlazi samo mono zvuk, Audacity će samodjelno kopirati ulazni zvuk na lijevi i desni kanal.
Kamo odavdje?
Audacity dolazi s uzorkom dodataka koje možete istražiti ili prilagoditi kao početnu točku. Najbolji način za učenje Nyquista je pokušati to. Ako imate teškoća s debuggiranjem, razmislite o preuzimanju zasebne inačice Nyquista (pogledati poveznicu u Dijelu 1).
Ako vam Nyquist uopće ne radi, molimo, obratite nam se.
Ako radite na Nyquistovim učincima i želite ih podijeliti s drugima ili ako želite raspraviti kako postići određene učinke u Nyquistu, molimo javite se na Nyquist board of the Forum ili se pridružite audacity-nyquist poštnom popisu.
Ne zaboravite savjetovati cjeloviti Nyquist 2.37 referencijski vodič za potankosti o Lispu i Nyquistu.

