Hlavní navigace

Hudební čipy Yamaha YM 3812 (OPL2) a YMF 262 (OPL3)

14. 5. 2009
Doba čtení: 13 minut

Sdílet

V dnešní části seriálu o architekturách počítačů si podrobněji popíšeme, jakým způsobem je možné vytvářet hudbu s využitím čipů Yamaha YM 3812, známého též pod označením OPL2 a taktéž Yamaha YMF 262, neboli OPL3. Tyto čipy byly použity v mnoha zvukových kartách, včetně AdLibu či Sound Blasteru.

Obsah

1. Frekvenční modulace a její použití při zvukové syntéze
2. FM syntéza a čipy Yamaha YM 3812 a YMF 262
3. Zvuková syntéza na čipu Yamaha YM 3812 (OPL2)
4. Základ OPL – operátory a jejich vzájemná vazba
5. Obálka typu ADSR
6. Zpětná vazba a perkusní režim
7. Hudební čip Yamaha YMF 262 (OPL3)
8. Způsob zapojení operátorů v režimu OPL 3
9. Literatura a odkazy na Internetu

1. Frekvenční modulace a její použití při zvukové syntéze

V předchozí části tohoto seriálu jsme si mj. řekli, že ve zvukové kartě AdLib byl zvuk vytvářen pomocí hudebního čipu Yamaha YM 3812, známého též pod označením OPL2 neboli (FM) Operator Type L2. Tento plně digitální čip byl firmou Yamaha navržen pro použití v multimediálních počítačích, tato firma se dokonce v osmdesátých letech minulého století snažila – ostatně jako několik dalších výrobců z Japonska – navrhnout vlastní architekturu počítače i s operačním systémem. Tato snaha sice nebyla korunována úspěchem, nicméně právě pro zvukovou syntézu založenou na číslicových čipech (konkrétně frekvenční a fázové modulaci, později i na wavetable syntéze) se jméno Yamaha stalo pojmem, a to nejenom v oblasti osobních počítačů, ale i poloprofesi­onálních a profesionálních hudebních syntetizérů. Principem, na němž je tvorba hudby pomocí čipů OPL2OPL3 postavena, je vzájemná kombinace dvou periodických signálů s využitím zpětnovazební smyčky, obálky typu ADSR a frekvenční modulace (FM) – jedná se modulaci, při jejíž aplikaci je frekvence druhého oscilátoru (nosné) řízena výstupem oscilátoru prvního (modulátoru).

pc6101

Obrázek 1: Frekvenční modulace v případě, že má první signál (modrý) zvaný modulátor velmi dlouhou periodu v porovnání se signálem druhým, jenž je zvaný nosná (carrier).

Využitím FM syntézy pro napodobení zvuku hudebních nástrojů se zabýval John Chowning, který již v roce 1967 učinil důležitý objev při pokusu o vygenerování zvukového efektu známého pod pojmem vibrato. Chowningův pokus byl založen na použití elektronického obvodu sestaveného z dvojice za sebe zapojených oscilátorů, tj. generátorů sinusových signálů, přičemž první oscilátor (s frekvencí cca 20 Hz) ovlivňoval frekvenci druhého oscilátoru, který generoval výsledný signál. Pomocí takto zapojené dvojice oscilátorů se Chowningovi podařilo vytvořit harmonický tón s celým spektrem vyšších frekvencí, přičemž změnou frekvence a amplitudy prvního oscilátoru se výška výsledného tónu neměnila, ale jeho zabarvení ano (přesněji řečeno se výška samozřejmě měnila, ale tak rychle, že lidské ucho v celém spektru frekvencí rozpozná právě frekvenci základní, jejíž výkon ve frekvenčním spektru je nejvyšší). Skutečné vibrato lze nasimulovat s použitím nižší frekvence prvního oscilátoru (nazývaného také modulator), naopak pro napodobení zvuku široké palety hudebních nástrojů je frekvence prvního modulátoru poněkud vyšší. Frekvence druhého oscilátoru (jenž se nazývá carrier – nosná) určuje základní frekvenci (výšku) vytvářeného tónu, přičemž podíl frekvencí obou oscilátorů lze v praxi vyjádřit jednoduchým zlomkem.

pc6102

Obrázek 2: Pokud se perioda modulátoru zkracuje, je změna tvaru výstupního signálu stále výraznější.

2. FM syntéza a čipy Yamaha YM 3812 a YMF 262

