marek12306 / node-chiptune

Convert tracker music to PCM streams in Node.js (libopenmpt bindings)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

node-chiptune

NPM

Convert tracker music to PCM streams in Node.js. Emscripten was used to translate libopenmpt to Javascript.

If you are looking for a HTML5 player to play tracker music, check out Chiptune2.js

Example

var chiptune = require('node-chiptune');
var speaker = require('speaker');

fs.readFile('file.mod', function(err, data) {
    if(err != null) {
        console.log(err);
    } else {
        // Create a chiptune readable stream
        var chiptuneStream = chiptune(data, {
            channels: 2, // 2 channels (stereo)
            sampleRate: 48000 // 48,000 Hz sample rate
        });
        
        // We should be able to pipe the chiptune stream to the speaker
        chiptuneStream.pipe(new Speaker());
    }
});

Supported formats

Basically all the formats supported by libopenmpt, here is the list:

mod s3m xm it mptm stm nst m15 stk wow ult 669 mtm med far mdl ams dsm amf okt dmf ptm psm mt2 dbm digi imf j2b gdm umx plm mo3 xpk ppm mmcmp SymMOD

Thanks to

  • Deskjet for helping me understand how libopenmpt works
  • OpenMPT for their library that made this project possible

About

Convert tracker music to PCM streams in Node.js (libopenmpt bindings)

License:GNU Lesser General Public License v2.1


Languages

Language:JavaScript 100.0%