# 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/