Package Exports
- itwriter
- itwriter/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (itwriter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Create Impulse Tracker .it files from a JSON song datastructure.
See the browser demo here and the node demo in the install section below.
Install
npm i itwriterRun the node example:
cp node_modules/itwriter/example.js .
node example.js
xmp example.itUse
Basic usage: const bytebuffer = itwriter(song_structure)
More detailed usage:
import itwriter from "itwriter";
// create a 10ms sinewave sample
const sine = [...(new Array(4410))].map((v, i) => Math.sin(i/10));
const it = itwriter({
"title": "example",
"bpm": 120,
"samples": [{
"name": "sine wave",
"samplerate": 44100,
"channels": [sine]
}],
"patterns": [{
"rows": 32,
"channels": [{
0: {
"note": "C-5",
"instrument": 0,
"vol": "v64",
}
}]
}],
"order": [0],
});
// in Node we can write to disk
import fs from "fs";
fs.writeFileSync("example.it", Buffer.from(it));
// in the browser we can download a blob
document.location.href = URL.createObjectURL(new File([it], "example.it"));See ./example.js for a detailed example of the JSON song structure.
Notes
- Currently only patterns and 16-bit mono/stereo samples are supported, not instruments.