časť 17
Skladba z jednej partie: z nápadu na hotovú funkciu
V článku o zázname bola skladba z partie len nápad. Dnes má hra jedenásť štýlov, živú hudbu a tlačidlo Počúvať. Ako sa z jedného záznamu stane skladba, čo z plánu nevyšlo a čo sa o kvalite zvuku nedá zmerať.
V článku o zázname, analýze a skladbe bola skladba z partie ešte len nápad: plán v dokumentácii a nástroj, ktorý „zatiaľ neexistuje“. Platilo pravidlo žiadne rozhranie, kým si prototyp nevypočujem. Od 20. októbra uplynulo sedemnásť dní a skladba je funkcia hry (verzia 0.119.0): po dohratej partii je tlačidlo Hudba, počas hry sa dá zapnúť živá hudba, štýlov je jedenásť a v nastaveniach je tlačidlo Počúvať.
Článok rozpráva, ako sa z jedného záznamu stane skladba, čo z plánu vyšlo a čo nie a čo sa o kvalite zvuku dá zmerať. Obrázky sú nakreslené z dát, ktoré nástroje hry vyrobili zo skutočných partií.
Od nápadu k hre
Čo z plánu zostalo, zmenilo sa alebo vypadlo:
| Plán z 20. 10. | Dnes v hre | Stav |
|---|---|---|
| Rytmická mriežka, tónina a stupnica zo seedu | Každý nástup tónu je na šestnástine taktu (mimo mriežky nie je ani jeden); dvanásť tónin podľa seedu, v 20 partiách 14 až 17 rôznych. | splnené |
| Hlas pre hráča, šanca určuje výšku, výhry do akordových tónov, vyradenie je kadencia | Tvoje útoky sú hlavný hlas a každý súper má vlastný (najviac tri naraz); pravdepodobný zásah je akordový tón, dlhý pokus napätejší; vyradený hráč už nezaznie. | splnené |
| Najviac okolo 16 udalostí na takt | Pevný strop 16; najhustejšia skladba každého štýlu mala 10 až 16. | splnené |
| Prototyp bez rozhrania, najprv počúvať | Galéria so súbormi na počúvanie; rozhodnutie „pokračuj“ padlo po vypočutí. | splnené |
| Jedno kolo je jeden takt | Kolo má 1 až 16 taktov, veľmi dlhá partia dá viac kôl do jedného taktu; skladba trvá vždy 75 až 200 s. | zmenené |
| Počas hry krátky záznam predchádzajúceho kola | Skladateľ ho vie zložiť, hra ho nehrá. | nevyšlo |
Z udalosti tón
Skladateľ je čistá funkcia. Dostane fakty o partii (kto na koho útočil, koľko kociek, aká bola šanca, výhra alebo strata, kto vypadol), štýl a seed a vráti skladbu zapísanú celými číslami (výška tónu, čas, hlasitosť; žiadna frekvencia ani text). Fakty vyrobí prehratie záznamu, takže odkaz na záznam je zároveň skladba a nič sa neukladá. Pravidlá sú v schéme.
Dve vlastnosti stráži test:
- Žiadna náhoda zvonku. Každá „náhodná“ voľba (ktorý tón motívu, ktorý takt oddychuje) je odtlačok identity veci: seedu, taktu a čísla udalosti. Rovnaký záznam, štýl a seed preto dajú rovnaké bajty súboru MIDI. Dnešná kontrola (6. 11.) zložila 660 skladieb dvakrát, načítala ich späť z MIDI a všetky vyšli rovnaké.
- Skladba sa píše po taktoch a len z minulosti. Hudba kola závisí od kôl pred ním, takže rovnaký skladateľ zvládne aj rozohranú partiu. Test zloží skladbu z celej partie aj z partie odrezanej po kole k a porovná takty uzavretých kôl (dnes 220 odrezaných partií, všetky sedeli). Až po hre sa dozvie len plán z analýzy: kde je vrchol a ako sa skladba otáča.
Jedna partia, dva štýly
Obrázok je piano roll jednej skutočnej partie: vodorovne takty skladby, zvisle výška tónu, farba je hráč. Je to partia z galérie hudby: Kniežatstvá[1], štyria hráči, seed CLS4, dvanásť kôl, 140 útokov, z toho 58 útokov hráča 0 (55 vyhraných). Partiu odohrala AI; hráč 0, ktorého hlas je červený a v hre by bol tvoj, ju vyhral. Rovnaké fakty sa zložili do dvoch štýlov.
- Tá istá partia, iná dĺžka taktu. Ambient má 36 taktov a kolo je dva takty, techno 64 taktov a kolo štyri. Tempo (78 a 131 úderov za minútu) sa volí tak, aby skladba trvala 75 až 200 sekúnd, a vyšli skoro rovnako dlhé skladby, 1:51 a 1:57.
- Červený hlas rozpráva v oboch štýloch tú istú partiu. V tejto partii mal každý z 58 útokov hráča 0 šancu aspoň 65 %, takže hlas hrá samé akordové tóny a nič napäté. Napätie by ukázala partia, v ktorej sa riskuje.
- Krížiky sú vyradení hráči: žltý po 4. kole, zelený po 5. a modrý po 12. Na konci ich kola je kadencia a ich hlas potom už nezaznie.
- Bodkované čiary sú zmeny tóniny. Vrchol skladby (v oboch začína okolo 56 % dĺžky) prinesie takt takmer ticha, úder a tóninu o tón vyššie; v závere sa tónina vráti. Techno má navyše zmenu v 4. kole: partia bola rozhodnutá, a tak sa mol zmení na jasnejší dórsky. V ambiente to nie je vidieť, lebo lydická je už jasná. Dva veľké zlomy partie boli v 1. a 2. kole, ďaleko pred oknom skladby, v ktorom sa vrchol hľadá, a vrchol sa preto určil inak.
Z 443 útokov najviac 16 tónov v takte
V malej partii strop 16 tónov v takte nevadí, vo veľkej áno. Preto je druhá partia veľká: šiesti hráči v tímoch, 19 kôl a 443 útokov (seed TEAM6).
V ambiente je kolo jeden takt a v prvých kolách vyjde až 52 útokov na takt; zaznie z nich najviac 7 tónov. V techne má kolo dva takty, útokov je najviac 26 na takt a zaznie najviac 14, teda pod stropom. Hudba nehrá všetko, vyberá:
- Najprv sa nechajú tvoje útoky. Každý má váhu: základ 100, k tomu až 40 za nízku šancu, 10 za výhru, až 20 za veľký stoh kociek, 70 za vyradenie súpera a 60 v kole zlomu z analýzy. Čo sa nezmestí, vypadne od najľahšieho.
- Spŕška (viac než 8 tvojich útokov v kole) sa zmení na tri tóny, beh po stupnici a posledný tón.
- Súperov je naraz počuť najviac traja; ostatné útoky sa zložia do tichých úderov hi-hatu, ktoré nenesú melódiu.
- Aspoň štvrtina dôb hlavného hlasu mlčí (v dnešnej kontrole mala aj najhoršia z 60 skladieb každého štýlu aspoň 28 % ticha). Pauzy sú štruktúra, nie náhoda: prvá verzia ich dodržala len šťastím a 6 z 200 nových skladieb v techne ich nemalo dosť.
V pokojných kolách na konci partie je v grafe naopak tónov viac než útokov (techno, kolá 13 až 19). Nie je to chyba: pribúda arpeggio z kociek, ktoré hráč po kole položil, a to nie je útok.
Jedenásť štýlov
Štýl je hlavne dáta: tempo, stupnice, vzory bicích zapísané ako reťazce o 16 znakoch, hlasy a mix. Pre nový štýl sa občas pridá hlas syntetizátora alebo jedno pravidlo skladateľa (arpeggio pre chiptune); punkrock a folkový metal už nepotrebovali nič, stačili hlasy, ktoré už boli. Posledný stĺpec sú skladby z partie piano rollu, zložené dnešnou hrou:
| Štýl | Tempo (úderov/min) | Stupnice | Čo ho robí iným | Skladba z partie |
|---|---|---|---|---|
| Ambient | 64 – 80 | lydická, dórska, aiolská (mol) | zvony nad širokým padom, žiadne tvrdé bicie, dlhý dozvuk | C# lydická, 1:51 |
| Techno | 124 – 132 | aiolská, frýgická, dórska | štyri údery v takte, acid basa, všetko „pumpuje“ do kopáku | C# aiolská, 1:57 |
| Rock | 96 – 122 | aiolská, mixolýdska | power akordy cez skreslenie, dvojitá gitara | C# mixolýdska, 2:13 |
| Hip-hop beat | 82 – 94 | aiolská, dórska, mixolýdska | beat bez hlasu (žiadny rap), swing, basa 808, elektrické piano | C# aiolská, 1:42 |
| Chiptune | 136 – 156 | jónska (dur), mixolýdska, aiolská, dórska | pulzné vlny 8-bitového čipu, trojuholníková basa, šumové bicie | C# mixolýdska, 1:34 |
| Synthwave | 98 – 116 | aiolská, dórska | štyri údery v takte, gated snare, pílové arpeggiá, široký pad | C# dórska, 1:31 |
| Klasická hudba (pokus) | 78 – 104 | jónska (dur), harmonický mol | sláčiky, klavír a violončelo z oscilátorov, bez bicích | C# harmonický mol, 1:33 |
| Vesmírna opera | 132 – 148 | mixolýdska, lydická, aiolská | tepajúca basa, veľké tomy, zbor „aah“ z filtrovaných píl, gong na vrchole | C# mixolýdska, 1:40 |
| Špagetový western | 88 – 108 | frýgická, aiolská, dórska, mixolýdska | gitara s tremolom, píšťala, bezslovný soprán, cval kopýt, prásknutie biča | C# aiolská, 1:25 |
| Punkrock | 156 – 178 | jónska (dur), mixolýdska, aiolská | osminy na power akordoch, tepajúca basa, pokrikovanie | C# jónska, 1:33 |
| Folkový metal | 136 – 164 | harmonický mol, aiolská, dórska | dvojitý kopák, cválajúca gitara, husle, píšťala a dudy | C# harmonický mol, 1:35 |
Štyri štýly (hip-hop, chiptune, synthwave, klasická hudba) pribudli po prvom vypočutí, štyri na moje želanie: hudba ako z vesmírneho dobrodružstva z roku 1980, špagetový western, punkrock a folkový metal. Pri nich platí jedno pravidlo: berie sa zvuk, nie ani jedna nota. Melódiu, riff ani postupnosť akordov žiadnej skladby hra nepoužíva, melódiu určuje partia a názvy filmov či skupín nie sú v žiadnom texte hry.
Hudba po hre, živá hudba a tlačidlo Počúvať
Po dohratej partii otvorí tlačidlo Hudba okno, ktoré skladbu zloží zo záznamu priamo v stránke: hneď bez príbehu z analýzy a potom znova s ním, keď ho analýza nájde na pozadí (vtedy dostane vrchol a oblúk). V okne je štýl, hustota (pokojná, normálna, hustá), hlasitosť, Iná verzia (nový seed tej istej partie), uloženie ako MIDI alebo zvuk (WAV) a časová os, na ktorú sa dá kliknúť.

