Obsah
1. Zbývající části řetězce zpracování zvuku
2. Kruhová modulace (ring modulation)
3. Výstupní filtry
4. Vstup externího signálu a regulace hlasitosti na výstupu
5. Přehrávání digitalizovaného (samplovaného) zvuku
6. SID: minulost a současnost
7. HardSID
8. SIDStation
9. MSSIAH (MIDI SID Software Integrated Applications)
1. Zbývající části řetězce zpracování zvuku
V předchozí části tohoto seriálu jsme si popsali funkci základních bloků zvukového čipu SID, které se používají pro tvorbu hudby i různých zvuků. Základem celého zvukového řetězce jsou tři samostatně pracující generátory periodického signálu (viz obrázek číslo 1), jehož tvar může být obdélníkový se střídou měnitelnou v rozsahu 0% až 100%, trojúhelníkový či pilový. Tyto signály se od sebe liší tím, že pro zvolenou frekvenci obsahují jiné spektrum vyšších harmonických, což se projevuje v rozdílném zabarvení generovaných tónů. Dalšího zabarvení vytvářených tónů je možné dosáhnout zařazením filtrů (dolní propusti, horní propusti a/nebo pásmové propusti) na konec celého zvukového řetězce. Kromě tří periodických signálů lze v každém zvukovém kanálu generovat šum (noise), který se v praxi využívá, podobně jako v případě již předminule popsaného zvukového čipu POKEY, například na napodobení zvuku perkusních nástrojů. Aktuální hodnotu generátoru připojeného ke zvukovému kanálu číslo 3 je možné programově číst, což znamená, že v případě povolení zdroje šumu ve třetím zvukovém kanálu lze SID použít i jako generátor pseudonáhodných čísel – RNG (taktéž lze číst i průběh ostatních vln, zde se však jedná o pravidelné posloupnosti).
Obrázek 1: Generátory signálů zvýrazněné na blokovém schématu SIDu.
Další velmi důležitou součástí řetězce generujícího zvuk jsou dva bloky, pomocí nichž je možné tvarovat takzvanou obálku (viz obrázek číslo 2). Obálkou se řídí amplituda signálu na výstupu z bloku označeného Amplitude Modulator. Do tohoto bloku vstupují dva signály – první signál je vytvářený ve výše zmíněných generátorech signálů, tj. jedná se buď o periodický obdélníkový, trojúhelníkový či pilový signál, popř. šum. Druhý signál představuje vlastní obálka. Tento signál není obecně periodický (je pro každý zvukový kanál zvlášť „spouštěný“ programově bitem GATE v jednom z řídicích registrů a jeho střední část může být libovolně dlouhá) a při porovnání s periodou prvního signálu bývá i mnohem delší, řádově v desítkách milisekund až jednotkách sekund. Pomocí obálky lze zvukový signál upravit tak, aby se do značné míry podobal tónu reálného hudebního nástroje, což je i jeden z důvodů, proč se obálky stejného typu (nazývané ADSR, což znamená attack, decay, sustain, release) používají i v mnoha hudebních syntetizérech a některých dalších zvukových čipech, například OPL-2/Yamaha YM 3812 a OPL-3/Yamaha YMF 262 (viz následující části tohoto seriálu).
Obrázek 2: Generátory obálky a bloky amplitudové modulace zvýrazněné na blokovém schématu SIDu.
V dnešní části seriálu si popíšeme i další části zvukového řetězce. Především se jedná o možnost ovlivnění výstupu jednoho generátoru signálů výstupem z generátoru dalšího pomocí kruhové modulace (ring modulation – název této modulace je odvozen od způsobu zapojení polovodičových diod v analogovém obvodu, který tuto modulaci prováděl například u superheterodynů – rádiových FM přijímačů), vzájemně synchronizovat jednotlivé generátory signálů, používat analogové výstupní filtry typu dolní propust, horní propust a pásmová propust, přimixovat k vytvářenému zvuku externí zvukový signál, navzájem zkombinovat signály vytvářené v generátorech signálů (v jednom zvukovém kanálu lze například současně povolit generátor obdélníkových i trojúhelníkových signálů či libovolnou další kombinaci generátorů, což opět ovlivňuje spektrum vyšších harmonických, které zabarvují vytvářený tón) aj. Samotnou kapitolou je přehrávání digitalizovaného (samplovaného) zvuku – s využitím poměrně sofistikovaných technik lze na SIDu přehrát šestibitový zvuk samplovaný na frekvenci cca 16 kHz i na původním C64 (dynamickým rozsahem a vzorkovací frekvencí se tedy SID přibližuje prvním SoundBlasterům, což je jistě zajímavé, především když porovnáme cenu, za kterou se první SoundBlastery prodávaly, s cenou celého C64).
Obrázek 3: Nejnovější a nejstarší verze SIDu umístěné na jedné desce plošných spojů. V pozadí je SID z první série vyráběný v technologii N-MOS, v popředí pak nejnovější série vytvořená v technologii H-MOS, která má od originálu poněkud odlišný zvuk (z technologického hlediska je sice zvuk čistší, protože nepoužité – zakázané – generátory se skutečně vypínají, ovšem to má za následek plošší zvuk).
2. Kruhová modulace (ring modulation)
Před vstupem signálu vytvářeného v generátoru signálů do amplitudového modulátoru lze dva vybrané zvukové signály podrobit kruhové modulaci (ring modulation), jejíž použití vede k syntéze unikátních a pro SID typických zvuků – SID je ostatně jedním z mála zvukových čipů, který kruhovou modulaci používá; například na čipech s OPL-2 či OPL-3 ji lze napodobit jen velmi složitě. Kruhovou modulaci je možné zapnout vždy pro dvojici vybraných zvukových kanálů: kanál 1 může být modulovaný výstupem z oscilátoru kanálu 3, kanál 2 může být modulovaný výstupem z oscilátoru kanálu 1 a konečně kanál 3 lze modulovat výstupem z oscilátoru zvukového kanálu číslo 2 (viz čtvrtý obrázek s modrými šipkami, jimiž je naznačeno, čím je který signál modulován). Aby byl vliv kruhové modulace slyšitelný, musí být na modulovaném zvukovém kanálu povolen oscilátor vytvářející trojúhelníkový signál (jeho vzestupná i sestupná hrana má stejný sklon). Z modulačního kanálu je vždy využit obdélníkový signál o zadané frekvenci, který „sampluje“ (násobí) signál trojúhelníkový na modulovaném zvukovém kanálu, který má většinou poněkud nižší frekvenci, než signál obdélníkový.
Obrázek 4: Vzájemná vazba mezi zvukovými kanály při nastavení kruhové modulace zobrazená na blokovém schématu SIDu.
Frekvence obou kanálů, jejichž signály vstupují do kruhového modulátoru, mohou být soudělné či nesoudělné – pokaždé se syntetizuje tón s odlišným zabarvením (zajímavě zní například poměr frekvencí 3:2 či 5:4). Násobení v časové oblasti vede ke vzniku celého širokého spektra neharmonických frekvencí v oblasti frekvenční – viz http://www.absoluteastronomy.com/topics/Ring_modulation – čehož je možné využít při tvorbě zabarvených tónů typických pro hudbu SIDu. Zabarvení je při použití kruhové modulace zcela odlišné od zabarvení získaného pomocí frekvenční či fázové modulace (FM – frequency modulation, PM – phase modulation), i když i při použití těchto modulací dochází ke vzniku dalších vyšších a nižších frekvencí ve výsledném zvuku. Na následujících dvou obrázcích můžeme vidět signál, který byl podroben kruhové modulaci s hloubkou 100%. Na pátém obrázku jsou při kruhové modulaci oba oscilátory sesynchronizovány, na obrázku šestém dochází při dosažení maximální úrovně trojúhelníkového signálu ke změně jeho polarity (jedná se o ilustrační obrázky, protože v případě SIDu jsou generovány pouze signály s kladnou polaritou, které jsou navíc u série SID 6581 ovlivněny i dalšími generovanými vlnami, i přesto, že jsou tyto vlny programově zakázány).
Obrázek 5: Kruhová modulace – výsledek modulace s využitím synchronizovaných oscilátorů.
Obrázek 6: Kruhová modulace – změna polarity po dosažení maximální úrovně trojúhelníkového signálu.
3. Výstupní filtry
V předchozí části tohoto seriálu jsme si řekli, že SID je hybridním čipem obsahujícím jak digitální obvody (jedná se například o již dříve popisované generátory signálů nebo část, která zajišťuje připojení čipu na adresovou a datovou sběrnici i logiku pro výběr řídicích a stavových registrů), tak i obvody čistě analogové. Na základě analogových obvodů jsou vytvořeny i výstupní filtry, do kterých je možné selektivně přivádět jak výstupy z jednotlivých zvukových kanálů (po aplikaci kruhové modulace a amplitudové modulace pomocí obálky ADSR), tak i externí zvukový signál. Výstupní filtry jsou tří typů – dolní propust (LP – low pass), horní propust (HP – high pass) a pásmová propust (BP – band pass). Filtry ve své podstatě tvoří samostatnou část zvukové syntézy, která není aditivní (do signálu se nepřidávají další složky), ale naopak subtraktivní (dochází k odstranění či zmenšení vybraných frekvencí). Jednotlivé filtry je možné navzájem kombinovat a vytvořit tak například z dolní a horní propusti pásmovou zádrž, popř. z dolní propusti a pásmové propusti vytvořit dolní propust s odlišnou charakteristikou. Pomocí dvou osmibitových řídicích registrů se nastavuje mezní frekvence všech filtrů (jedná se o jedinou frekvenci platnou pro všechny tři typy filtrů, její význam je ovšem u každého filtru jiný).
Obrázek 7: Výstupní filtry na blokovém schématu SIDu.
V případě, že jsou mezi piny pojmenované CAP1A a CAP1B i CAP2A a CAP2B připojeny dva kondenzátory s kapacitou 6,8 µF, lze mezní frekvenci filtrů měnit v rozsahu přibližně 30 Hz až 12 kHz (počítače Commodore C64 obsahovaly kondenzátory právě o této kapacitě, ovšem SID lze použít i v dalších systémech, kde mohou být kapacity odlišné podle toho, k jakému účelu je tento čip určen). Samotná frekvence je reprezentována jako jedenáctibitové bezrozměrné číslo, skutečná frekvence je na této hodnotě lineárně závislá. Útlum zvukového signálu procházejícího dolní či horní propustí je po překročení mezní frekvence roven přibližně 12 decibelům na oktávu. U pásmové propusti je útlum (v obou směrech od mezní frekvence) roven šesti decibelům na oktávu. Připomeňme si, ze zvýšení tónu o jednu oktávu znamená zdvojnásobení jeho frekvence a snížení o jednu oktávu naopak frekvenci poloviční. Utlum je udávaný v decibelech, tj. logaritmickém poměru mezi naměřenou (vypočtenou) amplitudou a amplitudou maximální (výsledek je navíc vynásoben deseti či dvaceti podle toho, zda jde o napěťový či výkonový útlum popř. zesílení).
4. Vstup externího signálu a regulace hlasitosti na výstupu
Na blokovém schématu zvukového čipu SID zobrazeného na osmém obrázku můžeme vidět i vstup externího signálu spolu s možnou cestou, kterou tento signál může být zpracováván – buď se externí signál přímo smísí s výstupy zvukových kanálů nebo je přiveden na vstup filtrů popsaných v předchozí kapitole. Na tento analogový vstup se vstupní impedancí přibližně 100 kΩ lze zapojit prakticky libovolný zvukový čip, například další SID nebo i AY-8910 či POKEY :-), popřípadě analogový výstup ze zvukového syntetizéru (elektronické varhany). Počet „sériově“ zapojených čipů je prakticky omezen pouze vzrůstající úrovní šumu. Tento vstup taktéž mnoho uživatelů využilo u série SID 8580 pro přivedení stejnosměrné složky do bloku VOLUME, čímž bylo umožněno přehrávání samplovaných zvuků, protože tato poslední série čipu SID byla upravena tak, aby docházelo k menšímu zašumění výstupu, což však mělo za následek absenci stejnosměrné složky (DC), která je při přehrávání samplů použita (viz následující kapitola). Posledním blokem na SIDu je blok nazvaný VOLUME, ve kterém se globálně mění hlasitost výsledného zvuku. Pro určení hlasitosti jsou rezervovány čtyři bity v jednom z řídicích registrů, čímž je vlastně i určen typický formát samplů při přehrávání digitalizovaných zvuků.
Obrázek 8: Externí signál na blokovém schématu SIDu.
5. Přehrávání digitalizovaného (samplovaného) zvuku
Na zvukovém čipu SID je možné poměrně snadno přehrávat i digitalizovaný (samplovaný) zvuk. Existuje několik možných způsobů přehrávání samplovaného zvuku; typicky se používá buď přímé řízení výstupní úrovně v bloku VOLUME, na jehož vstup je přivedena stejnosměrná složka (takto lze snadno pracovat se čtyřbitovými samply) nebo se používá PWM – pulse width modulation, tj. programová změna střídy obdélníkového signálu. V tomto případě není pro změnu střídy možné využít přímo možnosti SIDu, protože jeho zvukové generátory nemají tak vysokou frekvenci (pro PWM se musí používat časový krok odpovídající samplované frekvenci vynásobené dynamickým rozsahem samplu, tj. například 28). S využitím PWM lze i na běžném počítači Commodore C64 bez dalších hardwarových úprav přehrávat digitalizovaný zvuk samplovaný na frekvenci cca 16 kHz se samply uloženými na šesti bitech, což odpovídá dynamickému rozsahu zhruba 36 dB (se SuperCPU lze dosáhnout vzorkovací frekvence až 19 kHz s plně osmibitovými vzorky). Podrobný popis jednotlivých způsobů přehrávání digitalizovaných zvuků (včetně praktických ukázek přehrávacích rutin) je uveden v článku The C64 Digi, jehož autory jsou Robin Harbron, Levente Harsfalvi a Stephen Judd. Nejjednodušší přehrávací rutina, která modifikuje přímo výstupní hlasitost v závislosti na nejvyšších čtyřech bitech osmibitového samplu, vypadá následovně:
ldy #0 ; dolních osm bitů ukazatele na přehrávaný vzorek
:loop lda ($fd),y ; na adresách $fd a $fe v nulté stránce paměti
; je uložen začátek samplu
sta $d418 ; adresa řídicího registru VOLUME - přehrát vzorek
ldx #5 ; nastaveno podle vzorkovací frekvence
:delay dex
bne :delay ; zpožďovací smyčka
iny ; přechod na další vzorek
bne :loop
inc $fe ; samozřejmě počítáme i s přechodem
jmp :loop ; přes stránku paměti 6502ky (stránka = 256 bajtů)
6. SID: minulost a současnost
V předchozí části tohoto seriálu jsme si řekli, že SID byl zpočátku navržen především pro použití v osmibitových domácích počítačích firmy Commodore (CBM). V tomto ohledu skutečně dosáhl velkého úspěchu, protože zejména počítač Commodore C64 byl (co se týče objemů prodeje) jedním z nejúspěšnějších osmibitových počítačů, který překonal jak osmibitové Apple II (tento počítač byl oblíbený především ve firmách a školách, i díky geniálně navržené Wozniakově disketové jednotce a tabulkovému kalkulátoru VisiCalc), tak pravděpodobně i evropské ZX Spectrum (konkrétní čísla se dosti odlišují; zatímco počty prodaných C64 jsou poměrně přesná, u počítačů ZX Spectrum je situace poněkud složitější, protože existuje mnoho více či méně kompatibilních klonů, z nichž mnohé jsou velmi rozšířené). Ovšem díky specifickému zvuku, který dokáže SID generovat, se tento zvukový čip později začal používat i v dalších zařízeních, především ve specializovaných syntetizérech. Vzhledem k tomu, že se v současnosti originální SID již nevyrábí a jeho napodobeniny mají odlišný zvuk, používají se v těchto syntetizérech starší čipy získané například z nefunkčních počítačů Commodore nebo ze zbylých zásob uvolněných na trh (tato situace vypovídá o zcela unikátním postavení SIDu – neexistuje snad jiný integrovaný obvod, který by se po více než 20 letech „doloval“ ze starých osmibitových počítačů a zabudovával do moderních systémů).
Obrázek 9: SIDStation – netradiční syntetizér používaný i mnoha slavnými hudebníky, jenž je postavený právě na čipu SID.
7. HardSID
HardSID je označení zvukových karet určených (nejenom) pro osobní počítače PC, které obsahují jeden či více zvukových čipů SID. Původně se jednalo o zvukovou kartu určenou pro sběrnici ISA (viz předchozí části tohoto seriálu), která obsahovala jen jeden SID, tj. hudbu bylo možné přehrávat s tříhlasou polyfonií (pomocí speciálních rutin se dalo simulovat i více hlasů). Pozdější verze HardSIDu byla určena pro universální sběrnici PCI (opět viz předchozí části tohoto seriálu), což mj. zajistilo i kompatibilitu s počítači s jinou architekturou než pouze IBM PC s procesory x86. Tato verze již existovala ve dvou variantách – první varianta pracovala s jedním zvukovým čipem SID, varianta pojmenovaná HardSID Quattro pak až se čtyřmi zvukovými čipy, což mj. zajistilo dvanáctihlasou polyfonii (vzhledem k tomu, že SID 6581 vyráběný v technologii N-MOS měl poměrně velký vyzařovací výkon, byla karta vybavena i větráčkem).
Obrázek 10: PCI verze zvukové karty HardSID.
Prozatím poslední verze HardSIDu se k počítači připojuje přes externí sběrnici USB – jedná se o HardSID 4U, jenž může obsahovat až čtyři SIDy. Více informací o tomto zařízení lze nalézt na adrese http://www.hardsid.com/.
Obrázek 11: USB verze zvukového zařízení HardSID, která je pojmenována HardSID4U.
HardSID je podporován jak v Linuxu (ovladač), tak i v Microsoft Windows, kde s ním dokáže spolupracovat například známý přehrávací program sidplay (viz obrázek 12 a 13) nebo ACID64 Player.
Obrázek 12: Přehrávací program SIDPlay, který dokáže spolupracovat se zvukovou kartou HardSID.
Obrázek 13: About dialog programu SIDPlay (jedná se o starší, nicméně plně funkční verzi).
8. SIDStation
Dalším známým zařízením, které obsahuje zvukový čip SID, je syntetizér nazvaný příznačně SIDStation švédské firmy Electron. Jedná se o syntetizér, jehož výroba skončila v roce 2007 tehdy, když firmě – alespoň podle oficiálního vyjádření – došly všechny nakoupené SIDy, tj. ústřední část celého zařízení. Ve skutečnosti se s výrobou končilo dokonce celkem 3×, což samozřejmě mělo vliv na rostoucí cenu, neboť vždy posledních 100 kusů mělo speciální číselné označení od 100 do 1 (mít doma SIDStation#1 je sen mnoha sběratelů). SIDStation obsahuje jak úplné MIDI rozhraní (konektory MIDI In, MIDI Out i MIDI Thru), tak i analogový vstup a výstup. Vše je ovládáno vlastním jednoduchým operačním systémem, jenž mj. obsahuje i třístopý sekvencér a v paměti uložené zvukové vzorky, ze kterých lze skládat hudbu nebo prostě SIDStation použít jako skutečný syntetizér připojený ke klávesám. Ovládací prvky SIDStation a dvouřadý LCD jsou zobrazeny na čtrnáctém obrázku.
Obrázek 14: SIDStation
9. MSSIAH (MIDI SID Software Integrated Applications)
Posledním zařízením pracujícím se zvukovým čipem SID, o němž se dnes alespoň stručně zmíníme, je MSSIAH. Jedná se o cartridge obvyklé velikosti zapojitelnou přímo do osmibitových počítačů Commodore. Cartridge obsahuje především paměť, na níž jsou nahrané hudební aplikace. Tyto aplikace jsou spuštěny ihned po zasunutí cartridge do Commodore a zapnutí počítače, ostatně jako ostatní – především herní či debugovací – cartridge, takže programy není nutné zdlouhavě načítat z kazety nebo diskety. MSSIAH taktéž obsahuje MIDI rozhraní, pomocí něhož lze osmibitový Commodore propojit s prakticky libovolným MIDI zařízením, včetně syntetizérů, kláves či sekvencérů.
Obrázek 15: Klávesy a slavný Commodore propojené pomocí MSSIAH (autorem a současně i šťastným majitelem obou zařízení je Vít Kavan, kterému tímto děkuji za fotky).
Obrázek 16: Grafické uživatelské rozhraní MSSIAH (C64 vysílá video signál na projektor)
Obrázek 17: Detail zapojení MSSIAH do domácího osmibitového počítače Commodore