Ako vznikla Norova tajomna AY hudobna rutinka :)

   Napisem Vam zopar zaujimavoti ako vlastne vznikala hudobna rutinka, ktoru ste mali moznost pocut v demach ako: Interlace, LCD, Echologia ...
   Cele to bolo na zaciatku velmi jednoduche :) Skratka sa mi podarilo ziskat k muojmu, este vtedy, Speccy 48kB jeden prevratny cip, ktoreho ctene meno je: AY-3-8910. A veruze dobre vidite :) Potom sa mi podrilo ukecat MDV, ci by mi mohol ten zazrak spristupnit na Speccy :) a tak vznikol malicky interface kde okrem zvukoveho vystupu sa nachadzali aj dva 8-bit-ove porty :) A toto bol prave zaciatok vsetkeho :)
   Kedze nic poriadne na AY hudby v tej dobe neexistovalo, a to mam na mysli aj neexistenciu trackerov aspon v mojom sirokom aj dalekom okoli, tak som sa rozhodol, ze si napisem svoju vlastnu rutinku, ktora bude AY vyuzivat aspon na 100% :) skratka povazoval som za samozrejme, ze vyuzijem na plno cip, za ktory som dal, na tu dobu, nemalu financnu ciastku :)
   Postupne som spojazdnil a sfunkcnil zakladne operacie, nieco ako AY-BIOS, pomocou ktoreho sa dalo krasne s AY narabat, i ked zatial len velmi jednoducho, co mi zacalo strasne vadit :) takze prislo na rad vymyslanie prikazov a celkovej datovej struktury :) ktora sa vcelku vydarila :)
   Prve prikazy boli velmi jednoduche a najdete ich v takmer kazdom normalnom programovacom jazyku :) Jasne ze jazyk o ktorom pisem mal za ulohu generovat hudbu na AY !!! :)
   Prisli na rad obalky, no a prva funkcna rutinka tym padom bola na svete :) Uplne prva hudba ktora bola napisana, vyuzivala len tuto zakladnu sadu prikazov. Pre zaujimavost uvediem, ze uplne prvy prikaz, pre zvukove efekty, bol uz tu pevne zabudovany a vola sa: Wide, co je prikaz ktory rozsiruje akusticky priestor.
   Postupne vsak bolo treba napisat ruozne frekvencne a ohybacie rutinky, ktore museli vediet ohybat bez pomoci a pekne so vsetkou automatikou, takze stacilo zadat dve noty a o vsetko ostatne sa postaral prikaz na ohybanie tonu :) kraasa :)
   Dalsi prikaz spocival v tom, ze ohybanie aj, frekvencny rozkmit boli sice pekne, ale jaxi stale vsetko znelo klasicky a bolo treba nieco porobit so zvukom, no a tak prisli na rad hardware-ove obalky :) To bolo presne to, co spravilo poriadny zvuk a podla pocutia sa dalo presne urcit ze sa jedna o tuto rutinku, pretoze ziadna ina rutina nema prave tento charakteristicky zvuk. Ono totiz ten zvuk pre svoju tvorbu potrebuje vhodne hlasitostne obalky a v nich skovane dalsie zahadnosti :))
   Postupom casu sa ale rutinka rozrastla casovo na rutinu :) a zacali vznikat specializovane prikazy, ktore vedeli vzdy do predu zapnut len tie casti rutiny, ktore sa v skutocnosti pouzivaju a ostatne casti sa pekne dali zakazat :) Takze dynamicky je mozne zapnut a vypnut prave to, co je treba :) Aby sa este skratil cas trvania, tak sa zacali velke upravy a tak vznikli vecsie datove struktury, ktore odlahcili vypoctovy vykon procesora, cim sa rutinka mierne predlzila :) napokon nic nie je zadarmo a toto bola dan za mierne skratenie casu, ktory si vyzadovala.
   Prisla rozhodujuca chvila !!! zacalo sa vselico posuskavat o demoscenach a podobnych aktivitach, takze som zacal vylepsovacie upravy a pribudli do teraz asi najvykonnejsie prikazy ake kto kedy mal pre AY :) Prvy zazracny prikaz sa volal Echo :) Ano ! od tohoto okamihu uz vsetky ozveny vedela rutinka spravit pekne sama !!! stacilo len vsetko pekne nastavit :) Potom pribudol dalsi ovela rafinovanejsi prikaz, ktory pomocou specializovanych tabuliek vedel zahrat ruozne variacie casti skladby a tym padom ozivit tu istu pasaz skladby tak, ze sa vzdy zahrala ina variacia :) Viete si predstavit kolko opisovaciek sa tym dalo usetrit ? :))) Takze toto bola platforma, ktora bola pouzita ako zaklad v deme Echologia :) a ktora sa este po zoptimalizovani dostala priamo do spominaneho dema :) Vzniklo niekolko velmi zaujimavych skladieb, ktore vedeli vyuzit vsetky vymozenosti rutinky, pricom samotne hudobne data sa pohybovali obvykle okolo 1 kB :)
   A aby som to zhrnul :) predsavzatie, ktore som mal od zaciatku, aby bol AY cip vyuzity aspon na 100% ?? Tak posudte sami :) Do vienka ma tato rutinka este niekolko zaujimavych vlastnosti: neexistuju totiz ziadne obmedzenia na nic :) Cize obalky muozete mat dlhe ako len chcete, ci uz su to frekvencne, hlasitostne. Kazdy kanal ma este svoju hlasitost, nad ktorou je hlasitost celkova a nad nou este jedna, ktora dovoluje programatorovi za behu urcovat hlasitost celej hudby podla potreby :) Jasne, ze kazdy kanal ma svoj vlastny program, takze kazdy kanal muoze mat inu rychlost prehravania, ktora je dynamicka a da sa kedykolvek zmenit, ziaden kanal nevie o dalsich kanaloch i ked existuju prikazu na ich mierne ovplyvnovanie :) Takze vsetko pracuje pekne a vola sa to odborne: preemptivny multitasking. Kedze v deme je hudba, po grafike, na druhom mieste, tak vsetko to bezi na pozadi :)))))

Tak to je nateraz vsetko a hadam som kusok poodhalil zo zakulisia :)

4.jul.2001 original NoroSoft

(Noro)