VgmPlayer Usage
VgmPlayer is the higher-level playback class built on top of
GenesisAudioEngine. It is the browser-side path for prepared VGM data.
Minimal Flow
import ym2612ModuleFactory from "./generated/ym2612_wasm.js";
import segaPsgModuleFactory from "./generated/segapsg_wasm.js";
import { createGenesisAudioEngine } from "../js/genesisaudioengine.js";
import { VgmPlayer } from "../js/vgmplayer.js";
const engine = await createGenesisAudioEngine({
ym2612ModuleFactory,
segaPsgModuleFactory,
});
const player = new VgmPlayer(engine);
player.load(vgmArrayBuffer);
player.setLoopEnabled(true);
player.play();
Main Methods
load(buffer)reset()play()pause()resume()stop()setLoopEnabled(enabled)process(left, right, frames)stats()
How Audio Output Works
VgmPlayer itself does not connect to Web Audio directly.
It fills stereo buffers with process(left, right, frames).
That makes it reusable for ScriptProcessorNode, AudioWorklet, or future game-engine callbacks.
Why It Is Separate from Direct Chip Control
VgmPlayer is for prepared music data. Direct chip control is for experiments,
realtime input, or future programmatic composition. The repository keeps these paths separate on purpose.