1.2.0 • Published 8 years ago

jasmid-module v1.2.0

Weekly downloads
10
License
SEE LICENSE IN LI...
Repository
github
Last release
8 years ago

Forked from the Jasmid project and refactored into AMD/CommonJS modules

jasmid - A Javascript MIDI file reader and synthesiser

Originally presented at BarCamp London 8, 13-14 November 2010

Instructions: Open index.html in browser. Turn up volume. Click on link.

Sound output is via one of the following mechanisms, according to what your browser supports:

The code: stream.js - helper library for reading a string as a stream of typed data midifile.js - parses the MIDI file format into a header and a list of tracks, each consisting of a list of event objects replayer.js - steps over the data structure generated by midifile.js and calls the appropriate operations on the synthesiser synth.js - audio synthesiser; generates waveforms according to tweakable parameters audio.js - passes the generated waveform to either the Audio Data API or the Flash fallback widget (da.swf)

Limitations:

  • The only event types supported by replayer.js are note on, note off, tempo change and program change
  • There are currently only two instrument presets defined in synth.js - one for strings and a 'piano' one for everything else - and neither of them are particularly good (just a single volume-modulated sine wave).

Matt Westcott matt@west.co.tt - @gasmanic - http://matt.west.co.tt/