Živá hudba hrá počas hry a predvolene je vypnutá, lebo je „pre silný počítač“. Zapína sa v nastaveniach alebo v okne 🎵 na lište hry (jeden veľký vypínač, pod ním stav a dôvod, ak nehrá; pozri článok o menu a oknách). Plán z 20. 10. počítal s krátkym záznamom predchádzajúceho kola, lebo slučka, ktorá rastie, sa po asi desiatich kolách zmení na hluk. V hre je to inak: recap (jeden takt, s testom) skladateľ má, hra ho nehrá. Živá hudba je podklad, ktorý nerastie. Takt po taktoch sa skladá z toho, ako dopadlo posledné uzavreté kolo (akordy, basa, pad, bicie) a každý tvoj útok dostane tón na najbližšiu dobu. Stav podkladu po kole r je rovnaký ako stav skladby po hre pre kolo r; test to porovná s presnosťou na promile.

Počas hry hudba beží pod strážou: sama sa vypne (a vypne sa aj jej nastavenie), ak spomaľuje hru (krok plánovača v priemere nad 6 ms za 40 krokov, jediný nad 60 ms, viac než 8 nôt naplánovaných do minulosti za 5 s alebo viac než 2 000 uzlov). V partii s hmlou vojny nehrá vôbec: zbierač faktov číta celú mapu, takže by napätie a nálada prezradili, čo hráč nesmie vidieť. Nehrá ani v hlavolame, lekcii a minihre.
Tlačidlo Počúvať v nastaveniach vzniklo 3. 11. a rieši poslednú vec: vypočuť si štýl a hustotu bez toho, aby sa hralo. Prehrá štyri takty živého podkladu vybraného štýlu (6 až 12 sekúnd) z jedného pevného stavu, „živého stredu partie“. Nikdy sa nespustí samo a nehrá cez hudbu rozohranej hry. Vedľa je počet nôt („121 nôt · 4 takty · 127 BPM“), takže hustotu vidí aj ten, kto nepočuje. V každom z jedenástich štýlov má pokojná menej nôt než normálna a normálna menej než hustá (ambient 12, 32 a 48; zmerané dnešným kódom). Opisuje ho aj stránka „Záznam, analýza, obrázok a hudba“ vo wiki.
Hlasitosť a kvalita
Meria sa na dvoch miestach.
Jedna skladba. Každú skladbu galérie vykreslí rovnaký syntetizátor ako v prehliadači a nástroj ju zmeria (ffmpeg a vlastná FFT): hlasitosť −20 až −12 LUFS pred normalizáciou, špička pod −1 dBTP, žiadne orezanie, spektrum bez mŕtveho pásma a bez stáleho syku a podiel tónov v stupnici aspoň 90 % (namerané 97,7 až 100 %). Pri vrchole sa overuje, že ticho a úder v zvuku naozaj sú: takt pred vrcholom je o 11,9 až 29,1 LU tichší než zvyšok. Práve takto sa zistilo, že v ambiente a v techne vrchol v zvuku nezaznel, hoci v notách bol: pad a nábeh hrali aj cez takt ticha a úder prešiel cez filter, ktorý odrezal hlboké tóny. (LUFS je hlasitosť podľa normy EBU R128, LU rozdiel dvoch takých hlasitostí.)
Hudba proti zvukom hry. Keď sa to 22. 10. zmeralo, živá hudba na „normálnej“ hrala o 10 LU hlasnejšie než najhlasnejší zvuk hry (hod kockami) a o 15 LU než zvuky ako prúd; prehlušovala každý efekt. Podklad sa preto nastavil tak, aby bol pri „normálnej“ o 8 LU pod prúdom zvukov, tri nastavenia boli od seba 5 LU a jedenásť štýlov do 2 LU od seba. Meranie sa zopakovalo 6. 11. a vyšlo rovnako: všetkých jedenásť štýlov má pri „normálnej“ medián −45,1 až −45,3 LUFS, 7,8 až 8,0 LU pod prúdom zvukov (−37,3 LUFS), kroky nastavení 5,0 a 4,9 LU.
Posuvník. Hlasitosť bola dlho slovo (tichá, normálna, hlasná), dnes je číslo od 0 do 100 a jeden krok je 0,2 dB: stred 50 je „normálna“, 25 a 75 sú presne −5 a +5 dB (tam boli staré slová, a tak hráč s uloženým slovom počuje to isté), 0 je ticho a 100 je +10 dB. Okno hudby po hre má vlastnú, hlasnejšiu škálu: nemá zvuky, s ktorými by sa delilo o miestnosť. Pri efektoch sa podklad navyše o 4 dB utlmí a za 350 ms sa vráti.
Horný koniec posuvníka sa ako zvukový prúd nikdy nemeral. Výpočet z dnešných čísel (−45,3 + 10) dáva −35,3 LUFS, teda o 2 LU nad prúdom zvukov: na samom konci posuvníka je hudba hlasnejšia než zvuky. Je to dopočítané, nie zmerané, a graf to kreslí prázdnym kruhom.
Poctivé obmedzenia
- Vývojový asistent, ktorý prototyp postavil, nepočuje. Kvalitu preto strážili merania, ktoré hovoria, či je skladba pokazená. Nezávislá kontrola to povedala jasne: „nenašli sa problémy“ znamená „nie je pokazené“, nie „znie to dobre“. Či je melódia príjemná, to meraním zistiť nejde, a rozhodnutie „pokračuj“ patrilo mne ako tomu, kto počúva.
- Klasická hudba je hracia skrinka. Z oscilátorov sa dá urobiť pad a pizzicato, nie orchester. Štýl sa v hre volá
Klasika (pokus)a hra o ňom hovorí, že je najmenej presvedčivý. Orchester sa nesľubuje. - Nemeria sa melódia, groove ani únava po dvoch minútach. Pravidlá z melódie robia niečo príjemné, nie nezabudnuteľné.
- Štýl nie je kópia. Hip-hop je beat bez hlasu, chiptune má viac kanálov než skutočný čip, synthwave má hlavný hlas podobný technu a punkrock nepozná vtip ani pokrik.
- Plán sa nesplnil celý. Krátky záznam predchádzajúceho kola v hre nehrá a kolo nie je jeden takt.
Čo si z toho odnášam
- Prototyp bez rozhrania sa oplatil. Galéria bola hotová za 52 minút a prezeranie, meranie a nezávislé kontroly na nej našli tridsať vecí, ktoré sa opravili skôr, než sa objavilo prvé tlačidlo. Rozhodnutie, či pokračovať, bolo moje a padlo po vypočutí.
- Meranie nenahradí uši, len zúži hľadanie: skladba nie je pokazená, to ešte neznamená, že je dobrá.
- Štýl je dáta. Preto sa z troch štýlov stalo jedenásť za dva dni a pri posledných dvoch sa syntetizátor nemenil.
- Plán treba porovnať s hotovou vecou. Kolo, ktoré nie je takt, je v dokumentácii zapísané ako odchýlka; že hra nehrá
recap, sa ukázalo až porovnaním kódu s plánom. - Zmeraj, voči čomu to znie. Hudba bola o 10 LU hlasnejšia než zvuky hry, kým to nikto nezmeral.
Zdroje a poznámky
- Stav: hra Audamir 0.119.0, 6. 11. 2026. Tabuľka štýlov je z dát a textov hry; prahy, váhy a stropy skladateľa sú z dát hry, nie z merania jednej partie.
- Zmerané 6. 11. 2026: skladby z partií CLS4 a TEAM6 zložené dnešným skladateľom; ambient a techno z CLS4 sedia s riadkami z 21. 10. v dokumentácii hry, takže ide o tú istú skladbu. Kontrola skladby (26 s): 60 partií AI × 11 štýlov, s príbehom aj bez neho, všetky brány prešli. Hlasitosť:
loudness.js --checkv headless Chromiu (24 min), výsledok „inside the bounds of the data“. Počty nôt a dĺžky náhľadu tlačidla Počúvať dal dnešný kód; že hrarecapnehrá, ukázalo prehľadanie jej kódu. - Nezmerané znova: kvalita jednej skladby (spektrum, špička, tóny v stupnici, ticho pred vrcholom) a hlasitosť z 22. 10. (hudba o 10 LU hlasnejšia než zvuky) sú z 21. a 22. 10. 2026, z galérie 60 skladieb. Stráž živej hudby a hmla vojny sú podľa dokumentácie hry. Dopočítané, nie zmerané: horný koniec posuvníka (−45,3 + 10 dB = −35,3 LUFS).
- Séria: plán z 20. 10. je v článku 15.
- Čo v článku nie je: ukážky skladieb (web zatiaľ nevie vložiť zvuk); hra ich drží ako 11 súborov
.oggpo 58 s a 11 súborov.midz partie CLS4, spolu 8,0 MB.
Poznámky
- Do verzie 0.65.6 z 31. októbra 2026 sa volal Klasik. ↩︎