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.

Source: web/ym2612.js | docs/demos/nuked_opn2_embeded.html

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);
Back
Ready.