summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorpepper <pepper@chimecrisis.com>2014-05-15 19:06:59 -0700
committerpepper <pepper@chimecrisis.com>2014-05-15 19:06:59 -0700
commit93e654a02cef3d5913a2088d4c397418dc0cee2f (patch)
treebfad328857e5bcc10906a594470ccc12875d936b /README
doing this
Diffstat (limited to 'README')
-rw-r--r--README37
1 files changed, 37 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..543c840
--- /dev/null
+++ b/README
@@ -0,0 +1,37 @@
+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 <matt@west.co.tt> - @gasmanic - http://matt.west.co.tt/