diplomová práce

Implementace pokročilých funkcí pro MIDI zařízení založené na STM32L4

Text práce 3.74 MB Příloha 4.19 MB

Autor práce: Ing. Jan Trubačík

Ak. rok: 2025/2026

Vedoucí: Ing. Jiří Přinosil, Ph.D.

Oponent: doc. Ing. Jiří Schimmel, Ph.D.

Abstrakt:

Diplomová práce se zabývá implementací funkcí pro zařízení založené na mikrokontroléru STM32L432KB, které přijímá a vysílá zprávy MIDI protokolu v reálném čase. Pro zařízení byl sestaven firmware generativního sekvenceru založeného na Eurorackovém modulu MTM Turing Machine a jednoduchého MIDI looperu. Implementace byla provedena v prostředí Arduino za využití funkcí MIDI knihovny pro C++.
Text práce sestává z teoretické části, věnující se využitým prostředím a technologiím včetně samotného MIDI protokolu, ze seznámení s hardwarem zařízení, popisu struktury implementovaného firmwaru a jeho praktického využití.

Klíčová slova:

STM32, Arduino, mikrokontrolér, MIDI, SysEx, firmware, sekvencer, generativní sekvencer, turing machine

Termín obhajoby

11.06.2026

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaCznamka

Klasifikace

C

Průběh obhajoby

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil diplomovou práci s výhradami a odpověděl na otázky členů komise a oponenta. Otázky: 1) Jakým způsobem byste řešil problém, že kolísání doby jednoho průchodu smyčkou generování MIDI zpráv ovlivňuje jejich časování?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Audio inženýrství (MPC-AUD)

Specializace

Zvuková produkce a nahrávání (AUDM-ZVUK)

Složení komise

Ing. Jaromír Mačák, Ph.D. (člen)
Doc.Ing.MgA. Ondřej Urban, Ph.D. (předseda)
doc. Ing. Jiří Schimmel, Ph.D. (místopředseda)
RNDr. Lubor Přikryl (člen)
Ing. Ondřej Mokrý, Ph.D. (člen)

Posudek vedoucího
Ing. Jiří Přinosil, Ph.D.

Student zpracoval diplomovou práci samostatně za pomoci konzultací s Ing. Štěpánem Dvořáčkem (externí vedoucí práce). Zadání práce považuji za splněné. Odbornost praktické části je zhodnoceno externím vedoucím práce. Z formálního hlediska je práce spíše slabší, objevují se zde překlepy a nekonzistentnost v použité terminologii. Taktéž se v práci se objevují nedostatky v sazbě a formátování, což kazí celkový dojem práce. Výsledný počet bodů navržený vedoucím: 83

Známka navržená vedoucím: B

Soubor vložený vedoucím Velikost
Posudek vedoucího práce [.pdf] 93,79 kB

Cílem diplomové práce byla realizace MIDI looperu a následně generativního MIDI sekvenceru na existující platformě Synthmate využívající mikrokontroler STM. Zadáním bylo požadováno, aby byl sekvencer inspirovaný modulem MTM Turing Machine. Z tohoto hlediska bylo zadání splněno. Přestože generativní sekvencer, který diplomant realizoval, disponuje řadou funkcí, má diplomová práce menší rozsah. Student mohl z vlastní iniciativy přidat další možnosti generování sekvencí pomocí posuvného registru, např. MLS. Ovládání sekvenceru je promyšlené, jen z textu práce vyplývá, že funkce Tap měří čas pouze mezi dvěma stisknutími. Typicky se používá zprůměrování intervalu mezi alespoň třemi kliknutími. MIDI looper byl implementovaný na starší verzi platformy Synthmate a na novější platformu, na které diplomant implementoval sekvencer, jej nepřenesl.

Oceňuji, že se diplomant obsáhle věnuje testování realizovaného sekvenceru, ale pro měření dopravního zpoždění nepoužil signálový nebo logický analyzátor a zůstává v podstatě u úvah, že nepředstavuje problém. Stejně tak se pokusil o měření kolísání doby provedení jedné smyčky pomocí MIDI analyzátoru pro Windows, ale pokud chtěl dosáhnout vyšší přesnosti, než má multimediální časovač použitý pro časová razítka MIDI událostí, musel by uvažovat i zpoždění přenosu mezi MIDI rozhraním a jeho ovladačem, což na aplikační vrstvě zjistit nelze.

Text práce má pouze 38 stran a je poměrně nepřehledný. Teoretický úvod má začínat rozborem tématu práce – protokol MIDI, typy a princip sekvencerů a looperů, možnosti generování not, Turingův stroj, a následně až popisovat implementační platformu, samotnou implementaci a testování. Po formální stránce je text práce na nízké úrovni. V části popisující MIDI je na řadě míst nepřesná terminologie, zabývá se systémovými zprávami, které ale pro vlastní práci nejsou relevantní. Používá neodborné výrazy a slovní spojení jako „napětí binárního charakteru“, „hodinový signál podněcuje posouvání registrů“ atd. Používá také zbytečně anglicismy jako „buffer“ nebo „interrupty“ nebo je dokonce píše foneticky, např. „MIDI klok“. Souhlas s publikováním obrázků od jejich autorů se uvádí u popisku obrázku, ne způsobem, jakým to diplomant udělal v kapitole 1.6. Přestože bude dokument publikován elektronicky, bývá zvykem dávat Internetové odkazy jako poznámku pod čarou, ne jako proklik přímo v textu. Kapitola 1.6.3 začíná obrázkem, seznam zdrojových kódů by měl být v příloze, ne jako obr. 2.3, navíc s popiskem nad, na obr. 4.3 není blokové schéma, ale vývojový diagram, který ale nevyužívá standardních značek, obr. 1.6 rozděluje odstavec před posledním slovem atd. Výpisy kódu nejsou číslovány a opatřeny popiskem.
I přes řadu výhrad bylo zadání práce splněno. Otázky k obhajobě:
  1. Jakým způsobem byste řešil problém, že kolísání doby jednoho průchodu smyčkou generování MIDI zpráv ovlivňuje jejich časování?
Výsledný počet bodů navržený oponentem: 75

Známka navržená oponentem: C

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová