Ako sa počítače učia polyfóniu
Originály skladieb, ktoré sme použili, sú uložené vo formáte MIDI, ktorý udržuje informácie o jednotlivých nástrojoch, tempe skladby a stopách, ktoré nástroje hrajú.
Zabudovaný reproduktor počítača (angl. PC speaker) však dokáže naraz hrať len jednu notu, preto bolo nutné MIDI súbor rozobrať a rozložiť noty v stopách tak, aby každý počítač hral v každom čase maximálne jednu notu. Pre jednoduchosť sa relatívny časovací mechanizmus MIDI (údery, angl. ticks), ktorý sa môže počas skladby meniť napr. zmenou tempa, zároveň previedol na absolútny čas v μs od začiatku skladby.
Keďže na zabudovanom reproduktore nie je možné rozlíšiť, aký nástroj práve hrá, násobné noty v jednej stope sa tak môžu rozdistribuovať medzi iné stopy, ktoré v tom čase nič nehrajú. Takto sa vo výsledku obvykle zníži počet potrebných počítačov.
Posledným problémom, ktorý bolo potrebné vyriešiť, je synchronizácia a výber skladby. Príkaz na hranie skladby vydáva skript na centrálnom počítači, ktorý sa pripojí na všetky Nymfe vo vybranej učebni. Zároveň im pošle informáciu o názve skladby a plánovanom začiatku.
V ďalšom kroku si každý počítač prečíta textový súbor pre vybranú stopu a pripraví zoznam nôt, ktoré bude hrať. Tento krok musí byť hotový ešte pred plánovaným začiatkom skladby, inak by čítanie textového súboru z disku (hoci aj SSD) spôsobovalo výrazné spomalenie nôt hrajúcich rýchlo po sebe. Na meranie času sa používajú hodiny s vysokou presnosťou, rádovo μs. Vďaka absolútnemu časovaniu nôt od začiatku skladby sa tak dosiahne veľmi presná synchronizácia stôp skladby.
Zdrojové kódy sú dostupné vo fakultnom GitLabe.
Premiérový program
V počítačových učebniach hrali počítače vždy tak, aby skončili tesne pred začiatkom hodiny a zdvihli študentom náladu pred hodinou, ktorá ich čakala. V počítačovej hale hrali skladby každú celú hodinu.
A219 |
10:00 |
AC/DC - Thunderstruck |
14:00 |
小田部 羊 - Super Mario Overworld Theme |
16:00 |
Antonio Vivaldi - Four Seasons, Summer |
B130 |
10:00 |
Antonín Dvořák - Humoresque 7 |
12:00 |
Scott Joplin - The Entertainer |
14:00 |
ABBA - Dancing Queen |
16:00 |
Michael Jackson - Smooth Criminal |
PC Hala |
10:00 |
Lou Bega - Mambo No. 5 |
11:00 |
Wolfgang A. Mozart - Rondo Alla Turca |
12:00 |
Domenico Scarlatti - Sonata K. 1 |
13:00 |
Queen - We Will Rock You |
14:00 |
Richard Wagner - Ride of the Valkyries |
15:00 |
John Williams - Imperial March (Darth Vader's Theme) |
16:00 |
Johann S. Bach - Toccata and Fugue BWV 565 |
17:00 |
Johann S. Bach - Brandenburg Concerto No. 1, 1st mov. |
18:00 |
Village People - Y.M.C.A. |
19:00 |
Rick Astley - Never Gonna Give You Up |
Hudba budúcnosti
Orchester po premiére oznámil rozpad kvôli názorovým nezhodám. Nevylučujeme však, že sa čas od času pripomenie krátkou skladbou, aby "spríjemnil" študentom v hale posledné hodiny pred deadline domácich úloh.