Behind the sound
A tiny orchestra.
Made of code.
chipvoice is an open-source JavaScript library that recreates classic console sound chips. This site is an instrument you can play to hear what the library does.
From score to sound.
A score becomes notes, notes become chip instructions, and the emulated chip generates the audio. Change the console and the same music takes on a different voice. The complete-arrangement player starts with lossless recordings rendered by these engines. Tempo, pitch and part edits, and your own MIDI files, render locally in a worker while the current music keeps playing.
Pulse waves and noise on Famicom. Wavetables on Game Boy. FM synthesis on Mega Drive. Sample playback, envelopes and echo on Super Famicom. Each engine follows its own hardware rules; Super Famicom uses a small sample bank, just as its sound chip did.
The engines are written in TypeScript and run as JavaScript. In Make and on the Desk they play live in an AudioWorklet: describe a song, play notes on the keyboard, record a take, fire sound effects and edit the score. The same library powers these live instruments and the full-arrangement renders.
The limits are part of the music.
Those consoles had only a handful of voices. A jump or a coin sound could borrow a channel from the music. The effect pads in Make play those sounds on your song's console, over the music. The goal is a small, reusable audio engine for games, instruments and playful websites, with those constraints built in.
Nothing plays until you press Play: your browser needs that first press to enable sound. Once it plays, a new console or tempo keeps the music going. Pause holds your place until you play again.
Familiar notes. Honest comparisons.
Mario, Zelda and Sonic open on their original console with the game’s chip commands and an independent reference to compare. NES commands are verified in CPU cycles; Mega Drive commands follow the original VGM capture. Other consoles and musical edits use adaptations extracted from those commands. No accompaniment is invented.
The listening lab uses versioned lossless recordings for repeatable, level-matched comparisons. It starts only when you press Play. Source checks compare pitches, rhythms and rests; engine checks compare register replay and, for Super Famicom, a native DSP reference. The lab publishes the evidence beside the audio.
The public selector currently features four Japanese consoles. C64 support remains in the library and existing saved scores.
Take it into your own project.
npm install chipvoice
Make a song, choose Download project, and play it in your own page: see the developer docs. The library, examples, fidelity methodology and backlog are all on GitHub. Every chip's measured accuracy is public too.
Credits & sources.
Music by Koji Kondo (Mario and Zelda) and Masato Nakamura (Sonic). Each arrangement’s source, transcription or native reference and exact coverage appear under the console. See the score methodology and reference ledgers.
Console marks are bundled locally and shown in one colour, their shapes unchanged. Famicom, Game Boy and Super Famicom come from Wikimedia Commons; the Mega Drive mark comes from HVR88’s Monochrome Gaming Logos. Every file and its source are listed in the asset manifest.
Marks identify the emulated consoles. Nintendo and Sega retain their respective trademarks; this independent project is not affiliated with them.