John Chowning, který v době svého objevu pracoval na universitě ve Stanfordu, se spojil s panem Ishimurou z firmy Yamaha, jenž při osobní návštěvě na Stanfordu po necelých deseti minutách princip FM, způsob jejího využití i důsledky pro další vývoj v celém oboru hudebních syntetizérů pochopil a doporučil svým nadřízeným, aby se Yamaha v této oblasti více angažovala. Důvod Ishimurova nadšení spočíval v tom, že pro napodobení zvuku nástrojů pomocí FM syntézy je zapotřebí pouze poměrně jednoduchý analogový či číslicový obvod (Yamaha se v tomto ohledu téměř výhradně zaměřila na číslicové–digitální zvukové obvody) a především je pro každý nástroj a tón nutné nastavovat relativně malé množství parametrů, pro jejichž uložení dostačuje pouze minimum paměti (doslova pár bajtů), takže čipy s FM syntézou bylo možné použít i v levnějších syntetizérech, na rozdíl od pozdější wavetable syntézy, která vyžaduje poměrně velké množství paměti a výkonnější procesory pro zpracování vzorků nástrojů (nehledě na to, že samotná wavetable syntéza nijak neřeší tvorbu nových zvuků, na rozdíl od FM syntézy doplněné o možnost ovlivnění obálky – envelope – editovaného tónu).

pc6103

Obrázek 3: Další zvyšování frekvence modulátoru – výsledný signál získává tvar charakteristický pro FM syntézu. Po analýze signálu ve frekvenční oblasti by bylo patrné, že se zde vyskytuje nekonečné množství frekvencí, které jsou však při reálné reprodukci zvuku z obou stran ořezány.

Firma Yamaha si následně způsob tvorby hudby pomocí FM syntézy nechala licencovat a posléze zahájila vývoj a výrobu vlastních čipů pro syntézu hudby (původně měla tyto čipy pro Yamahu vyrábět firma NEC) a v roce 1983 prodala více než 200 000 kusů legendárního syntetizéru Yamaha DX-7, což bylo na tehdejší dobu (menší trh než dnes) považováno za velký úspěch následovaný po několika letech krachem firem, jenž vyráběly nyní již zastaralé elektromechanické a analogové syntetizéry (samotné obchodní značky těchto výrobců sice přežily, ale většinou patří jiným vlastníkům). V roce 1994 dokonce přesahoval obrat trhu se zvukovými kartami s FM syntézou jednu miliardu dolarů – a naprostá většina těchto zvukových karet používala čip OPL2 nebo později OPL3, kterými se dnes zabýváme. Zajímavé přitom je, že starší čipy vyráběné Yamahou ve skutečnosti používaly při zvukové syntéze fázovou modulaci (PM) a ne modulaci frekvenční (FM), přestože firma měla patent pouze na FM syntézu. I když mezi fázovou modulací a modulací frekvenční je pouze minimální rozdíl (záleží jen na tom, kdy se aktuální hodnota modulátoru použije ve výpočtu výsledného signálu), mohlo – i přes existenci patentu – na trhu vzniknout více konkurenčních řešení.

pc6104

Obrázek 4: Legendární klávesy Yamaha DX-7 s FM syntézou – dodnes vyhledávaný a ceněný výrobek, který měl velký dopad na celou hudební scénu.

3. Zvuková syntéza na čipu Yamaha YM 3812 (OPL2)

První takřka celosvětově rozšířenou zvukovou kartou na osobních počítačích kompatibilních s IBM PC, která obsahovala hudební čip Yamaha YM 3812, byla karta AdLib, později byl tento obvod použit i na Sound Blasterech a dalších typech zvukových karet (více či méně s AdLibem kompatibilních). Jedná se o plně digitální čip obsahující poměrně jednoduchý procesor doplněný o paměť ROM s kapacitou 512 bytů, která je rozdělena na dvě stejně velké části. V prvních 256 bajtech se nachází vzorky jedné čtvrtiny periody sinusového signálu uložené v logaritmické škále (výpočet sinusovky by byl zbytečně komplikovaný, navíc ze znalosti první čtvrtiny periody lze díky symetrii sinusovky odvodit její průběh pro celou periodu), druhých 256 bajtů obsahuje převodní hodnoty exponenciální funkce – veškeré výpočty na čipu YM 3812 jsou totiž prováděny s hodnotami v logaritmické škále, protože nejčastější výpočty (především samotná fázová modulace, modifikace signálu obálkou pomocí amplitudové modulace, změna hlasitosti a aplikace zpětné vazby) jsou založeny na násobení, jež se v logaritmické škále převádí na sčítání, které je implementačně mnohem jednodušší než násobení.

pc6105

