This utility is created for in-development MIDI synthesizer synthesis.js, but it can be used for general use cases.
The features are very limited for now.
$ npm install -g mml2smf
$ mml2smf test.mml
$ mml2smf test.mml -o output.mid
$ mml2smf -m cdefg -o test.mid
$ mml2smf -m "t140 o5l8q7 ccggaag4 ffeeddc4; o4l8 cgegcgeg >b<gfg>b<gc4" -o test.midimport mml2smf from 'mml2smf'
const smf = mml2smf('cdefg') // returns Uint8ArrayMML (Music Macro Language)
| command | MML |
|---|---|
| Notes | c, d, e, f, g, a, b, +, - |
| Octave | o[octave], <, > (4) |
| Note Length | l[note length] (4) |
| Tempo | t[tempo] |
| Gate Time | q[1-8] (6) |
| Velocity | u[0-127] (100) |
| Channel Volume | v[0-127] |
| Pan | p[-64-63] |
| Expression Controller | E[0-127] |
| Program Change | @[0-127] |
| Control Change | B[0-119],[0-127] |
| Channel Aftertouch | D[0-127] |
| Key Shift | k[-127-127] (0) |
| Set MIDI Channel | C[1-16] (1) |
| Next Track and MIDI Channel | ; |
| Tie | ^ |
| Comment | //..., /*...*/ |
To launch:
$ npm startTo test:
$ npm testMIT
Katsuomi Kobayashi (@korinVR / @korinVR_en)