1.1.0 • Published 10 years ago
mml-emitter v1.1.0
mml-emitter
MML(Music Macro Language) event emitter for Web Audio API
Installation
$ npm install mml-emitterdownloads:
API
MMLEmitter
constructor(source: string, config = {})
Instance methods
Also implements methods from the interface EventEmitter.
start([ t0: number ]): voidstop([ t0: number ]): void
Events
notetype: "note"playbackTime: numbertrackNumber: numbernoteNumber: numberduration: numbervelocity: numberquantize: number
endtype: "end"playbackTime: numbertrackNumber: number
end:alltype: "end:all"playbackTime: number
Example
import MMLEmitter from "mml-emitter";
let mml = "t200 o6 l8 e g > e c d g";
let config = { context: audioContext };
let mmlEmitter = new MMLEmitter(mml, config);
mmlEmitter.on("note", (e) => {
console.log("NOTE: " + JSON.stringify(e));
});
mmlEmitter.on("end:all", (e) => {
console.log("END : " + JSON.stringify(e));
mmlEmitter.stop();
});
mmlEmitter.start();Demo
See Also
- MML Syntax
- MMLIterator / MML(Music Macro Language) Iterator
- Configuration
- WebAudioScheduler / Event Scheduler for Web Audio API
- NoteNumber to Frequency
mtof = m => 440 * Math.pow(2, (m - 69) / 12)
License
MIT