Co trzeba wiedzieć, aby zbudować syntezator oprogramowania?

19

Dla kogoś, kto ma pewne doświadczenie w tworzeniu oprogramowania, kocha swoje syntezatory i zna [bardzo] podstawy cyfrowej reprezentacji dźwięku, jakie są pierwsze kroki, które powinien wykonać, aby zaprogramować syntezator muzyczny pod względem DSP?

vemv
źródło

Odpowiedzi:

17

Uzyskaj syntezę dźwięku rzeczywistego dla aplikacji interaktywnych i pobierz zestaw narzędzi do syntezy . To da praktyczne wprowadzenie i wysokiej jakości kod źródłowy dla większości używanych metod syntezy cyfrowej. Następnie wybierz najodpowiedniejszą metodę i zacznij modyfikować odpowiedni kod STK, aby zrobić to, co chcesz. Następnie spróbuj zbudować coś podobnego od zera.

Ponadto, jak sugeruje hotpaw2 , wszystko z JOS jest również świetnym materiałem wprowadzającym. W szczególności Wprowadzenie do filtrów cyfrowych z aplikacjami audio i matematyki dyskretnej transformaty Fouriera rozpoczynają się od podstaw i nie zakładają zbyt dużego tła.

Z punktu widzenia filtrów / efektów cyfrowych kolejnym dobrym punktem wyjścia jest sprawdzenie Fausta . Nie musisz nawet uczyć się języka przetwarzania sygnałów na schemacie blokowym, możesz po prostu użyć przykładów, aby zrzucić kod szablonu VST, LADSPA itp. Jako szybki sposób na uruchomienie czegoś [który możesz następnie zmodyfikować].

Biorąc to pod uwagę, jeszcze łatwiej jest zacząć od renderowania dźwięku, co w zasadzie jest tym samym, ale bez obawy o działanie w czasie rzeczywistym lub interaktywność. Po prostu zapisujesz pliki wav na dysku. To świetny sposób na eksperymentowanie z nowymi technikami, zanim napotkasz trudności z ich szybkim uruchomieniem.

Datageist
źródło
Idealna odpowiedź - obejmuje bardzo dobrze wyważoną liczbę spraw. Dziękuję Ci!
vemv
6

Przeczytałbym książkę wprowadzającą na temat DSP oraz kilka książek na temat muzyki komputerowej (Amazon i inne księgarnie wymieniają kilka). Jest też bogactwo oczywiście materiałów ze Stanford na temat DSP i syntezy dźwięku. Pomocne mogą być również książki o ludzkim układzie słuchowym i psychoakustyce.

hotpaw2
źródło
5

Najpierw musisz zdecydować, jaki rodzaj syntezatora chcesz zbudować - addytywny, FM, oparty na próbce itp. Musisz także zdecydować, czy chcesz emulować istniejący analogowy syntezator, czy po prostu zaprojektować własny.

Reszta jest dość łatwa - wystarczy zaimplementować różne bloki konstrukcyjne syntezatora (np. Oscylatory, filtry, generatory szumów, kształty obwiedni itp.) W oprogramowaniu, a następnie zaimplementować sposób ich „okablowania” i kontrolowania ich parametrów.

Zobacz książkę Hal Chamberlin, Musical Applications of Microprocessors , która jest dobrym wstępem do wielu podstaw.

Paul R.
źródło
4

Jestem dość zaskoczony, że nikt nie wspomniał jeszcze SynthMaker . Jest absurdalnie łatwy w użyciu i chociaż utrudnia przejście na niski poziom (koniecznie skorzystaj z trybu programisty ), możesz dowiedzieć się wiele o architekturze Synthesizera, a także o ogólnym DSP. I możesz faktycznie korzystać z rzeczy, które z nim zbudowano, w rzeczywistości używam go do konstruowania prawie wszystkich moich wtyczek.

po lewej stronie
źródło
Jako programista zawsze byłem niechętny czarodziejom, ale założę się, że DSP to głęboki świat, więc SynthMaker może się przydać. Ponadto kilku kolegów miało z tym dobre doświadczenia :)
vemv
Sam chciałem wspomnieć o SynthMaker. To świetny program.
Matt M.
4

Jak wspomnieli inni autorzy, dobry starter na DSP jest koniecznością. To świetna książka> http://www.dspguide.com/, a autor uprzejmie zapewnił pełne i bezpłatne pobranie pliku PDF. Innym popularnym podręcznikiem do techniki muzycznej, który zapewnia dobre widoki różnych technik syntezy na wysokim poziomie, jest> http://www.amazon.com/Computer-Music-Tutorial-Curtis-Roads/dp/0262680823 . Chciałbym również powtórzyć to, co sugerował poprzedni autor, Synthmaker, który jest bardzo wygodnym wizualnym środowiskiem programistycznym do tworzenia wtyczek VST. Na koniec, jeśli chcesz po prostu eksperymentować bez zagłębiania się w to, możesz spróbować Csound, który jest językiem programowania zaprojektowanym specjalnie do syntezy dźwięku.

Dan Barry
źródło
2

Chcę tylko włączyć się, ponieważ większość odpowiedzi dotyczy zagadnień DSP. Jeśli nie korzystasz z systemu do projektowania bloków, takiego jak SynthMaker, poświęcisz dużo czasu na rozwój w zarządzaniu głosem. Jeśli pisałeś wtyczkę instrumentu VSTi od zera, krzywa uczenia się jest znacznie dłuższa niż w przypadku wtyczek efektów. Będziesz musiał zarządzać każdym obiektem nuty, zdecydować, co się stanie, gdy będzie 20 nut, jeśli Twój DSP jest wystarczająco szybki na 16 głosów, odpowiedzieć na pitch bend, portamento, modulację itp. To nie jest łatwe zadanie i dlatego bardzo zalecamy zacząć od Buzza lub SynthMakera i rzucić własny, gdy w końcu natkniesz się na ścianę.

Matt M.
źródło