diff options
author | Brian Picciano <mediocregopher@gmail.com> | 2021-07-31 11:35:39 -0600 |
---|---|---|
committer | Brian Picciano <mediocregopher@gmail.com> | 2021-07-31 11:35:39 -0600 |
commit | f1998c321a4eec6d75b58d84aa8610971bf21979 (patch) | |
tree | a90783eb296cc50e1c48433f241624f26b99be27 /src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js | |
parent | 03a35dcc38b055f15df160bd300969e3b703d4b1 (diff) |
move static files into static sub-dir, refactor nix a bit
Diffstat (limited to 'src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js')
-rw-r--r-- | src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js b/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js deleted file mode 100644 index 33e244b..0000000 --- a/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - ---------------------------------------------------------------------- - Web MIDI API - Native Soundbanks - ---------------------------------------------------------------------- - http://webaudio.github.io/web-midi-api/ - ---------------------------------------------------------------------- -*/ - -(function(root) { 'use strict'; - - var plugin = null; - var output = null; - var channels = []; - var midi = root.WebMIDI = {api: 'webmidi'}; - midi.send = function(data, delay) { // set channel volume - output.send(data, delay * 1000); - }; - - midi.setController = function(channel, type, value, delay) { - output.send([channel, type, value], delay * 1000); - }; - - midi.setVolume = function(channel, volume, delay) { // set channel volume - output.send([0xB0 + channel, 0x07, volume], delay * 1000); - }; - - midi.programChange = function(channel, program, delay) { // change patch (instrument) - output.send([0xC0 + channel, program], delay * 1000); - }; - - midi.pitchBend = function(channel, program, delay) { // pitch bend - output.send([0xE0 + channel, program], delay * 1000); - }; - - midi.noteOn = function(channel, note, velocity, delay) { - output.send([0x90 + channel, note, velocity], delay * 1000); - }; - - midi.noteOff = function(channel, note, delay) { - output.send([0x80 + channel, note, 0], delay * 1000); - }; - - midi.chordOn = function(channel, chord, velocity, delay) { - for (var n = 0; n < chord.length; n ++) { - var note = chord[n]; - output.send([0x90 + channel, note, velocity], delay * 1000); - } - }; - - midi.chordOff = function(channel, chord, delay) { - for (var n = 0; n < chord.length; n ++) { - var note = chord[n]; - output.send([0x80 + channel, note, 0], delay * 1000); - } - }; - - midi.stopAllNotes = function() { - output.cancel(); - for (var channel = 0; channel < 16; channel ++) { - output.send([0xB0 + channel, 0x7B, 0]); - } - }; - - midi.connect = function(opts) { - root.setDefaultPlugin(midi); - var errFunction = function(err) { // well at least we tried! - if (window.AudioContext) { // Chrome - opts.api = 'webaudio'; - } else if (window.Audio) { // Firefox - opts.api = 'audiotag'; - } else { // no support - return; - } - root.loadPlugin(opts); - }; - /// - navigator.requestMIDIAccess().then(function(access) { - plugin = access; - var pluginOutputs = plugin.outputs; - if (typeof pluginOutputs == 'function') { // Chrome pre-43 - output = pluginOutputs()[0]; - } else { // Chrome post-43 - output = pluginOutputs[0]; - } - if (output === undefined) { // nothing there... - errFunction(); - } else { - opts.onsuccess && opts.onsuccess(); - } - }, errFunction); - }; - -})(MIDI);
\ No newline at end of file |