Programowanie w Nyquist
- Wprowadzenie do programowania w Nyquist i Lisp
- Programowanie w Nyquist
- Tworzenie wtyczek Nyquist
To, co odznacza Nyquist od Lisp to to, że jest stworzony do pracy z dźwiękiem oraz posiada wiele wbudowanych funkcji, które syntetyzują, analizują i manipulują dźwiękiem. W Audacity, powoduje to, że jest o wiele łatwiej tworzyć skomplikowane efekty z palety wbudowanych funkcji Nyquist'a.
W Nyquist, zmienna może zawierać dźwięk tak samo jak i liczbę lub ciąg znaków. Istnieje wiele funkcji, które pozwalają na rozciąganie, zniekształcanie i łączenie dźwięków bardzo efektywnie. Można nawet "rozdzierać" dźwięk, aby uzyskać dostęp do pojedyńczych próbek, lecz jest to poza obrębem tego tutoriala.
Aby wypróbować wyrażenie Nyquist w Audacity, można użyć "Nyquist Prompt" w menu Efekt. Jakikolwiek dźwięk będzie zaznaczony, pojawi sie w zmiennej s, a a zaznaczenie zostanie zastąpione wynikiem wyrażenia Nyquist. W Części 3 nauczysz się, jak tworzyć efekty wtyczek używając Nyquist.
Syntetyzowanie
Wszystkie te funkcje tworzą nowe dźwięki. Można ich używać do "generowania" efektów wtyczek lub do łączenia syntetyzowanych dźwięków z zaznaczonym dźwiękiem do tworzenia ciekawych efektów.
| (noise) | Generuje biały hałas |
| (const value [duration]) | Generuje ciągły (cichy) sygnał |
| (sine pitch [duration]) | Generuje falę sinusoidalną z wyznaczoną długością Szczyt jest numerem MIDI, z 60 dla środkowego C. |
| (hzosc hz) | Generuje falę sinusoidalną na pewnej częstotliwości w Hz. |
| (osc-saw hz) | Generuje falę piłokształtną na pewnej częstotliwości w Hz. |
| (osc-tri hz) | Generuje falę trójkątną na pewnej częstotliwości w Hz. |
| (osc-pulse hz bias) | |
| (pluck pitch) |
Programiści
Nyquist posiada wsparcie dla paczek. Poprzez zastosowanie paczki dźwięku, można kontrolować dźwięk amplitudy. Jednym z najprostszych sposobów stworzenia paczki jest przy użyciu funkcjienv, która posiada 7 parametrów które są często używane do tworzenia nut muzycznych: czas ataku, czas opóźnienia, poziom ataku, poziom opóźnienia oraz całkowita długość.Oto wyniki poniżej:
Aby zastosować paczkę do dźwięku, użyj funkcjimult. Więc jeśli s jest dźwiękiem, wtedy to jest dźwięk z paczką zaaplikowaną do niego:
(mult s (env 0.1 0.1 0.2 1.0 0.5 0.3 1.0))
Jednym z najbardziej ogólnych rodzajów koperty jest funkcja liniowa, którą można stworzyć przy użyciu funkcji pwl. Funkcja pwl przyjmuje parametry, które określają pary (czas, wartość). Wstępna para (czas, wartość) o wartościach (0, 0), oraz wartość końcowa 0. Ilość parametrów powinna być zawsze nieparzysta, ponieważ wartość końcowa jest ukryta. Na przykład:
; symmetric rise to 0.7 (at time 1) and fall back to 0 (at time 2): (pwl 1.0 0.7 2.0)
Łączenie dźwięków
Poza mnożeniem dwóch dźwięków z funkcją mult, można również dodać dwa dźwięki (lub paczki) do funkcji add.
Formaty Plików
Nyquist posiada wiele popularnych wbudowanych filtrów. Oto niektóre z nich:
| (lp sound cutoff) | |
| (hp sound cutoff) | Filtr przepuszczający wysokie częstotliwości (Butterworth). Odcięcie może być sygnałem i wyrażać się w hertzach. |
| (comb sound hz decay) | Stosuje filtr grzebieniowy do dźwięku, który zaznacza (rezonuje) na częstotliwościach, które są wielokrotnościami Hz. |
| (alpass sound decay hz) | Filtr przepuszczający wszystkie częstotliwości, tworzący efekt opóźnienia bez rezonowania filtru grzebieniowego. |
| (notch2 sound hz) |
Przekształcanie i łączenie dźwięków.
Wytłumaczenia tego, jak dźwięk może być przetwarzany w Nyquist jest poza możliwościami tego wprowadzenia. Funkcje te nie modyfikują dźwięków bezpośrednio, lecz modyfikują środowisko Nyquista. Aby te zmiany wpłynęły na dźwięki, trzeba użyć funkcji cue.
| (stretch factor (cue sound)) | Zmienia długość dźwięku o dany czynnik. |
| (scale factor (cue sound)) | Zmienia amplitudę dźwięku o dany czynnik. |
| (loud dB (cue sound)) | Zwiększa lub zmniejsza głośność dźwięku o daną liczbę decybeli. |
| (at t (cue sound)) | Rozpoczyna dany dźwięk w pewnym momencie w sekundach. Nie można tego używać do dodawania ciszy na początku ani na końcu, lecz można tego używać do łączenia dwóch lub więcej dźwięków. |
| (seq (cue s1) (cue s2)) | Stwórz sekwencję dźwięku s1 poprzedzającym dźwięk s2. |
| (sim (cue s1) (cue s2)) | Łączy dwa dźwięki, aby grały równocześnie. |