Obrázek 5: Zvuková karta AdLib obsahovala jen velmi málo součástek: zvukový čip YM 3812, D/A převodník YM3014B a obvody zajišťující komunikaci počítače s kartou přes sběrnici.

Převod na lineární hodnoty je prováděn před posláním vypočteného signálu na externí digitálně-analogový převodník (většinou se jednalo o čip YM3014B, samplovací frekvence, tj. rychlost přenášení vzorků na D/A převodník, je poměrně vysoká – 49720 Hz). To, že je YM 3812 plně digitálním čipem je výhodné pro jeho emulaci, protože není nutné složitě modelovat chování analogových oscilátorů či filtrů. Čip je vybaven piny pro připojení k osmibitové sběrnici řízené signály CS, RD a WR. Pro výběr adresy je vyveden pouze jeden pin – to je však dostačující, protože se rozlišují pouhé dvě adresy mapované do I/O prostoru 0×388 a 0×389 (tyto adresy byly z důvodu zpětné kompatibility použity i u modernějších zvukových karet). Na adrese 0×388 je umístěný indexový registr, do nějž se zapisuje index vybraného interního registru (0–255), a na adrese 0×389 je datový registr. Čip obsahuje 244 interních osmibitových registrů, pomocí nichž se řídí celý průběh zvukové syntézy – počet registrů je tedy mnohem vyšší, než u dříve popisovaných zvukových čipů (POKEY: 9 registrů, SID: 29 registrů, AYčko: 14 registrů). Zápis do interního registru musí být proveden ve dvou krocích – výběr registru zápisem jeho čísla na I/O adresu 0×388 a po malém zpoždění zápisem nové hodnoty interního registru na adresu 0×389.

4. Základ OPL – operátory a jejich vzájemná vazba

Čip Yamaha YM 3812 generuje zvuk pomocí devíti samostatně nastavitelných hudebních kanálů, přičemž každý kanál obsahuje dvojici takzvaných operátorů, které mohou být navzájem propojeny buď tak, že se oba signály vytvářené v obou operátorech jednoduše sčítají nebo první operátor (modulator) ovlivňuje pomocí fázové modulace tvar signálu vytvářeného druhým operátorem (carrier) – viz následující obrázek.

pc6106

Obrázek 6: Způsob zapojení dvojice operátorů v jednom hudebním kanálu v čipu OPL2. Naznačena je i zpětnovazební smyčka, která může dosti zásadním způsobem ovlivnit výsledný tón.

Každý operátor je složen ze tří bloků – oscilátoru (generátoru periodického signálu o zadané frekvenci), generátoru obálky (envelope) a obvodu pro řízení výstupní úrovně. Každý oscilátor může generovat periodický signál odvozený od klasické sinusovky, jejíž podoba je, jak již bylo řečeno v předchozím odstavci, uložena (v logaritmické škále) v 256 bajtech paměti ROM přímo na hudebním čipu. Všechny čtyři varianty signálu jsou zobrazeny na následujícím obrázku. Jedná se samozřejmě již o signál převedený na lineární škálu, který lze zobrazit na osciloskopu připojeného na výstupu ze zvukové karty v případě, že se povolí pouze jeden z devíti hudebních kanálů, nastaví se sčítání výstupů obou operátorů a obálka bude obsahovat nenulovou hodnotu sustain (viz navazující odstavec). Na tomto místě je vhodné říci, že firma Yamaha vyráběla i „originální“ čip YM 3526 (OPL1), který se od YM 3812 odlišoval prakticky pouze v tom, že dokázal pracovat jen se sinusovkou a nikoli s dalšími třemi tvary signálů (OPL3 naopak další čtyři průběhy přidává, mezi jinými i oblíbený obdélníkový signál se širokým, teoreticky nekonečným spektrem).

pc6107

Obrázek 7: Čip OPL2 umožňuje pro každý operátor použít jeden ze čtyř tvarů vlny založený na sinusovce o volitelné frekvenci.

5. Obálka typu ADSR

Signál vytvářený v každém operátoru je ovlivněn obálkou (envelope), pomocí níž lze měnit jeho amplitudu. Jedná se o obálku typu ADSR (attack, decay, sustain, release). Základní tvar obálky je určen čtveřicí parametrů – attack rate (doba či strmost náběhu první hrany), decay rate (doba či strmost druhé – klesající/sestupné – hrany), sustain level (stabilní úroveň signálu obálky po prvotním vzrůstu a poklesu, jenž je v programech většinou vyjadřovaná v procentech amplitudy, ovšem v řídicích registrech uložená jako zlomek maximální úrovně) a release rate (doba či strmost poslední – klesající – hrany).

