Skip to content

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

License

Notifications You must be signed in to change notification settings

Guichaguri/node-chiptune

Repository files navigation

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

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)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published