# synth-js Command-line utility and Node module for generating raw audio data from MIDI files. ## Installation ### Command-line utility: ```bash $ npm link synth-js ``` ### Node module: ```bash $ npm install --save synth-js ``` ### JavaScript: ```html ``` After including the file from `dst/synth.min.js`, the global variable `synth` will be initialized. ## Usage ### Command-line utility: ```bash # assuming song.mid in cwd $ synth -i song # now song.wav contains raw audio data for song.mid ``` ### Node module: ```js const synth = require('synth-js'); const fs = require('fs'); let midBuffer = fs.readFileSync('song.mid'); // convert midi buffer to wav buffer let wavBuffer = synth.midiToWav(midiBuffer).toBuffer(); fs.writeFileSync('song.wav', wavBuffer, {encoding: 'binary'}); ``` ### JavaScript: ```html Download ``` See the demo [here][browser-demo]. ## FAQ ### Where can I find documentation? Currently, documentation only exists for the command-line utility. To access it, use `man`: ```bash $ man synth ``` For Node or JavaScript, refer to the `src/` directory for accessible APIs: * `synth.WAV()` * `synth.MIDIStream()` * `synth.midiToWav()` ## License Available under the MIT License [browser-demo]: https://jsfiddle.net/patrob10114/o5r1adyz/show/