pc6108

Obrázek 8: Tvar obálky generované pro každý operátor na čipu YM 3812. AR=attack rate, DR=decay rate, SL=sustain level a RR=release rate. Začátek obálky i doba trvání úrovně sustain je určena stavem bitu KEY-ON.

Pro každý z těchto parametrů je v řídicích registrech zvukového čipu YM 3526 vyhrazena čtveřice bitů, což prakticky znamená, že hodnoty attack a decay jsou společně uloženy v jednom osmibitovém registru a hodnoty sustain a release v registru druhém. Tyto registry jsou alokovány pro každý operátor zvlášť. Povšimněte si, že čtyři výše uvedené parametry nejsou pro úplné popsání tvaru obálky dostatečné. Především chybí určení doby, po kterou si obálka drží úroveň sustain a taktéž amplituda, tj. maximální úroveň signálu obálky v bodě, kde se náběžná hrana attack láme a mění se v sestupnou hranu decay. Tyto dva parametry jsou nastavovány následovně: maximální úroveň signálu obálky je vždy nastavena na 100% a doba úrovně sustain závisí na době, po kterou je bit KEY-ON programově držený v úrovni logické jedničky. Tento bit je rezervovaný pro každý kanál (nikoli pro operátor), jednotlivé kanály je tedy možné ovládat zvlášť, což je pro skutečnou polyfonii (vícehlasou hudbu) nezbytné.

pc6109

Obrázek 9: „Sanxion Adlib MusicDisk“ – program přehrávající hudbu určenou pro zvukové karty osazené čipem s OPL 2 nebo OPL 3. V současnosti je ho možné spouštět například v DOSBoxu.

6. Zpětná vazba a perkusní režim

Další zajímavou vlastností čipu YM 3812 je možnost zavedení zpětné vazby u prvního operátoru – modulátoru. Tato zpětná vazba je naznačena na šestém obrázku (viz předchozí kapitoly). Pomocí tří bitů lze zvolit zpoždění signálu, který se pomocí zpětné vazby vrací na vstup modulátoru, aby zde byl sečten s původním vstupním signálem. Doba zpoždění není zadána absolutně (to by při změně výšky tónu znamenalo nutnost dobu zpoždění přepočítat), ale relativně s ohledem na frekvenci (periodu signálu) nastavenou pro daný operátor. Poslední důležitou vlastností je možnost přepnutí čipu do takzvaného perkusního režimu (persussion mode), který představuje alternativu k výše popsanému melodickému režimu. Zatímco v melodickém režimu lze použít osmnáct operátorů rozdělených po dvojicích do devíti hudebních kanálů, je po přepnutí čipu do režimu perkusního k dispozici šest melodických kanálů (každý obsahuje dva operátory, které se chovají tak, jak byly popsány v předchozích kapitolách) a současně pěti kanálů použitých pro bicí nástroje – Bass Drum, Snare Drum, Tom-Tom, Cymbal a Hi-Hat. Pro vytváření zvuků bicích nástrojů je použitý generátor bílého šumu, což je v mnoha ohledech podobné funkcím čipů POKEY, SID či AY-3–8190.

pc6110

Obrázek 10: „Sanxion Adlib MusicDisk II“.

7. Hudební čip Yamaha YMF 262 (OPL 3)

Hudební čip Yamaha YMF 262, známý též pod označením OPL 3, představuje další generaci zvukových obvodů založených na frekvenční (fázové) modulaci. Oproti výše popsanému čipu YM 3812 došlo k několika podstatným úpravám. Především se zvýšil celkový počet operátorů z osmnácti na 36, do jednoho kanálu je možné zapojit až čtyři operátory (viz další kapitola), místo čtyř typů signálů na vstupech operátorů je k dispozici osm typů (včetně obdélníkového signálu a logaritmicky zkresleného signálu pilového) a na výstup čipu je možné zapojit dvojici D/A převodníků (viz jedenáctý obrázek) a vytvářet tak stereo hudbu – ve skutečnosti však není možné plynule nastavovat přechod mezi levým a pravým reproduktorem (panning), lze pouze zvolit, zda je výstup z nějakého hudebního kanálu přehráván na levém, pravém či obou reproduktorech. Vzhledem ke zvýšenému počtu operátorů se zvýšil i počet interních registrů. Z tohoto důvodu jsou místo jedné registrové sady použity sady dvě, což znamená, že místo dvou adres mapovaných do I/O prostoru (index a data) jsou použity adresy čtyři.

