de en sk
Úvod > Hobby projekty a výskum > Matematické modelovanie sláčikového zboru

Matematické modelovanie sláčikového zboru

(Mathematical Modelling of String Ensemble)

© Ing. Radovan Konečný - radkon, 2005-2008


Tvorbou „vymodelovaného“ zvuku sláčikového zboru som sa začal zaoberať po tom, čo som poskúšal množstvo „freeware“ zvukov „slákov“, no na moje účely akosi nevyhovoval žiaden. Potreboval som totiž dobrý zvuk do môjho syntezátora KORG M1, ktorý by mal nasledovné parametre:
  • Dĺžka najviac 65535 vzoriek (obmedzenie KORG M1 - dĺžka do 2,1 sekundy)
  • Zvuk by sa mal čo najviac podobať na sláky
  • Zvuk musí byť dobre cyklický, aby pri cyklení časti zvuku (pri držaní tónu) nebolo počuť bod opakovania
  • Zvuk treba vyrobiť pre ľubovoľnú vzorkovaciu frekvenciu (31250 Hz pre KORG M1)
  • Možnosť vyrobiť zvuk pre ľubovoľný tón, pričom charakter a farba ľubovoľných susedných tónov nesmie byť badateľne odlišná
Na základe týchto požiadaviek a tiež tak trochu zo zvedavosti preskúmať správanie sa tak zložitého zvuku ako zbor huslí, viol, violončel a kontrabasov, som začal písať niekoľko počítačových programov, ktoré sa o výrobu zvuku sláčikového zboru pokúsia.
Spoločným princípom všetkých doterajších modelovacích programov bolo skladanie zvukov jednotlivých huslistov (alebo tiež violistov, violončelistov a kontrabasistov) do výsledného zvuku.
Treba ešte spomenúť, že všetky nižšie uvedené ukážky zvukov sú monofónne a „surové“ a ide len o ustálený stav trvania dlhého tónu

História:

  • Môj prvý program modelovania „slákov“ vytvára zvuk podobný sláčikovému zboru, ale neskôr nespĺňal moje požiadavky - aby bol zvuk relatívne krátky a dobre cyklický. Program dokáže vyrobiť ľubovoľne dlhý zvuk, pričom je jeho charakter náhodný (nič sa tam neopakuje). Farba zvuku jednotlivých huslí sa volí ručne, čo je značná nevýhoda, pretože nízke tóny majú prirodzene inú farbu ako vyššie tóny. Pri tvorbe celej sady tónov by bolo nutné prestavovať farbu a tá sa dá ručne len veľmi ťažko vystihnúť. Ďalšou nevýhodou programu bol obmedzený počet harmonických zložiek - zvuk pri nižších tónoch stráca ostrosť.

    - ukážka

  • Druhý program bol pôvodne napísaný v jazyku Basic, potom kvôli extrémnej pomalosti prepísaný do jazyka C a doplnený o ďalšie funkcie. Tento program už vytvára cyklický zvuk - samotný princíp použitého modelovania vytvára zvuk, ktorý „nemá začiatok ani koniec“.
    Obrázok - princíp tvorby cyklického zvuku:
    cyclic
    Keďže ide o zložitejší výpočet ako môj prvý program, zodpovedá tomu aj doba výpočtu zvuku - pri nízkych tónoch je to pár minút a to sa vytvorí zvuk dlhý len asi 2,1 sekundy.
    Program má už oveľa väčšie množstvo parametrov, ktorými možno docieliť hodnovernejší zvuk. Farbu zvuku jednotlivých huslí dokáže nahrať zo súboru, ktorý obsahuje parametre pre farbu zvuku pre každý tón (tabuľka). Tento súbor je možné vyrobiť zo spektrálnej analýzy skutočných nahrávok sláčikového zboru alebo zo zvukov kvalitných syntezátorov. So získaním kvalitnej tabuľky farby zvuku som sa zatiaľ veľa nezaoberal - chcelo by to nahrávky skutočného orchestra. Súbory s tabuľkami farieb zvuku som vyrobil zatiaľ iba 2 - oba z nejakých syntezátorových zvukov slákov a nie je to nič moc.
    Algoritmus výpočtu je tiež navrhnutý tak, aby bolo vo zvuku aspoň čiastočne počuť jednotlivých huslistov (farba i hlasitosť jednotlivých „huslí“ sa mierne líši).

    Ukážky (pre 8 „hudobníkov“ v zbore):

    (pozn.: ukážky nemusia fungovať v prehliadači Internet Explorer)

    • Spektrum „1“:

      - tón 30

      - tón 45

      - tón 60

      - tón 81

      - tón 91

      - akord 1

      - akord 2

      - akord 3

      - akord 4

    • Spektrum „3“:

      - tón 30

      - tón 45

      - tón 60

      - tón 81

      - tón 91

      - akord 1

      - akord 2

      - akord 3

      - akord 4


  • Tretí program vznikol kompletným prepísaním druhého programu - ten mal kvôli relatívne vysokým nárokom na pamäť počítača určité zjednodušujúce obmedzenia v algoritme výpočtu. Vzniknutý algoritmus (tentoraz bez zjednodušení) je zatiaľ najdokonalejším, ktorým by sa zrejme dalo vhodným nastavením parametrov a dobrou tabuľkou farieb zvuku dosiahnuť dobrý a použiteľný zvuk. Keďže som druhý program v jazyku C písal už pred pár rokmi a jeho dopĺňanie a úpravy by boli aj pre mňa čoraz ťažšie, rozhodol som sa program prepísať do objektovo orientovaného jazyka Java, pričom som zrušil obmedzenia kvôli pamäti a algoritmus je takto správnejší. Daňou za to je ale rýchlosť výpočtu (zrejme jazyk Java a tiež väčšie množstvo údajov).
    Štruktúra nastavovania parametrov sa už oveľa viac podobá na princípy analógových syntezátorov - používa napríklad AM a FM modulácie (modulácie sú však počítané zvlášť pre každú harmonickú zložku).

    Vzhľad modelovacieho programu:
    slaky3
    Bloková schéma generátora zvuku jedného huslistu: (klikni pre zväčšenie)
    slaky3b
    Ukážky (pre 8 „hudobníkov“ v zbore):

    (pozn.: ukážky nemusia fungovať v prehliadači Internet Explorer)

    • Spektrum „1“:

      - tón 30

      - tón 45

      - tón 60

      - tón 81

      - tón 91

      - akord 1

      - akord 2

      - akord 3

      - akord 4

    • Spektrum „3“:

      - tón 30

      - tón 45

      - tón 60

      - tón 81

      - tón 91

      - akord 1

      - akord 2

      - akord 3

      - akord 4


    Tieto ukážky sú dosť podobné ukážkam z druhého programu (dôvodom je takmer rovnaký algoritmus), avšak šumový charakter zvuku je generovaný správnejšie (a oveľa viac nastavovateľný) a pri vhodnom nastavení by zvuk mal znieť prirodzenejšie.

    Ukážky krátkej hudby vygenerovanej programom (zvuk je opäť iba „surový“):
    • Spektrum „1“, 4 hudobníci na tón:

      - krátka hudba

    • Spektrum „1“, 8 hudobníkov na tón:

      - krátka hudba

    • Spektrum „3“, 4 hudobníci na tón:

      - krátka hudba

    • Spektrum „3“, 8 hudobníkov na tón:

      - krátka hudba

Copyright © 2009-2024 Ing. Radovan Konečný - radkon. All rights reserved.