All Projects → Guichaguri → node-chiptune

Guichaguri / node-chiptune

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

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to node-chiptune

webDOOM
Classic DOOM recompiled with WebAssembly
Stars: ✭ 61 (+281.25%)
Mutual labels:  emscripten
PauseResumeAudioRecorder
An audio recorder that supports pause/resume functionality (WAV files only for now)
Stars: ✭ 19 (+18.75%)
Mutual labels:  pcm
emscripten-sys
Emscripten API bindings for Rust
Stars: ✭ 18 (+12.5%)
Mutual labels:  emscripten
WebAssembly-in-Action
Source code for the book "WebAssembly in Action" (https://www.manning.com/books/webassembly-in-action)
Stars: ✭ 44 (+175%)
Mutual labels:  emscripten
opus-to-pcm
Decode raw opus packet to PCM without using any external library in your browser.
Stars: ✭ 47 (+193.75%)
Mutual labels:  pcm
RoguelikeTutorial2020
r/RoguelikeDev Does The Complete Roguelike Tutorial
Stars: ✭ 25 (+56.25%)
Mutual labels:  emscripten
rotation master
Provide conversion between the major representations of 3D rotation and visualize the orientation of a rigid body
Stars: ✭ 157 (+881.25%)
Mutual labels:  emscripten
gdal-js
This is an Emscripten port of GDAL, an open source X/MIT licensed translator library for raster and vector geospatial data formats.
Stars: ✭ 81 (+406.25%)
Mutual labels:  emscripten
Eufa
A high efficient utility functions(encryption, machine learning, etc) library written in WebAssembly just for demo.
Stars: ✭ 28 (+75%)
Mutual labels:  emscripten
ANMP
multi-channel loopable video game music player for nerds and audiophiles
Stars: ✭ 16 (+0%)
Mutual labels:  pcm
arxwasm
Port of Arx Libertatis to WebAssembly using Emscripten
Stars: ✭ 28 (+75%)
Mutual labels:  emscripten
godot-FLMusicLib
GDNative library that plays mp3, chiptune and tracker music files using Game Music Emu, Minimp3 and openmpt
Stars: ✭ 38 (+137.5%)
Mutual labels:  chiptune
TypeScriptXX
🧷 Stay safe! Type-safe scripting for C++ using TypeScriptToLua and CMake with auto-generated declarations.
Stars: ✭ 33 (+106.25%)
Mutual labels:  emscripten
cppreeps
WASM C++ Screeps API and utilities pack (beta, proof-of-concepts)
Stars: ✭ 38 (+137.5%)
Mutual labels:  emscripten
ahx-web-player
AHX player web interface
Stars: ✭ 24 (+50%)
Mutual labels:  chiptune
jstodef
Library for sending messages from JavaScript to Defold (Lua)
Stars: ✭ 21 (+31.25%)
Mutual labels:  emscripten
WebSandboxMC
Bukkit plugin providing a web-based interface with an interactive WebGL 3D preview or glimpse of your server 🕷⏳📦 ⛺
Stars: ✭ 15 (-6.25%)
Mutual labels:  emscripten
magnum-integration
Integration libraries for the Magnum C++11/C++14 graphics engine
Stars: ✭ 75 (+368.75%)
Mutual labels:  emscripten
hello-webgpu
Cross-platform C++ example for WebGPU and Dawn
Stars: ✭ 132 (+725%)
Mutual labels:  emscripten
koder
QR/bar code scanner for the Browser
Stars: ✭ 73 (+356.25%)
Mutual labels:  emscripten

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].