pc6111

Obrázek 11: Připojení čipu OPL 3 na dvojici D/A převodníků

Současně byla do značné míry zachována zpětná kompatibilita s OPL 2, což je důležité, protože zvukové karty založené na OPL 3 mohly být stále kompatibilní s původním Adlibem. Podrobný popis možností OPL 3 najdete v dokumentu Programmer's Guide to Yamaha YMF 262/OPL3 FM Music Synthesizer, který napsal spolužák z VUT Vladimír Arnošt, kterého tímto zdravím :-)

pc6112

Obrázek 12: Tvary vln, které lze použít na čipu OPL 3. První čtyři průběhy jsou zpětně kompatibilní s OPL 2.

8. Způsob zapojení operátorů v režimu OPL 3

Zatímco u čipu YM 3812 bylo možné operátory v jednom kanálu zapojit pouze do dvou konfigurací naznačených na šestém obrázku, lze u čipu YMF 262 použít mnohem větší počet kombinací, které jsou zobrazené na obrázku číslo 13. Existují tři možnosti konfigurace: 18 kanálů, z nichž každý obsahuje dva operátory, 15 melodických kanálů se dvěma operátory společně s pěti kanály pracujícími v perkusním režimu a konečně 6 kanálů se čtyřmi operátory (zbytek jsou buď dvouoperátorové kanály nebo kanály pracující v perkusním režimu). V konfiguraci čtyřoperátorového kanálu vždy jeden z operátorů (původní modulátor) obsahuje zpětnou vazbu, i když v řídicích registrech je možné nastavit úroveň zpětné vazby pro všechny operátory – u tří čtvrtin operátorů nemá tedy obsah příslušného řídicího registru vliv na generovaný tón. Z předchozího textu je patrné, že čip OPL 3 nabízí mnohem více možností při vytváření zvuků, ovšem mnoho vývojářů nedokázalo všechny možnosti syntézy v tomto režimu využít – z tohoto důvodu se velmi často setkáme s tím, že je použita „dvouoperátorová“ syntéza a čip YMF 262 je tak vlastně degradován na stereo verzi původního čipu YM 3812 s dvojná­sobným množstvím hudebních kanálů (osmnáct kanálů namísto devíti).

pc6113

Obrázek 13: Způsob zapojení operátorů v režimu OPL 3.

CS24_early

9. Literatura a odkazy na Internetu

  1. Vladimir Arnost:
    Programmer's Guide to Yamaha YMF 262/OPL3 FM Music Synthesizer
  2. Yamaha LSI corp:
    YMF262, FM Operator Type L3 (OPL3)
  3. Tero Ttt /> The Ad Lib Music Synthesizer Card Programming Guide
  4. Keyboard Synthesizer
    http://www.so­larnavigator.net/mu­sic/instrumen­ts/keyboards.htm
  5. FMS – Fully Modular Synthesizer
    http://fmsynth­.sourceforge.net/
  6. Javasynth
    http://javasyn­th.sourceforge­.net/
  7. Software Sound Synthesis & Music Composition Packages
    http://www.linux-sound.org/swss­.html
  8. Mx44.1 Download Page (software synthesizer for linux)
    http://hem.pas­sagen.se/ja_li­nux/
  9. Software synthesizer
    http://en.wiki­pedia.org/wiki/Sof­tware_synthesi­zer
  10. Frequency modulation synthesis
    http://en.wiki­pedia.org/wiki/Fre­quency_modula­tion_synthesis
  11. Yamaha DX7
    http://en.wiki­pedia.org/wiki/Y­amaha_DX7
  12. Wave of the Future
    http://www.wi­red.com/wired/ar­chive/2.03/wa­veguides_pr.html
  13. Analog synthesizer
    http://en.wiki­pedia.org/wiki/A­nalog_synthesi­zer
  14. Minimoog
    http://en.wiki­pedia.org/wiki/Mi­nimoog
  15. Moog synthesizer
    http://en.wiki­pedia.org/wiki/Mo­og_synthesizer
  16. Tutorial for Frequency Modulation Synthesis
    http://www.sfu­.ca/~truax/fmtut­.html
  17. An Introduction To FM
    http://ccrma.stan­ford.edu/softwa­re/snd/snd/fm­.html
  18. John Chowning
    http://en.wiki­pedia.org/wiki/Joh­n_Chowning
pc6114

Obrázek 14: Musicdisk Quasar – další z hudebních programů určených pro OPL 2 a OPL 3.

Byl pro vás článek přínosný?

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.