https://arianrhodsandlot.github.io/Family-Jukebox/
Create chiptune (8-bit music) with JavaScript in your browser!
Click any items in the website if you are still confused by what it is.
Generated audios sources are some WAVs, which can be played by modern browsers' Web Audio API.
Audios' waveforms are just those ever used in Nintendo's Famicom, which also known as NES in North America, such as square wave, trangle wave, and noise. The DPCM channel is not suported yet.
A chapter is composed by some different channels. You can fill a channel with an array in JavaScript. And a Track is a list with some chapters, which can have a loop attribute.
Each value of this array represents a note of the sheet music. The browser generates an A when here is a 0
in the array, and an A♭ for -1
, a G for -2
, a rest for null
, etc.
For technical details...
-
take a look at the
Instrument
Class in./assets/track-worker.js
. -
Take a look at Pedro Ladaria's project riffwave.js, without which our tracks cannot even be performed as expected. It transforms our waves data to WAVs. Since the original homepage of this project has been not available for a long time, you can get it's source from my backup Gist.
-
We are using wavesurfer.js for playing audios with the Web Audio API easily.
MIT