# Yamaha YM3812

Der Yamaha YM3812, auch bekannt als OPL2 (OPL ist eine Abkürzung für FM Operator Type-L), ist ein von der Yamaha Corporation hergestellter Soundchip bzw. integrierter Schaltkreis. Er fand eine weite Verbreitung in Soundkarten für den IBM-PC, z. B. AdLib und Soundblaster.

## Beschreibung

Der Soundchip YM3812 (OPL2) ist abwärtskompatibel zum YM3526 (OPL1), der in Soundkarten für MSX-Computer Verwendung fand. Gegenüber dem Vorgänger wurden nur drei neue Wellenformen hinzugefügt. Eine erweiterte Version des OPL2, der OPL3 alias YMF262, fand seinen Einsatz ab der Soundblaster Pro 2 und weitere Verbreitung in deren Nachfolgern wie der Soundblaster 16. Er unterstützt Stereosounds und kann in verschiedenen Modi bis zu sechs Stimmen mit vier Operatoren erzeugen, außerdem wurden noch einmal vier Wellenformen hinzugefügt. Weiterhin gibt es noch den OPL4, er ist abwärtskompatibel zu OPL3 und OPL2, wurde aber um Wavetable-Synthese erweitert.
Die Schaltung hatte 244 verschiedene Register zum Beschreiben. Sie kann neunstimmigen Sound ausgeben, jede Stimme („Kanal“) erzeugt durch zwei Oszillatoren. Jeder Oszillator kann Sinuskurven produzieren, welche in drei andere Wellenformen verwandelt werden können – der negative Anteil der Schwingung kann stummgeschaltet oder invertiert und auch Pseudo-Sägezahnschwingungen ($^1$⁄$_4$ Sinusschwingung aufwärts mit stummen Bereichen dazwischen) konnten erzeugt werden. Diese ungewöhnliche Art, Wellenformen zu erzeugen, geben dem YM3812 einen charakteristischen Klang. Jeder der Wellen-Generatoren hat seinen eigenen ADSR-Hüllkurvengenerator. Seine Hauptfunktion, Töne zu erzeugen, ist die frequenzmodulierte Synthese – wobei pro Kanal einer der beiden Oszillatoren den anderen moduliert.

## Übersicht der Register eines Kanals
### Für den gesamten Kanal

* Hauptfrequenz (10 Bit)
* Octave (3 Bit)
* Note an/aus
* Synthese-Modus (FM oder einfach additiv)
* Rückkopplung (0–7, wobei sich der Modulator selbst moduliert)

### Für jeden der beiden Oszillatoren

* Frequenz-Faktor (kann auf $^1$⁄$_2$, 1 bis 10, 12 oder 15 gesetzt werden)
* Wellenform (Sinus, Halbsinus, Sinus-Betrag oder Säge-Sinus)
* Lautstärke (0–63)
* Attack, Decay, Sustain, Release (je 4 Bit, logarithmisch)
* Tremolo (an oder aus)
* Vibrato (an oder aus)
* Sustain (an oder aus)
* Hüllkurven-Skalierung pro Taste (an oder aus)
* Lautstärke-Skalierung pro Taste (0–3)

### Parameter für den gesamten Chip

* Vibrato depth
* Tremolo depth
* Schlagzeug-Modus (benutzt drei Kanäle, um fünf Schlagzeugtöne zu erzeugen)
* Composite Speech Mode (alle Operatoren stehen gleichzeitig zur Verfügung; vorgesehen für Sprachsynthese, wurde aber praktisch nie genutzt und ist (als einzige Inkompatibilität) im OPL3 nicht enthalten)

## Technische Daten
### OPL 2

* 9 Tonspuren (Channels) oder 6 Tonspuren + 5 Tonspuren Schlaginstrumente
* 2 Oszillatoren pro Tonspur
* Frequenzmodulation und Additive Modulation
* 4 verschiedene Waveforms (Sinus, Dreieck, Sägezahn, ?)
* 1 Hüllkurvengenerator pro Oszillator (ADSR) mit 4 Bit Genauigkeit pro Wert
* Vibrato, Tremolo und Sustain
* Mono

### OPL 3

* 18 Tonspuren oder 12 Tonspuren + 5 Tonspuren Schlaginstrumente
* 2 Oszillatoren pro Tonspur, unter Verwendung von 12 Tonspuren zusammengefasst zu 6 Tonspuren auch 4 Oszillatoren pro Tonspur
* Frequenzmodulation und Additive Modulation
* 4 verschiedene Waveforms (Sinus, Dreieck, Sägezahn, Rechteck)
* 1 Hüllkurvengenerator pro Oszillator (ADSR) mit 4 Bit Genauigkeit pro Wert
* Vibrato, Tremolo und Sustain
* Stereo