# Yamaha YM3812

L'YM3812, noto anche come OPL2 (OPL sta per FM Operator Type-L), è un chip sonoro prodotto da Yamaha Corporation nel 1985. È noto per il suo impiego su alcune delle schede audio realizzate da AdLib e Sound Blaster per i PC IBM.
È retrocompatibile con l'OPL, o YM3526, con cui è molto simile: rispetto a questo, infatti, differisce solo per avere 3 nuove forme d'onda. Una versione aggiornata dell'OPL2, l'OPL3 o YMF262, è famosa per essere stato usato nella scheda Sound Blaster 16. Un altro chip sonoro correlato all'OPL2 è lo Yamaha YM2413, o OPLL, una versione con funzionalità ridotte per contenere il prezzo di vendita.

## Specifiche tecniche

L'YM3812 ha 244 differenti registri a sola scrittura ed è dotato di 9 canali per la riproduzione sonora, ognuno realizzato con 2 oscillatori. Ogni oscillatore può riprodurre delle sinusoidi (esempio 0 nella figura a lato) che possono essere modificate in altre 3 forme d'onda: la parte negativa della sinusoide può essere resa muta (esempio 1) o invertita (esempio 2), e possono anche essere riprodotte delle pseudo onde a dente di sega, composte solo dai ¼ d'onda sinusoidale che salgono verso l'alto, con delle sezioni di silenzio in mezzo (esempio 3). Questo strano modo di riprodurre le forme d'onda dà al suono riprodotto dall'YM3812 un timbro caratteristico. Ogni generatore d'onda ha il suo generatore ADSR. Il suo metodo principale di sintesi è la modulazione di frequenza, da cui il nome di "FM Operator", eseguita modulando la fase di uno degli oscillatori del canale con l'uscita dell'altro.
Registri dei canali:
* per entrambi i canali:
** frequenza principale (10 bit)
** ottava (3 bit)
** Nota on/off
** Modalità di sintesi (FM o additiva)
** Feedback acustico (da 0 a 7: il modulatore modula sé stesso)
* per ognuno dei 2 canali:
** multipli di frequenza (può essere impostato a ½, da 1 a 10, 12 o 15)
** forma d'onda (sinusoide, mezza sinusoide, sinusoide assoluta, quarto di sinusoide)
** volume (da 0 a 63, logaritmico)
** Attack, Decay, Sustain, Release (4 bit ciascuno, logaritmico)
** effetto tremolo (On o off)
** effetto vibrato (On o off)
** Sustain (On o off)
** scalatura dell'envelope per chiave (On o off)
** scalatura del volume per chiave (da 0 a 3)
Ci sono anche alcuni parametri che possono essere impostati per l'intero chip:
* profondità del vibrato
* profondità del tremolo
* modo di percussione (usa 3 canali per fornire 5 suoni di percussione)
* modalità sinusoide composita (usata raramente: non funziona con l'OPL3)

## Modalità operativa interna

La modalità operativa interna è completamente digitale: ogni tono FM è generato da un oscillatore digitale che usa una forma di sintetizzazione digitale diretta. Un quarto della forma d'onda sinusoidale è prelevata da tabella di 256 word contenuta in una ROM interna al chip mentre il resto della forma d'onda è estrapolata mediante simmetria. Normalmente l'output di un oscillatore viene scalato al livello di volume desiderato mediante moltiplicazione ma nell'YM3812 questo procedimento non è eseguito, sostituito da una serie di somme logaritmiche, operazioni meno esigenti in termini di potenza di calcolo rispetto alle moltiplicazioni.
Nel chip è presente un'altra tabella di sostituzione sempre di 256 word immagazzinate in ROM che serve per convertire il segnale in scala logaritmica in segnale in scala lineare, operazioni eseguita nel passaggio finale in cui gli output degli oscillatori sono sommati insieme (poco prima del bus di output del DAC). L'output dell'YM3812, una sequenza di numeri in virgola mobile con frequenza di circa 49720 Hz, è inviato ad un chip DAC separato, lo Yamaha YM3014B.