添加一些关于midi播放的项目
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# Midifile.js
|
||||
|
||||
This module parses the Standard Midi File.
|
||||
|
||||
The code was modified to adapt to the 'require' way of nodejs. Irrelevant code have been removed.
|
||||
|
||||
The SMF parser part of the jasmid project is used. See jasmid's README and LICENSE for more info
|
||||
|
||||
Jasmid's original repository: https://github.com/gasman/jasmid
|
||||
|
||||
# JASMID Original Readme
|
||||
|
||||
```
|
||||
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:
|
||||
* Mozilla Audio Data API <https://wiki.mozilla.org/Audio_Data_API>
|
||||
* Web Audio API
|
||||
<https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html>
|
||||
* a Flash fallback originally taken from dynamicaudio.js by Ben Firshman
|
||||
<https://github.com/bfirsh/dynamicaudio.js> and hacked around by me.
|
||||
|
||||
|
||||
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 <[email protected]> - @gasmanic - http://matt.west.co.tt/
|
||||
```
|
||||
Reference in New Issue
Block a user