ZVUK NA ATARI XL/XE¢-------------------¢¢ ✓VOD¢¢ Snad kaəd⑨, kdo p ③e programy alespo o trochu z⇧bavn❎j③ neə je t②eba ⑤⇨etnictv , se uə setkal s problematikou programov⇧n zvuku. N❎kdy je ②e③en jednoduch⑦, jindy nen . Starosti s p②ehr⇧v⇧n m doprovodn⑦ hudby ochotn❎ p②evezme n❎kter⑨ z mnoha hudebn ch editor
, r
zn⇧ cinknut a v⑨buchy snadno stref me i odhadem. Tady probl⑦my neb⑨vaj .¢ Hor③ to b⑨v⇧ s r
zn⑨mi melodick⑨mi sekvencemi, kter⑦ maj reagovat t②eba na situaci ve h②e, a nedaj se proto p②edem nadefinovat v hudebn m editoru. Tady n⇧m nezb⑨v⇧ nic jin⑦ho, neə do programu vloəit tabulku kmito⇨t
hudebn ch tn
a pracovat p② mo se zvukov⑨mi registry obvodu POKEY. Tabulku pro ⇨ist⑦ tny najdeme v kaəd⑦ p② ru⇨ce (pozor, b⑨v⇧ ur⇨ena pro po⇨ ta⇨e americk⑦ verze NTSC - u n⇧s je posunut⇧ asi o 16 cent
dol
), jakmile se ale rozhodneme pouə t i jin⇧ zabarven zvuku, naraz me na n❎co jako informa⇨n embargo.¢ Dosud jsem nevid❎l ani jeden d
v❎ryhodn⑨ a hlavn❎ kompletn popis zvukov⑦ho v⑨stupu po⇨ ta⇨
Atari. V literatu②e se obvykle setk⇧v⇧me jen s mlhav⑨mi zm nkami o polynomick⑨ch ⇨ ta⇨ ch, filtrech apod., z⇧vislost v⑨sledn⑦ho zvuku na nastaven registr
je pak pops⇧na formulacemi typu "zvuk podobn⑨ v⑨konov⑦mu transform⇧toru", nebo t②eba "vodop⇧d". To je pro exaktn v⑨po⇨et kmito⇨tu (pot②ebn⑨ k sestaven tabulky hudebn ch tn
) əalostn❎ m⇧lo. Mnohdy dostupn⑦ texty bud dojem, əe autor ⇨erpal z n❎jak⑦ho opravdu solidn ho cizojazy⇨n⑦ho materi⇧lu, kter⑨ ov③em nepochopil ⑤pln❎ a nav c i zkr⇧til, takəe z p
vodn informace mnoho nezbylo. Neut❎③en⑨ stav dostupn⑦ literatury snad nejl⑦pe dokumentuje p② klad: Z r
zn⑨ch pramen
lze posb rat nejm⑦n❎ p❎t r
zn⑨ch hodnot z⇧kladn ho hodinov⑦ho kmito⇨tu. Babo ra⇦...¢ Dal③ m probl⑦mem mohou b⑨t hudebn ky pouə van⑦ jednotky jako nap②. p
ltn ⇨i cent, jejichə p②evod na technick⑦ veli⇨iny (kmito⇨et) b⑨v⇧ pro nezasv❎cen⑦ mnohdy ne②e③iteln⑨m r⑦busem.¢¢ P②ed ⇨asem jsem se rozhodl, əe si ve v⑨③e uveden⑦ problematice ud❎l⇧m jednou provədy jasno. Posb ral jsem maximum informac z dostupn⑦ literatury, na n❎kolik dn
se pohrouəil do experiment
pod ATMASem - a v⑨sledek se dostavil: Uə m⇧m jasno!¢ R⇧d bych se nyn o v⑨sledky sv⑦ho b⇧d⇧n pod❎lil i se ⇨ten⇧②i FLOPu. Soud❎ podle hudebn ch skladeb v dostupn⑦ho softwaru, mnoz uə asi tuto problematiku zvl⇧dli. Neut❎③en⑨ stav literatury v③ak napov d⇧, əe v❎t③ina Atarist
dosud t⇧pe. Pr⇧v❎ pro n❎ je ur⇨en n⇧sleduj c pokud moəno podrobn⑨ popis.¢¢ "HUDEBN" JEDNOTKY¢¢ Jak zn⇧mo, hudebn ci rozd❎luj sly③iteln⑨ rozsah kmito⇨t
na okt⇧vy (subkontra, kontra, velk⇧, mal⇧ a jedno- aə ⇨ty②⇨⇧rkovan⇧), z nichə kaəd⇧ se skl⇧d⇧ z 12 p
, kdy pot②ebuj pojmenovat daleko men③ rozd ly kmito⇨t
neə je p
ltn, pouə vaj hudebn ci jednotku nazvanou cent. Jeden cent je definov⇧n jako jedna setina p
ltnu; odtud snadno odvod me əe p
ltn = 100 cent
a okt⇧va = 1200 cent
.¢ Z⇧kladem lad❎n je jedno⇨⇧rkovan⑦ A (tzv. komorn A), kter⑦ m⇧ kmito⇨et 440Hz. Okt⇧va, p
ltn a cent jsou jednotky logaritmick⑦, coə znamen⇧ əe je nep②i⇨ t⇧me a neode⇨ t⇧me, n⑨brə jimi n⇧sob me a d❎l me. Rozd l jedn⑦ okt⇧vy znamen⇧ dvojn⇧sobn⑨ kmito⇨et. Z toho uə snadno odvod me:¢ 1 okt⇧va = *2¢ 1 p
ltn = *2^(1/12)¢ 1 cent = *2^(1/1200)¢ Podle v⑨③e uveden⑨ch vztah
lze snadno vypo⇨ tat konkr⑦tn kmito⇨ty v③ech tn
, tuto pr⇧ci v③ak p②enech⇧me rad❎ji po⇨ ta⇨i (bude to rychlej③ ).¢¢ ZVUKOV VSTUP ATARI XL/XE¢¢ Kdyə zn⇧me kmito⇨ty, kter⑦ od po⇨ ta⇨e poəadujeme, zb⑨v⇧ stanovit odpov daj c nastaven zvukov⑨ch registr
. K tomu pot②ebujeme zn⇧t z⇧vislost v⑨stupn ho sign⇧lu na nastaven registr
, nebo je③t❎ l⑦pe p② mo strukturu zvukov⑨ch gener⇧tor
.¢ Blokov⑦ sch⑦ma, kter⑦ popisuje zvukov⑦ gener⇧tory (a jejich vazby na syst⑦m s⑦riov⑦ho p②enosu, p②eru③en IRQ aj.), je na obr⇧zku - viz. soubor ZVUK.PIC (DESIGN MASTER). Tady by vlastn❎ mohl ⇨l⇧nek kon⇨it - ze zm n❎n⑦ho obr⇧zku lze odvodit v③e dal③ :-)¢¢ ⑥ASOV① Z①KLADNA A ⑥TA⑥E¢¢ Obvod POKEY je taktov⇧n stejn⑨m hodinov⑨m kmito⇨tem, jako mikroprocesor. V syst⑦mu PAL se jedn⇧ o kmito⇨et 1773447 Hz, pro americkou verzi NTSC je to 1789772.5 Hz.¢ V③echny zvukov⑦ kan⇧ly je moəno taktovat kmito⇨tem cca. 64kHz (hodinov⑨ kmito⇨et d❎len⑨ 28), cca. 15kHz (hodinov⑨ kmito⇨et d❎len⑨ 114), kan⇧ly 0 a 2 pak tak⑦ p② mo z⇧kladn m hodinov⑨m kmito⇨tem.¢¢ Kaəd⑨ ze ⇨ty② zvukov⑨ch gener⇧tor
obsahuje osmibitov⑨ ⇨ ta⇨, kter⑨ po nastaven na hodnotu uloəenou v registru AUDFn po⇨ t⇧ dol
a po p②ete⇨en (p②echodu z 0 na 255) generuje na v⑨stupu impuls. Tento impuls je d⇧le zpoəd❎n o 3 hodinov⑦ cykly. V z⇧kladn m reəimu (osmibitov⑦ ⇨ ta⇨e) zp
sob tento impuls op❎tovn⑦ nastaven ⇨ ta⇨e na hodnotu AUDFn. P②i taktov⇧n kmito⇨tem 64kHz nebo 15kHz tedy ⇨ ta⇨ d❎l vstupn kmito⇨et v pom❎ru AUDFn+1 (⇨ ta⇨ po⇨ t⇧ "v⇨etn❎ nuly", zpoəd❎n o 3 cykly je zde nepodstatn⑦), p②i taktov⇧n 1.79MHz pak v pom❎ru AUDFn+4.¢ Dvojice kan⇧l
0+1 nebo 2+3 lze propojit na jeden ③estn⇧ctibitov⑨ ⇨ ta⇨. Druh⑨ z obou kan⇧l
je pak taktov⇧n v⑨stupem prvn ho; v⑨stup druh⑦ho slouə jako v⑨stup cel⑦ho ⇨ ta⇨e a nastavuje oba kan⇧ly na v⑨choz hodnotu. (Impulsy na v⑨stupu prvn ho kan⇧lu jsou nepravideln⑦, prvn z nich p②ich⇧z po dob❎ ur⇨en⑦ jeho registrem AUDFn, dal③ pak vədy po 256 cyklech aə do dob❎hnut cel⑦ periody.) Niə③ polovinu ③estn⇧ctibitov⑦ho d❎lic ho pom❎ru zapisujeme do registru AUDFn prvn ho ⇨ ta⇨e, vy③③ polovinu pak do druh⑦ho. P②i taktov⇧n kmito⇨tem 1.79MHz se projev t② cyklov⑦ zpoəd❎n v⑨stupu obou ⇨ ta⇨
, takəe d❎lic pom❎r bude AUDFn+7.¢ V③echny ⇨ ta⇨e lze kdykoliv inicializovat na v⑨choz hodnotu z⇧pisem libovoln⑦ hodnoty do registru STIMER.¢¢ ✓PRAVA SIGN①LU PRO ZVUK¢¢ Pro vytv⇧②en zkreslen⑨ch (③umov⑨ch) sign⇧l
jsou k dispozici t②i polynomick⑦ ⇨ ta⇨e - 4-bitov⑨, 5-bitov⑨ a 17-bitov⑨, z nichə posledn❎ jmenovan⑨ lze p②epnout na 9-bitov⑨. Tyto ⇨ ta⇨e se skl⇧daj z posuvn⑦ho registru p② slu③n⑦ d⑦lky - taktovan⑦ho z⇧kladn m hodinov⑨m kmito⇨tem - a hradla EX-OR, kter⑦ dod⇧v⇧ na vstup posuvn⑦ho registru kombinaci dvou jeho stup
. Tyto ⇨ ta⇨e d⇧vaj nepravideln⑨ sign⇧l, jehoə opakovac perioda je (2^n)-1 cykl
, kde "n" je po⇨et bit
poly-⇨ ta⇨e. (Nap② klad 4-bitov⑨ poly-⇨ ta⇨ generuje opakuj c se sekvenci 100010011010111; p②esnou funkci v③ech poly-⇨ ta⇨
lze odvodit z obr⇧zku.)¢¢ Kaəd⑨ zvukov⑨ kan⇧l obsahuje sv
j obvod zkreslen , kter⑨ r
zn⑨mi zp
soby (v z⇧vislosti na horn ch t②ech bitech registru AUDCn) vzorkuje v⑨stupy poly-⇨ ta⇨
v rytmu dan⑦m p② slu③n⑨m ⇨ ta⇨em; pro ⇨ist⑦ tny tento obvod funguje jen jako d❎li⇨ka dv❎ma. Kan⇧ly 0 a 1 maj d⇧le za②azeny filtry taktovan⑦ kan⇧ly 2 resp. 3. P②esnou funkci t❎chto obvod
nejl⑦pe vysv❎tl sch⑦ma (viz. obr⇧zek), slovn popis by byl asi nep②ehledn⑨.¢¢ V⑨stup z v⑨③e popsan⑨ch obvod
v kaəd⑦m kan⇧lu sp n⇧ 4-bitov⑨ D/A p②evodn k, coə umoəuje ovl⇧d⇧n hlasitosti v 16 stupn ch. Moən⑦ je i trval⑦ sepnut , nezbytn⑦ pro vyuəit p②evodn ku k p②ehr⇧v⇧n sampl
.¢¢ DAL FUNKCE A VZTAHY¢¢ Obvody zvukov⑦ho v⑨stupu jsou na n❎kolika m stech prov⇧z⇧ny s dal③ mi funk⇨n mi celky obvodu POKEY - S⑦riov⑨ p②enos, p②eru③en IRQ, a A/D p②evodn ky pro potenciometry (PADDLE). To je dobr⑦ zn⇧t, nebo④ z toho pramen dal③ moənosti, ale i n❎kter⇧ omezen .¢¢ V⑨stupy ⇨ ta⇨
0, 1, nebo 3 mohou b⑨t zdrojem p②eru③en IRQ (pokud je povoleno). V tomto reəimu slouə ⇨ ta⇨e jako ⇨asova⇨e, coə ov③em nijak neomezuje jejich zvukov⑦ moənosti. K p②esn⑦mu startu ⇨ ta⇨
se pouə v⇧ registr STIMER.¢¢ Obvody s⑦riov⑦ho p②enosu dat mohou b⑨t taktov⇧ny v⑨stupem ⇨ ta⇨e 1 nebo 3. Pokud je nastaven reəim asynchronn ho p② jmu (kter⑨ lze taktovat pouze ⇨ ta⇨em 3), budou ⇨ ta⇨e 2 a 3 blokov⇧ny na sv⑦ v⑨choz hodnot❎ aə do p② chodu START-bitu. T m se prov⇧d synchronizace ⇨tec ch obvod
s p②ich⇧zej c m sign⇧lem - impulsy se na v⑨stupu ⇨ ta⇨e 3 objevuj pouze v okaməiku sn m⇧n datov⑨ch bit
ze s⑦riov⑦ linky.¢ Z toho pramen omezen pro vytv⇧②en zvuku: Pokud je registrem SKCTL nastaven reəim asynchronn ho s⑦riov⑦ho p② jmu, zvukov⑦ kan⇧ly 2 a 3 bu⇦ nefunguj (klid na vstupn datov⑦ lince), nebo d⇧vaj nepravideln⑦ impulsy synchronizovan⑦ s p②ich⇧zej c m s⑦riov⑨m sign⇧lem. Kan⇧l 2 je bohuəel blokov⇧n i p②i taktov⇧n s⑦riov⑦ komunikace pouze osmibitov⑨m d❎li⇨em 3 - zde se zjevn❎ po⇨ talo pouze s pouəit m p②esn❎j③ ho ③estn⇧ctibitov⑦ho ⇨ ta⇨e.¢ P②i pouəit dvojtnov⑦ho reəimu vys l⇧n se na s⑦riov⑦m v⑨stupu objevuj kmito⇨ty zvukov⑨ch kan⇧l
0 a 1. Na tento v⑨stup nemaj registry AUDCn ə⇧dn⑨ vliv, jedn⇧ se vədy o ⇨ist⑨ tn (v⑨stup ⇨ ta⇨e d❎len⑨ dv❎ma).¢¢ ⑥ ta⇨e A/D p②evodn k
pro potenciometry (PADDLE) mohou b⑨t taktov⇧ny bu⇦ kmito⇨tem 15kHz, nebo 1.79MHz. Tyto kmito⇨ty poch⇧zej z t⑦hoə zdroje, jako taktov⇧n zvukov⑨ch ⇨ ta⇨
, a jsou s nimi tedy synchronn .¢¢ Registr RANDOM, ur⇨en⑨ k z sk⇧v⇧n n⇧hodn⑨ch ⇨ sel, sn m⇧ prvn ch osm bit
17-bitov⑦ho (resp. 9-bitov⑦ho) poly-⇨ ta⇨e. Hodnota zde roluje v rytmu hodinov⑨ch cykl
od vy③③ ch bit
k niə③ m. Perioda opakov⇧n je ovlivn❎na p②ep n⇧n m mezi 17-bitov⑨m a 9-bitov⑨m poly-⇨ ta⇨em.¢¢ Obvod POKEY nem⇧ hardwarovou inicializaci (RESET), v⑨choz nastaven se prov⇧d z⇧pisem nul do spodn ch dvou bit
registru SKCTL. Tento stav nijak nem❎n nastaven zvukov⑨ch registr
, blokuje v③ak p② sun hodinov⑨ch impuls
pro zvukov⑦ ⇨ ta⇨e (a t m i pro ⇨ ta⇨e PADDLE), takəe se v⑨stupy ⇨ ta⇨
zpoə⇦uj . To v③ak neplat pro p② m⑦ taktov⇧n kmito⇨tem 1.79MHz - v tomto p② pad❎ ⇨ ta⇨e blokov⇧ny nejsou.¢ Dal③ funkc inicializa⇨n ho stavu je nastaven po⇨⇧te⇨n ho obsahu poly-⇨ ta⇨
. Inicializa⇨n stav vnut na vstupy jejich posuvn⑨ch registr
jedni⇨ky, kter⑦ pak v rytmu hodinov⑨ch cykl
postupn❎ zapln v③echny jejich bity. T m je v inicializa⇨n m stavu paralyzov⇧na i funkce registru RANDOM, kter⑨ se po zru③en inicializace rozb❎hne vədy od stejn⑦ho m sta sv⑦ho funk⇨n ho cyklu.¢¢ ✓VOD K VPO⑥T♪M¢¢ Pro hudebn vyuəit p②ich⇧zej mimo ⇨ist⑨ch tn
v ⑤vahu reəimy (AUDCn) $Cx (4-bitov⑨ poly-⇨ ta⇨), $6x nebo $2x (5-bitov⑨ poly-⇨ ta⇨) a $8x (po p②epnut 9-bitov⑨ poly-⇨ ta⇨). 4-bitov⑨ a 9-bitov⑨ poly-⇨ ta⇨ poskytuj "prom chan❎" t②i r
zn⑦ barvy zvuku, 5-bitov⑨ jen jednu.¢ Dal③ moənosti nab z pouəit filtr
. Obvykle pouə v⇧me ⇨ist⑦ tny, p②i⇨emə zapisujeme do "taktovac ho" kan⇧lu hodnotu "z⇧kladn ho" kan⇧lu zv⑨③enou o 1. Dv❎ r
zn⑦ barvy zvuku z sk⇧me aktivac pouze filtrovan⑦ho kan⇧lu (druh⑨ m⇧ nulovou hlasitost), nebo obou. Jinou moənost je filtr v
bec nepouə t, a zaj mav⑦ zabarven zvuku z skat prost⑨m souzvukem obou bl zk⑨ch kmito⇨t
. V③echny t②i moənosti jsou vzhledem ke vznikaj c interferenci pouəiteln⑦ pouze pro nejniə③ tny (mal⑨ rozd l sousedn ch kmito⇨t
).¢ T m nejsou zvukov⑦ moənosti ani zdaleka vy⇨erp⇧ny, pouəit dal③ ch reəim
(ostatn kombinace poly-⇨ ta⇨
, jejich kombinace s filtry) v③ak d⇧v⇧ natolik nepravideln⑦ zvuky, əe o hudebn m vyuəit nem
əe b⑨t v
bec ②e⇨.¢¢ V dal③ m textu se budeme zab⑨vat v⑨po⇨tem v⑨sledn⑦ho kmito⇨tu z hodnoty registru AUDFn v r
zn⑨ch reəimech. V p② pad❎ pouəit poly-⇨ ta⇨
je prakticky jedinou moənost , jak z skat optim⇧ln hodnotu, postupn⑦ p②ibliəov⇧n - o klasick⑦m zaokrouhlov⇧n nem
əe b⑨t ani ②e⇨, protoəe pr
b❎h kmito⇨tu v z⇧vislosti na hodnot❎ AUDFn nen spojit⑨.¢¢ P②i pouəit poly-⇨ ta⇨
mus me sledovat vz⇧jemn⑨ vztah periody zvukov⑦ho ⇨ ta⇨e, kter⑨m vzorkujeme, a opakovac periody poly-⇨ ta⇨e. Od periody zvukov⑦ho ⇨ ta⇨e nejprve ode⇨teme cel⑦ n⇧sobky periody poly-⇨ ta⇨e, zbytek pak s touto periodou porovn⇧me.¢ Nejsou-li tato ⇨ sla soud❎ln⇧, z sk⇧me na v⑨stupu kmito⇨et vyd❎len⑨ d⑦lkou periody poly-⇨ ta⇨e. (V⑨stupn sign⇧l obsahuje v kaəd⑦ period❎ pln⑨ po⇨et vzork
z poly-⇨ ta⇨e.)¢ Jsou-li ob❎ ⇨ sla soud❎ln⇧, z sk⇧me kmito⇨et d❎len⑨ pom❎rem: perioda poly-⇨ ta⇨e / zbytek periody zvukov⑦ho ⇨ ta⇨e. To je tak⑦ po⇨et vybran⑨ch vzork
ze sign⇧lu poly-⇨ ta⇨e, kter⑦ tvo② periodu v⑨stupn ho sign⇧lu (n❎kter⑦ f⇧ze poly-⇨ ta⇨e se p②i vzorkov⇧n pravideln❎ p②eskakuj ). V⑨sledn⑨ zvuk je m⑦n❎ zkreslen⑨, jaksi "m❎kk⑨".¢ Posledn moənost nastane, je-li perioda zvukov⑦ho ⇨ ta⇨e n⇧sobkem opakovac periody poly-⇨ ta⇨e. V tom p② pad❎ se na v⑨stupu neobjev ə⇧dn⑨ sign⇧l (vzorkujeme st⇧le stejn⑨ bod periodick⑦ho v⑨stupn ho sign⇧lu poly-⇨ ta⇨e).¢¢ VPO⑥TY¢¢ Abychom snadno postihli v③echna pouəiteln⇧ zabarven zvuku, rozd❎l me si v⑨po⇨et kmito⇨tu na dv❎ ⇨⇧sti. Nejprve ur⇨ me periodu na v⑨stupu zvukov⑦ho ⇨ ta⇨e, pak v⑨stupn kmito⇨et pro konkr⑦tn zabarven .¢ Perioda zvukov⑦ho ⇨ ta⇨e je pro 8- a 16-bitov⑦ ⇨ ta⇨e taktovan⑦ r
zn⑨mi kmito⇨ty n⇧sleduj c :¢¢ 8-/16-bit. ⇨ ta⇨, 64kHz: T=(N+1)*28¢ 8-/16-bit. ⇨ ta⇨, 15kHz: T=(N+1)*114¢ 8-bit. ⇨ ta⇨, 1.79MHz: T=N+4¢ 16-bit. ⇨ ta⇨, 1.79MHz: T=N+7¢¢ "T" je v⑨sledn⇧ perioda (v hodinov⑨ch cyklech), "N" je hodnota uloəen⇧ do registru AUDFn (p② padn❎ jejich dvojice - pro 16-bitov⑨ ⇨ ta⇨). Pouə v⇧me-li zvukov⑦ ⇨ ta⇨e jako ⇨asova⇨e, bude doba mezi dv❎ma p②eru③en mi IRQ rovna pr⇧v❎ t⑦to period❎.¢¢ Bude-li "F" hodinov⑨ kmito⇨et, pro ⇨ist⑦ tny (reəimy $Ax nebo $Ex) vyjde v⑨stupn kmito⇨et n⇧sleduj c :¢ X=F/(T*2)¢¢ 4-bitov⑨ poly-⇨ ta⇨ (reəim $Cx) m⇧ opakovac periodu 15 cykl
a poskytuje celkem t②i r
zn⇧ zabarven zvuku. Pro periodu, kter⇧ je n⇧sobkem p❎ti, vych⇧z v⑨sledn⑨ kmito⇨et:¢ X=F/(T*3)¢ Pro periodu, kter⇧ je n⇧sobkem t② to bude:¢ X=F/(T*5)¢ A kone⇨n❎ pro periodu, kter⇧ nen n⇧sobkem t② ani p❎ti:¢ X=F/(T*15)¢ Perioda nesm b⑨t n⇧sobkem patn⇧cti. Kaəd⇧ ze t② uveden⑨ch moənost d⇧v⇧ jinou barvu zvuku - "nejtvrd③ " je posledn z nich.¢ Prvn z uveden⑨ch moənost je pon❎kud problematick⇧. Po⇨et vzork
odeb ran⑨ch z poly-⇨ ta⇨e v kaəd⑦ period❎ je tak mal⑨ (t②i) əe p②i ur⇨it⑦m f⇧zov⑦m posunu mezi ob❎ma ⇨ ta⇨i (zvukov⑨m a poly-) m
əe b⑨t v⑨stup nulov⑨ (t②i odeb ran⑦ vzorky jsou shodn⑦). Pravd❎podobnost tohoto stavu bohuəel nen zrovna zanedbateln⇧ (sp ③ naopak), coə pouəit t⑦to varianty prakticky vylu⇨uje. Nav c p②i taktov⇧n zvukov⑦ho ⇨ ta⇨e kmito⇨tem 15kHz tato varianta nefunguje v
bec, nebo④ p②ed②azen⑨ d❎lic pom❎r 114 je n⇧sobkem t② a nep②ipou③t tedy periody, kter⑦ by byly n⇧sobky p❎ti a sou⇨asn❎ nebyly n⇧sobky patn⇧cti.¢¢ 5-bitov⑨ poly-⇨ ta⇨ (reəim $6x nebo $2x) m⇧ periodu 31 cykl
. Protoəe se jedn⇧ o prvo⇨ slo, d⇧v⇧ 5-bitov⑨ poly-⇨ ta⇨ pouze jedno zabarven , pr
b❎h kmito⇨tu v z⇧vislosti na AUDFn je t⑦m❎② spojit⑨. Sign⇧l z tohoto poly-⇨ ta⇨e proch⇧z nav c ve vzorkovac m obvodu d❎li⇨kou dv❎ma, takəe kone⇨n⑨ kmito⇨et je:¢ X=F/(T*31*2)¢ Perioda samoz②ejm❎ nesm b⑨t n⇧sobkem 31.¢¢ 9-bitov⑨ poly-⇨ ta⇨ (reəim $8x p②i nastaven bitu 7 v AUDCTL) m⇧ periodu 511 cykl
- z toho vych⇧z op❎t t②i moənosti. Pro periodu, kter⇧ je n⇧sobkem 73 je kmito⇨et:¢ X=F/(T*7)¢ Pro n⇧sobek sedmi je to:¢ X=F/(T*73)¢ A kone⇨n❎ pro periodu, kter⇧ nen n⇧sobkem ə⇧dn⑦ho z uveden⑨ch ⇨ sel:¢ X=F/(T*511)¢ Perioda nesm b⑨t n⇧sobkem 511. Prvn z v⑨③e uveden⑨ch moənost s sebou p②in⇧③ podobn⇧ ⑤skal jako prvn varianta u 4-bitov⑦ho poly-⇨ ta⇨e: V z⇧vislosti na f⇧zov⑦m posuvu mezi zvukov⑨m a poly-⇨ ta⇨em m
əe b⑨t n❎kdy v⑨stup nulov⑨. Zm n❎n⇧ prvn moənost nav c nefunguje p②i taktov⇧n zvukov⑦ho kan⇧lu ze 64kHz - p②ed②azen⑨ d❎lic pom❎r 28 je n⇧sobkem sedmi, proto jsou v③echny dostupn⑦ n⇧sobky 73 sou⇨asn❎ i n⇧sobky 511.¢ Pouəit 9-bitov⑦ho poly-⇨ ta⇨e nelze obvykle v hudb❎ kombinovat s "bubnov⇧n m" (mimo samplovan⑦ho), nebo④ ə⇧dn⑨ reəim mimo 17-bitov⑦ho poly-⇨ ta⇨e (nyn zm❎n❎n⑦ho na 9-bitov⑨) ned⇧v⇧ dostate⇨n❎ n⇧hodn⑨ sign⇧l - bic bez n❎j r
zn❎ "sk② pou" nebo "hu⇨ ".¢¢ Zb⑨v⇧ je③t❎ 17-bitov⑨ poly-⇨ ta⇨, jeho v⑨stup v③ak nen pro hudbu vhodn⑨ kv
li velice dlouh⑦ period❎. Ta ⇨in 131071 cykl
(prvo⇨ slo), takəe nejvy③③ dosaəiteln⑨ opakovac kmito⇨et na v⑨stupu je asi 3Hz...¢¢ PROGRAM V BASICU¢¢ P② lohou tohoto ⇨l⇧nku je krom❎ jiə d② ve zmiovan⑦ho obr⇧zku tak⑦ program v ATARI BASICu nazvan⑨ FREQ.BAS, kter⑨ vytv⇧② tabulky hudebn ch kmito⇨t
podle d② ve popsan⑨ch z⇧konitost . Po spu③t❎n tento program nejprve provede v⑨po⇨ty v③ech tn
pro v③echna hudebn❎ pouəiteln⇧ zabarven zvuku (to chv li trv⇧). Pot⑦ si m
əeme z menu zvolit poslechovou zkou③ku, v⑨tisk tabulky kmito⇨t
nebo odchylek na tisk⇧rnu, uloəen tabulek na disketu, nebo ukon⇨en programu.¢ P②i poslechov⑦ zkou③ce se pomoc ③ipek (bez CONTROL) pohybujeme po tabulce (nahoru/dol
m❎n me v⑨③ku tnu, vlevo/vpravo pak zabarven zvuku), pouəit m ③ipek nahoru/dol
s CONTROLem se posuneme o celou okt⇧vu. P②i tom se pr⇧v❎ zvolen⑨ tn oz⑨v⇧ z reproduktoru. Mezern kem ho do⇨asn❎ uml⇨ me (ach ty nervy!), pomoc ESC se vrac me do menu.¢ Dal③ dv❎ moənosti v menu vyəaduj , aby byla p②ipojena tisk⇧rna se ③ ②kou str⇧nky nejm⑦n❎ 80 znak
. Vytiskne se kompletn tabulka, kde sloupce odpov daj zabarven zvuku, ②⇧dky jednotliv⑨m tn
m, a uveden⇧ ⇨ sla jsou hodnoty ur⇨en⑦ pro registry AUDFn. Tabulka odchylek je velice podobn⇧, jen uveden⇧ ⇨ sla jsou zde jin⇧ - jedn⇧ se o odchylky skute⇨n⑨ch kmito⇨t
od optim⇧ln ch (v centech, zaokrouhlen⑦ nahoru). Podle toho lze pro konkr⑦tn ⑤⇨el posoudit pouəitelnost jednotliv⑨ch zabarven .¢ Uloəen tabulek na disk vytvo② 11 kr⇧tk⑨ch soubor
, kter⑦ obsahuj v textov⑦ podob❎ ⇨ sla z p② slu③n⑨ch sloupc
tabulky (odd❎len⇧ jen ⇨⇧rkami - vhodn⑦ pro dal③ ⑤pravu a pot⑦ za⇨len❎n do zdrojov⑨ch text
).¢ Z⇧kladem lad❎n je v tomto programu konstanta Z0 definovan⇧ na za⇨⇧tku - jedn⇧ se polovinu periody tnu C Subkontra v hodinov⑨ch cyklech (hodnota o 7 vy③③ , neə odpov daj c nastaven AUDFn pro 16-bitovou d❎li⇨ku z 1.79MHz a ⇨ist⑨ tn).¢¢ Z①V╱REM¢¢ Protoəe nechci d⇧le zvy③ovat chaos v na③ literatu②e, zm n m se alespo v kr⇧tkosti o spolehlivosti informac uveden⑨ch v tomto ⇨l⇧nku.¢ Obsah kapitoly "HUDEBN JEDNOTKY" je v podstat❎ p②evzat ze [4], z⇧kladn hodinov⑨ kmito⇨et jsem se slu③nou p②esnost p②em❎②il - samoz②ejm❎ pouze pro verzi PAL. Tyto ⑤daje povaəuji za spolehliv⑦.¢ Zbytek ⇨l⇧nku je mozaikou poskl⇧danou z nejr
zn❎j③ ch zm nek a n⇧znak
v literatu②e, a d⇧le z m⑨ch vlastn ch zku③enost , experiment
a ⑤vah. Nemus se do detailu shodovat se skute⇨nou vnit②n strukturou obvodu POKEY, jeho funkci v③ak popisuje uspokojiv❎. Zkou③el jsem prakticky v③echno, co bez osciloskopu vyzkou③et lze, a nena③el jsem ə⇧dn⑦ odchylky od sv⑦ teorie.¢¢ Ji② Bern⇧③ek (BEWESOFT)¢¢¢ POU⑧IT① LITERATURA¢¢[1] MEGA MAGAZINE #5 (disk, A.N.G. Software, Holandsko) - ⇨l⇧nek "PAL and NTSC"¢¢[2] V.Tava⇨, M.Kor⇨⇧k: Atari - Popis technick⑦ho vybavenia (Klub elektroniky Tlma⇨e, 1988)¢¢[3] Do⇨ekal: ABC o po⇨ ta⇨ ch Atari (Tuto p② ru⇨ku mi bohuəel p②ed dops⇧n m ⇨l⇧nku kdosi odcizil, takəe nemohu uv⑦st p②esn❎j③ ⑤daje.)¢¢[4] Ro⇨enka Sd❎lovac techniky 1985 - Hudebn akustika (str. 259 aə 265)¢¢