Nuked OPN2 Wasm Embedded Demo
This page is the small browser-side embedding example for this repository.
It mirrors the role of docs/demos/megasynth_embeded.html in
hello_ymfm_wasm, but uses the lower-level Nuked OPN2 wrapper directly.
If you want the higher-level browser synth runtime, switch to
hello_ymfm_wasm.
This repository focuses on the Nuked-OPN2 backend itself.
Minimal Usage
import nukedOpn2ModuleFactory from "../generated/nuked_opn2_wasm.js";
import { createYm2612 } from "../web/ym2612.js";
const ym2612 = await createYm2612(nukedOpn2ModuleFactory);
ym2612.reset();
// Mute operators 1-3.
ym2612.writeRegister(0x40, 0x7f, 0);
ym2612.writeRegister(0x44, 0x7f, 0);
ym2612.writeRegister(0x48, 0x7f, 0);
// Operator 4 as a simple audible carrier.
ym2612.writeRegister(0x4c, 0x08, 0);
ym2612.writeRegister(0x5c, 0x16, 0);
ym2612.writeRegister(0x6c, 0x06, 0);
ym2612.writeRegister(0x8c, 0x38, 0);
// Algorithm 7, pan L+R.
ym2612.writeRegister(0xb0, 0x07, 0);
ym2612.writeRegister(0xb4, 0xc0, 0);
// Block/F-Number, then key on.
ym2612.writeRegister(0xa4, 0x22, 0);
ym2612.writeRegister(0xa0, 0x29, 0);
ym2612.writeRegister(0x28, 0xf0, 0);
Ready.