Master's Thesis

Implementation of advanced features for MIDI devices based on STM32L4

Final Thesis 3.74 MB Appendix 4.19 MB

Author of thesis: Bc. Jan Trubačík

Acad. year: 2025/2026

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

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

Abstract:

This thesis concerns implementing capabilities for an STM32 microcontroller based device. The device receives and transmits MIDI messages in real time. A generative sequencer based on the MTM Turing Machine Eurorack module and a simple MIDI looper firmware were created. The firmware was created using the Arduino environment and the MIDI library for C++.
The thesis’ text consists of a theoretical part, which is focused on the different environments and technologies used, including the MIDI protocol itself, of an introduction to the device’s hardware, of a description of the implemented firmware, and it’s practical application.

Keywords:

STM32, Arduino, microcontroller, MIDI, SysEx, firmware, sequencer, generative sequencer, turing machine

Date of defence

11.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

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í?

Language of thesis

Czech

Faculty

Department

Study programme

Audio Engineering (MPC-AUD)

Specialization

Audio Production and Recording (AUDM-ZVUK)

Composition of Committee

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)

Supervisor’s report
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. Points proposed by supervisor: 83

Grade proposed by supervisor: B

File inserted by supervisor Size
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. Topics for thesis defence:
  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í?
Points proposed by reviewer: 75

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová