diff --git a/js/MIDI/LoadPlugin.js b/js/MIDI/LoadPlugin.js index 74c01adc..73f2c369 100644 --- a/js/MIDI/LoadPlugin.js +++ b/js/MIDI/LoadPlugin.js @@ -65,6 +65,8 @@ MIDI.loadPlugin = function(conf) { MIDI.supports = types; connect[api](filetype, instruments, conf); }); + + MIDI.detectProgramChange = conf.detectProgram || false; }; /// diff --git a/js/MIDI/Player.js b/js/MIDI/Player.js index bfa4e3bf..2f5307c2 100644 --- a/js/MIDI/Player.js +++ b/js/MIDI/Player.js @@ -235,6 +235,15 @@ var startAudio = function (currentTime, fromCache) { interval: scheduleTracking(channel, note, queuedTime, offset, 128) }); break; + case 'programChange': + if(MIDI.detectProgramChange) { + eventQueue.push({ + event: event, + source: MIDI.programChange(channel, event.programNumber), + interval: scheduleTracking(channel, note, queuedTime, offset, 128) + }); + } + break; default: break; }