Hudební skladba - stroj

Hudební stroj - jádro kompozičního programu – sestává z několika tříd. Tyto budou popsány v následujících odstavcích.

Metoda komponování

Hudba vzniká v abstraktních soustavách (kombinatorické systémy harmonie, rytmu a melodie) na základě kompozičních pravidel a uživatelsky definovaných parametrů skladby. Skladba se odvozuje optimalizací, tj. pro dané hodnoty parametrů existuje zpravidla jen jedna jediná skladba. (Náhodný proces se využívá jen vyjímečně - např. k automatickému generování parametrů - jako náhrada za činnost uživatele.

Výsledná hudba je polyfonní s harmonickým podtextem - předem vytvořený harmonický plán se pokrývá melodickými liniemi, přičemž rytmika jednotlivých linií i podtextu je obecně nezávislá (např. monodie, tj. melodie s harmonickým doprovodem, vzniká při shodné definici rytmu několika melodií, apod.). Kompozice vznikají v pravidelné (temperované) 12-ti tónové soustavě, cílem je umožnit v budoucnu i zjemnění na vícetónové mikrotonální soustavy.

Požadavky

Hudba v hudebním stroji vzniká na základě tzv. požadavků. Každý požadavek zahrnuje jednak přesný výčet a váhy kompozičních pravidel a zároveň výčet, hodnoty a váhy parametrů.

Požadavky jsou dvojího typu: a/ formální – nezávislé na oktávové poloze tónů (např. pravidlo harmonického krytí) b/ reálné – závislé na oktávové poloze tónů (např. pravidlo disonantních střetnutí)

Kompoziční pravidla

Do budoucna je možné uvažovat i o dalších pravidlech – např. následující 4 pravidla byla původně uvažována, ale nepodařilo se je definovat tak, aby se projevila zlepšením znění…

Obecně je možné uvažovat o možnosti (uživatelsky) měnit váhy pravidel. (např. v šachových programech se dá takto nastavit, zda má hrát počítač více strategicky nebo útočně apod.) Prakticky jednodušší je ale navrhnout jen několik základních typů, ze kterých si uživatel vybere – např. viz MusicalRulesType (StandardMusicalRules, SimpleHarmonicRules, MusicalImpulseRules). Váhy pravidel byly pro jednotlivé varianty nastaveny odhadem a pak dodatečně upraveny vždy tehdy, když vedly k zjevným chybám ve výsledné skladbě.

Vyhodnocování požadavků

Před zpracováním každé linie se k připraveným požadavkům (s kompozičními pravidly) doplní požadavky (formální a reálný) na průběh melodie.

Množina tónů, ze kterých se vybírá odpovídá vždy určité modalitě (HarmonicModality). První věcí je tedy zjištění modality, která dané místo (takt) ovládá. Zde je možné postupovat několika způsoby – typy „modalizace“ HarmonicModalizationType (Consecutive, Forced, Chromatic).

Následná (consecutive) modalizace vychází vždy z harmonických struktur, které se objevují v daném taktu, nebo bezprostředně před ním. Vnucená (forced) modalizace vychází z dané modality, která je do skladby nebo její části vnucena, tj. např. si můžeme představit lidovou píseň provedenou v několika různých modalitách (tóninách). Chromatická (chromatic) modalizace nečiní žádná omezení a vede tak spíše k složité hudbě náročné na poslech.

Hudební stroj

Postup komponování

Podle definice se připraví požadavky (formální a reálný) obsahující daná kompoziční pravidla.

Pro daný hudební blok (nebo jeho určitou oblast) se připraví takty (MusicalBar). Harmonie taktů se přebírá podle harmonických motivů určených v hudebních změnách harmonické linie. Určené harmonické motivy nastupují v taktech, ve kterých byly definovány harmonické hudební změny.

Když jsou takty (s harmonií) připraveny, postupně se jimi prochází. Pro každý takt se načítají nebo aktualizují stavy melodických a rytmických linií určené definovanými změnami.

Podle požadavků na rytmus se pak každá linie v taktu opatří rytmikou (do linií, které v daném taktu nezní se doplní pomlka přes celý takt). Když je rytmika připravena, vytvoří se pro daný takt souzvuky - harmonické klastry (HarmonicCluster).

Melodické linie

Nakonec se pro každý tón jednotlivých melodických linií taktu stanoví výška a hlasitost. Melodické linie se vytvářejí v pořadí určeném prioritami (ProgressPriority). Před zpracováním každé linie se k připraveným požadavkům (s kompozičními pravidly) doplní požadavky (formální a reálný) na průběh melodie.

Při generování se postupuje po taktech, přičemž nejprve vznikají melodické linie a nakonec jsou doplněny linie harmonické. Vedlejší harmonické hlasy obvykle postupují nejkratší možnou cestou.

Nakonec se pro každý tón jednotlivých melodických linií taktu stanoví výška a hlasitost.

Hudební stroj dohledává postupně jednotlivé tóny – v každém okamžiku se vyhodnocuje, který tón nejlépe splňuje požadavky za současného dodržení kompozičních pravidel. Vždy se volí varianta odpovídající nejvyšší hodnotě součtu – tj. tam, kde není možné všem pravidlům vyhovět, jde o určitý kompromis (nejmenší zlo). Váhy pravidel jsou nastaveny v definici hudebního stroje (motoru).

Trasování

Někdy je nutné zkontrolovat, na základě jakých hodnot se „stroj“ rozhodl pro určité tóny. K tomu slouží „trasování“ – tj. výpis jednotlivých variant s hodnotami charakteristik (vyčíslených pravidel,…) - viz TonePacket, DetailToneTracer, …

Harmonické vazby

Výše jsme zmínili, že harmonické menší hlasy obvykle následují nejkratší možnou cestu. To se v programu zajišťuje vyhodnocením vazeb mezi tóny. Hudební teorie hovoří o takzvaných „pozitivních pravidlech“.

Positive rules

Positive rules (for harmonization and melodization practice) (Karel Janeček)



Podle vzdálenosti následných trojzvuků (základních tónů trojzvuků):