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)