Emulátor zvukových syntezátorů
Název práce v češtině: | Emulátor zvukových syntezátorů |
---|---|
Název v anglickém jazyce: | Sound Synthesizer Emulator |
Klíčová slova: | syntezátor|emulátor|programovací jazyk |
Klíčová slova anglicky: | synthesizer|emulator|programming language |
Akademický rok vypsání: | 2019/2020 |
Typ práce: | bakalářská práce |
Jazyk práce: | čeština |
Ústav: | Ústav formální a aplikované lingvistiky (32-UFAL) |
Vedoucí / školitel: | Mgr. David Klusáček, Ph.D. |
Řešitel: | Bc. Maximilian Kulikov - zadáno a potvrzeno stud. odd. |
Datum přihlášení: | 24.09.2020 |
Datum zadání: | 24.09.2020 |
Datum potvrzení stud. oddělením: | 03.05.2022 |
Datum a čas obhajoby: | 12.09.2022 09:00 |
Datum odevzdání elektronické podoby: | 22.07.2022 |
Datum odevzdání tištěné podoby: | 22.07.2022 |
Datum proběhlé obhajoby: | 12.09.2022 |
Oponenti: | RNDr. Miroslav Kratochvíl, Ph.D. |
Zásady pro vypracování |
Cílem práce je vytvoření polyfoního konfigurovatelného syntezátoru zvuku s nízkou latencí vhodnou pro profesionální použití. To znamená méně než 10 až 15 ms od stisku klávesy (nebo přijetí příkazu) do rozeznění zvoleného tónu. Průběh práce se bude řídit experimentálními výsledky různých přístupů k řešení, kde se bude latence a další parametry měřit. Uživatelské rozhraní: Syntezátor bude rozumět konfiguračnímu jazyku, kterým uživatel nastaví celkovou strukturu syntezátoru. Tento proces by měl být podobný analogovému zapojení syntezátorů. Konfigurace proběhne těsně po spuštení programu a dále budou vstupem MIDI příkazy, například z připojených MIDI kláves nebo ovládacích pultů. Platforma: Program bude vyvíjen pro operační systém Windows. Pro komunikaci se zvukovou kartou bude použito rozhraní ASIO od firmy Steinberg, pro jeho nízkou latenci. |
Seznam odborné literatury |
[1] R.W.Hamming. Digital Filters. Prentice-Hall, New Jersey, 1977 [2] Jiří Jan: Číslicová filtrace a restaurace signálů, VUTIUM, 2002 |
Předběžná náplň práce |
Nástroj na tvoření emulátorů zvukových syntezátorů.
Základem práce je imperativní programovací jazyk Cynth popisující signály tvořící výsledný zvuk. Kód v jazyce Cynth se přeloží do jazyka C pro následující slinkování s programem řídícím GUI a MIDI vstupní ovládání a výstupní monitorování a napojení zvukové karty. Mezikrok s překladem do jazyka C přináší výhodu z využití optimalizací překladače C. Jazyk Cynth je omezený tak, aby za běhu nedocházelo k žádné dynamicé alokaci, ale zároveň umožňuje komplexní programování za překladu a práci se staticky alokovanými datovými strukrurami určenými k expresivnímu popisu signálů. |
Předběžná náplň práce v anglickém jazyce |
A tool for creation of emulators of audio synthesizers.
The base of the work is an imperative programming language Cynth that describes signals of the resulting sound. Cynth code is translated into C code for further linkage with a program that controls GUI and MIDI input controls and output monitoring and connection with a sound card. The intermediate step of translation into C allows taking advantage of the C compiler optimizations. The Cynth language is restricted in a way that eliminates any dynamic allocations at run-time while allowing complex compile-time programming and working with statically allocated data structures for expressive description of signals. |