Zvukové čipy v osmibitech - pokračování

== Přehrávání samplů ==

V případě, že se čip SID používá pro přehrávání samplovaných zvuků, je možné hodnotu jednotlivých vzorků (samplů) převádět na čtyřbitové číslo, které ovlivňuje úroveň sustain. Samotná obálka se změní tak, že hodnoty attack, decay i release jsou nastaveny na nulovou hodnotu (to odpovídá nejstrmějším hranám), hodnota bitu GATE zůstává nastavená na logickou jedničku a pouze se programově mění úroveň sustain.

== Bit GATE ve chvíli fází ATTACK a RELEASE ==

SID taktéž umožňuje změnu hodnoty bitu GATE v kterémkoli okamžiku. Pokud se například tento bit vynuluje ještě v době, kdy probíhá cyklus attack, začne ihned probíhat cyklus release, tj. z obálky zmizí její prostřední část.

Taktéž již před doběhnutím cyklu release je možné bit GATE znovu nastavit na úroveň logické jedničky, čímž se ihned nastartuje další cyklus attack (některé hudební syntetizéry, které taktéž obálku ADSR využívají, tento "zrychlený" přechod mezi cykly attack a release, neumožňují).

== Další části řetězce zpracování zvuku ==

Generátory signálů a tvarovače obálek (tedy ADSR) jsou základními bloky, kterými je možné generovat zvuky napodobující různé hudební nástroje. Ovšem to není zdaleka vše, co SID dokáže. Především je možné ovlivnit výstup z jednoho generátoru signálů výstupem z generátoru dalšího s využitím takzvané 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ů – 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 externí zvukový signál, navzájem zkombinovat signály vytvářené v generátorech signálů aj.

Těmito technikami, které mj. značnou měrou přispěly k velké oblibě SIDu, se budeme podrobněji zabývat v následujících kapitolách.

== 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ý.

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í, č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.

== Výstupní filtry ==

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ý).

V případě, že jsou mezi piny pojmenované CAP1A a CAP1B i CAP2A a CAP2B připojeny dva kondenzátory s kapacitou 6,8 mikrofaradů, 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, že zvýšení tónu o jednu oktávu znamená zdvojnásobení jeho frekvence a snížení o jednu oktávu naopak frekvenci poloviční.

Útlum 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í).

== Vstup externího signálu a regulace hlasitosti na výstupu ==

Na blokovém schématu zvukového čipu SID 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 kiloohmů 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ů.

== 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 2^8).

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 8 bitů
                   ; ukazatele na
                   ; přehrávaný vzorek
:loop  lda ($fd),y ; Na adresách $fd a
                   ; $fe v nulté str.
                   ; 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     ; Počítáme i
                   ; s přechodem
       jmp :loop   ; přes stránku
                   ; paměti 6502ky
                   ; (str. = 256 bajtů)

== SID: minulost a současnost ==

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ů).

== Ukázky hudby pro SID ==

Podobně jako pro osmibitové domácí počítače Atari a hudební archiv ASMA, byl i v případě SIDu vytvořen archiv hudby vytvořené právě s využitím tohoto čipu. Tento archiv je pojmenován HSVC neboli High Voltage SID Collection, dostupný je na adrese http://www.hvsc.c64.org/ (ve skutečnosti se tvůrci ASMA inspirovali právě HSVC a jeho úspěchy).

Hudba je v HSVC uložena (opět podobně jako v případě čipu POKEY) ve formě strojového programu mikroprocesoru MOS 6502, který v určitých intervalech mění hodnoty řídicích registrů čipu SID.

Soubory s uloženou hudbou jsou z tohoto důvodu velmi krátké, mnohdy mají délku pouhých několika kilobajtů (někdy pouze stovky bajtů). Pouze v případě, že jsou použity samplované zvuky, je velikost souboru větší, zpravidla však nepřesáhne cca 30 kilobajtů (ostatně to vyplývá i z omezení daných původními osmibitovými počítači).