Lightweight virtual web piano. There is only one sample per octave, however samples are mixed with each other for realistic sound with correct full-length sustain. Lowpass filters are used to emulate dynamics. This instrument works well with sustain pedal.
Simply copy openWebPiano.js and audio folder. See index.html for the example.
- init(context) - load all samples and start;
- noteOn(note 21 - 105, velocity 0 - 127 ) - start a note with a particular velocity level in standard MIDI format;
- noteOff(note) - stop a note;
- sustain(value) - any value higher then 0 switches sustain on, 0 value switches sustain off.
<script src="OpenWebPiano.js"></script>
<script>
var audioCtx = new AudioContext();
openWebPiano.init(audioCtx);
//on event(note,velocity) ->
openWebPiano.noteOn(note, velocity);
</script>