UNPKG

midi-json-parser

Version:

This module is parsing midi files into a human-readable JSON object.

28 lines (23 loc) 17.8 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('midi-json-parser-broker')) : typeof define === 'function' && define.amd ? define(['exports', 'midi-json-parser-broker'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.midiJsonParser = {}, global.midiJsonParserBroker)); })(this, (function (exports, midiJsonParserBroker) { 'use strict'; // This is the minified and stringified code of the midi-json-parser-worker package. var worker = "(()=>{var e={45:(e,t,r)=>{var n=r(738).default;e.exports=function(e,t){if(\"object\"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||\"default\");if(\"object\"!=n(o))return o;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},172:e=>{e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},243:function(e,t,r){!function(e,t){\"use strict\";var r=function(e){return void 0!==e.channel},n=function(e){return e.toString(16).toUpperCase().padStart(2,\"0\")},o=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.byteLength-(t-e.byteOffset),o=t+e.byteOffset,i=[],u=new Uint8Array(e.buffer,o,r),a=0;a<r;a+=1)i[a]=n(u[a]);return i.join(\"\")},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.byteLength-(t-e.byteOffset),n=t+e.byteOffset,o=new Uint8Array(e.buffer,n,r);return String.fromCharCode.apply(null,o)};function u(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?u(Object(n),!0).forEach((function(r){t(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var s=function(e){for(var t=new DataView(e),r=c(t),n=14,o=[],i=0,u=r.numberOfTracks;i<u;i+=1){var a=void 0,s=d(t,n);n=s.offset,a=s.track,o.push(a)}return{division:r.division,format:r.format,tracks:o}},f=function(e,t,r){var n,o=y(e,t),i=o.offset,u=o.value,s=e.getUint8(i);return a(a({},n=240===s?v(e,i+1):255===s?l(e,i+1):p(s,e,i+1,r)),{},{event:a(a({},n.event),{},{delta:u}),eventTypeByte:s})},c=function(e){if(e.byteLength<14)throw new Error(\"Expected at least 14 bytes instead of \".concat(e.byteLength));if(\"MThd\"!==i(e,0,4))throw new Error('Unexpected characters \"'.concat(i(e,0,4),'\" found instead of \"MThd\"'));if(6!==e.getUint32(4))throw new Error(\"The header has an unexpected length of \".concat(e.getUint32(4),\" instead of 6\"));var t=e.getUint16(8),r=e.getUint16(10);return{division:e.getUint16(12),format:t,numberOfTracks:r}},l=function(e,t){var r,u=e.getUint8(t),a=y(e,t+1),s=a.offset,f=a.value;if(1===u)r={text:i(e,s,f)};else if(2===u)r={copyrightNotice:i(e,s,f)};else if(3===u)r={trackName:i(e,s,f)};else if(4===u)r={instrumentName:i(e,s,f)};else if(5===u)r={lyric:i(e,s,f)};else if(6===u)r={marker:i(e,s,f)};else if(7===u)r={cuePoint:i(e,s,f)};else if(8===u)r={programName:i(e,s,f)};else if(9===u)r={deviceName:i(e,s,f)};else if(10===u||11===u||12===u||13===u||14===u||15===u)r={metaTypeByte:n(u),text:i(e,s,f)};else if(32===u)r={channelPrefix:e.getUint8(s)};else if(33===u)r={midiPort:e.getUint8(s)};else if(47===u)r={endOfTrack:!0};else if(81===u)r={setTempo:{microsecondsPerQuarter:(e.getUint8(s)<<16)+(e.getUint8(s+1)<<8)+e.getUint8(s+2)}};else if(84===u){var c,l=e.getUint8(s);96&l?32==(96&l)?c=25:64==(96&l)?c=29:96&~l||(c=30):c=24,r={smpteOffset:{frame:e.getUint8(s+3),frameRate:c,hour:31&l,minutes:e.getUint8(s+1),seconds:e.getUint8(s+2),subFrame:e.getUint8(s+4)}}}else if(88===u)r={timeSignature:{denominator:Math.pow(2,e.getUint8(s+1)),metronome:e.getUint8(s+2),numerator:e.getUint8(s),thirtyseconds:e.getUint8(s+3)}};else if(89===u)r={keySignature:{key:e.getInt8(s),scale:e.getInt8(s+1)}};else{if(127!==u)throw new Error('Cannot parse a meta event with a type of \"'.concat(n(u),'\"'));r={sequencerSpecificData:o(e,s,f)}}return{event:r,offset:s+f}},p=function(e,t,r,o){var i,u=128&e?null:o,a=(null===u?e:u)>>4,s=null===u?r:r-1;if(8===a)i={noteOff:{noteNumber:t.getUint8(s),velocity:t.getUint8(s+1)}},s+=2;else if(9===a){var f=t.getUint8(s),c=t.getUint8(s+1);i=0===c?{noteOff:{noteNumber:f,velocity:c}}:{noteOn:{noteNumber:f,velocity:c}},s+=2}else if(10===a)i={keyPressure:{noteNumber:t.getUint8(s),pressure:t.getUint8(s+1)}},s+=2;else if(11===a)i={controlChange:{type:t.getUint8(s),value:t.getUint8(s+1)}},s+=2;else if(12===a)i={programChange:{programNumber:t.getUint8(s)}},s+=1;else if(13===a)i={channelPressure:{pressure:t.getUint8(s)}},s+=1;else{if(14!==a)throw new Error('Cannot parse a midi event with a type of \"'.concat(n(a),'\"'));i={pitchBend:t.getUint8(s)|t.getUint8(s+1)<<7},s+=2}return i.channel=15&(null===u?e:u),{event:i,offset:s}},v=function(e,t){var r=y(e,t),n=r.offset,i=r.value;return{event:{sysex:o(e,n,i)},offset:n+i}},d=function(e,t){if(\"MTrk\"!==i(e,t,4))throw new Error('Unexpected characters \"'.concat(i(e,t,4),'\" found instead of \"MTrk\"'));for(var n=[],o=e.getUint32(t+4)+t+8,u=null,a=t+8;a<o;){var s=f(e,a,u),c=s.event,l=s.eventTypeByte;n.push(c),a=s.offset,r(c)&&(128&l)>0&&(u=l)}return{offset:a,track:n}},y=function(e,t){for(var r=t,n=0;;){var o=e.getUint8(r);if(r+=1,!(o>127))return{offset:r,value:n+=o};n+=127&o,n<<=7}};e.createWorker(self,{parse:function(e){var t=e.arrayBuffer;return{result:s(t)}}})}(r(623),r(693))},293:e=>{function t(e,t,r,n,o,i,u){try{var a=e[i](u),s=a.value}catch(e){return void r(e)}a.done?t(s):Promise.resolve(s).then(n,o)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(o,i){var u=e.apply(r,n);function a(e){t(u,o,i,a,s,\"next\",e)}function s(e){t(u,o,i,a,s,\"throw\",e)}a(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},373:e=>{e.exports=function(e){var t=Object(e),r=[];for(var n in t)r.unshift(n);return function e(){for(;r.length;)if((n=r.pop())in t)return e.value=n,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},389:function(e,t){!function(e){\"use strict\";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,i=2*o,u=function(e,t){return function(r){var u=t.get(r),a=void 0===u?r.size:u<i?u+1:0;if(!r.has(a))return e(r,a);if(r.size<o){for(;r.has(a);)a=Math.floor(Math.random()*i);return e(r,a)}if(r.size>n)throw new Error(\"Congratulations, you created a collection of unique numbers which uses all available integers!\");for(;r.has(a);)a=Math.floor(Math.random()*n);return e(r,a)}},a=new WeakMap,s=r(a),f=u(s,a),c=t(f);e.addUniqueNumber=c,e.generateUniqueNumber=f}(t)},546:e=>{function t(r,n,o,i){var u=Object.defineProperty;try{u({},\"\",{})}catch(r){u=0}e.exports=t=function(e,r,n,o){if(r)u?u(e,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):e[r]=n;else{var i=function(r,n){t(e,r,(function(e){return this._invoke(r,n,e)}))};i(\"next\",0),i(\"throw\",1),i(\"return\",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,n,o,i)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},579:(e,t,r)=>{var n=r(738).default;e.exports=function(e){if(null!=e){var t=e[\"function\"==typeof Symbol&&Symbol.iterator||\"@@iterator\"],r=0;if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(n(e)+\" is not iterable\")},e.exports.__esModule=!0,e.exports.default=e.exports},623:function(e,t,r){!function(e,t,r,n,o){\"use strict\";var i={INTERNAL_ERROR:-32603,INVALID_PARAMS:-32602,METHOD_NOT_FOUND:-32601},u=function(e,t){return Object.assign(new Error(e),{status:t})},a=function(e){return u('The requested method called \"'.concat(e,'\" is not supported.'),i.METHOD_NOT_FOUND)},s=function(e){return u('The handler of the method called \"'.concat(e,'\" returned no required result.'),i.INTERNAL_ERROR)},f=function(e){return u('The handler of the method called \"'.concat(e,'\" returned an unexpected result.'),i.INTERNAL_ERROR)},c=function(e){return u('The specified parameter called \"portId\" with the given value \"'.concat(e,'\" does not identify a port connected to this worker.'),i.INVALID_PARAMS)},l=function(e,n){return function(){var o=t(r.mark((function t(o){var i,u,c,l,p,v,d,y,h,b,x,g,m,w,O;return r.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=o.data,u=i.id,c=i.method,l=i.params,p=n[c],t.prev=1,void 0!==p){t.next=2;break}throw a(c);case 2:if(void 0!==(v=void 0===l?p():p(l))){t.next=3;break}throw s(c);case 3:if(!(v instanceof Promise)){t.next=5;break}return t.next=4,v;case 4:w=t.sent,t.next=6;break;case 5:w=v;case 6:if(d=w,null!==u){t.next=8;break}if(void 0===d.result){t.next=7;break}throw f(c);case 7:t.next=10;break;case 8:if(void 0!==d.result){t.next=9;break}throw f(c);case 9:y=d.result,h=d.transferables,b=void 0===h?[]:h,e.postMessage({id:u,result:y},b);case 10:t.next=12;break;case 11:t.prev=11,O=t.catch(1),x=O.message,g=O.status,m=void 0===g?-32603:g,e.postMessage({error:{code:m,message:x},id:u});case 12:case\"end\":return t.stop()}}),t,null,[[1,11]])})));return function(e){return o.apply(this,arguments)}}()},p=function(){return new Promise((function(e){var t=new ArrayBuffer(0),r=new MessageChannel,n=r.port1,o=r.port2;n.onmessage=function(t){var r=t.data;return e(null!==r)},o.postMessage(t,[t])}))};function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var y=new Map,h=function(e,n,i){return d(d({},n),{},{connect:function(t){var r=t.port;r.start();var i=e(r,n),u=o.generateUniqueNumber(y);return y.set(u,(function(){i(),r.close(),y.delete(u)})),{result:u}},disconnect:function(e){var t=e.portId,r=y.get(t);if(void 0===r)throw c(t);return r(),{result:null}},isSupported:function(){var e=t(r.mark((function e(){var t,n,o;return r.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,p();case 1:if(!e.sent){e.next=5;break}if(!((t=i())instanceof Promise)){e.next=3;break}return e.next=2,t;case 2:o=e.sent,e.next=4;break;case 3:o=t;case 4:return n=o,e.abrupt(\"return\",{result:n});case 5:return e.abrupt(\"return\",{result:!1});case 6:case\"end\":return e.stop()}}),e)})));function n(){return e.apply(this,arguments)}return n}()})},b=function(e,t){var r=h(b,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return!0}),n=l(e,r);return e.addEventListener(\"message\",n),function(){return e.removeEventListener(\"message\",n)}};e.createWorker=b,e.isSupported=p}(t,r(293),r(756),r(693),r(389))},633:(e,t,r)=>{var n=r(172),o=r(993),i=r(869),u=r(887),a=r(791),s=r(373),f=r(579);function c(){\"use strict\";var t=o(),r=t.m(c),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===l||\"GeneratorFunction\"===(t.displayName||t.name))}var v={throw:1,return:2,break:3,continue:3};function d(e){var t,r;return function(n){t||(t={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(e,t){return r(n.a,v[e],t)},delegateYield:function(e,o,i){return t.resultName=o,r(n.d,f(e),i)},finish:function(e){return r(n.f,e)}},r=function(e,r,o){n.p=t.prev,n.n=t.next;try{return e(r,o)}finally{t.next=n.n}}),t.resultName&&(t[t.resultName]=n.v,t.resultName=void 0),t.sent=n.v,t.next=n.n;try{return e.call(this,t)}finally{n.p=t.prev,n.n=t.next}}}return(e.exports=c=function(){return{wrap:function(e,r,n,o){return t.w(d(e),r,n,o&&o.reverse())},isGeneratorFunction:p,mark:t.m,awrap:function(e,t){return new n(e,t)},AsyncIterator:a,async:function(e,t,r,n,o){return(p(t)?u:i)(d(e),t,r,n,o)},keys:s,values:f}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},693:(e,t,r)=>{var n=r(736);e.exports=function(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},736:(e,t,r)=>{var n=r(738).default,o=r(45);e.exports=function(e){var t=o(e,\"string\");return\"symbol\"==n(t)?t:t+\"\"},e.exports.__esModule=!0,e.exports.default=e.exports},738:e=>{function t(r){return e.exports=t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},756:(e,t,r)=>{var n=r(633)();e.exports=n;try{regeneratorRuntime=n}catch(e){\"object\"==typeof globalThis?globalThis.regeneratorRuntime=n:Function(\"r\",\"regeneratorRuntime = r\")(n)}},791:(e,t,r)=>{var n=r(172),o=r(546);e.exports=function e(t,r){function i(e,o,u,a){try{var s=t[e](o),f=s.value;return f instanceof n?r.resolve(f.v).then((function(e){i(\"next\",e,u,a)}),(function(e){i(\"throw\",e,u,a)})):r.resolve(f).then((function(e){s.value=e,u(s)}),(function(e){return i(\"throw\",e,u,a)}))}catch(e){a(e)}}var u;this.next||(o(e.prototype),o(e.prototype,\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@asyncIterator\",(function(){return this}))),o(this,\"_invoke\",(function(e,t,n){function o(){return new r((function(t,r){i(e,n,t,r)}))}return u=u?u.then(o,o):o()}),!0)},e.exports.__esModule=!0,e.exports.default=e.exports},869:(e,t,r)=>{var n=r(887);e.exports=function(e,t,r,o,i){var u=n(e,t,r,o,i);return u.next().then((function(e){return e.done?e.value:u.next()}))},e.exports.__esModule=!0,e.exports.default=e.exports},887:(e,t,r)=>{var n=r(993),o=r(791);e.exports=function(e,t,r,i,u){return new o(n().w(e,t,r,i),u||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},993:(e,t,r)=>{var n=r(546);function o(){var t,r,i=\"function\"==typeof Symbol?Symbol:{},u=i.iterator||\"@@iterator\",a=i.toStringTag||\"@@toStringTag\";function s(e,o,i,u){var a=o&&o.prototype instanceof c?o:c,s=Object.create(a.prototype);return n(s,\"_invoke\",function(e,n,o){var i,u,a,s=0,c=o||[],l=!1,p={p:0,n:0,v:t,a:v,f:v.bind(t,4),d:function(e,r){return i=e,u=0,a=t,p.n=r,f}};function v(e,n){for(u=e,a=n,r=0;!l&&s&&!o&&r<c.length;r++){var o,i=c[r],v=p.p,d=i[2];e>3?(o=d===n)&&(a=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=t):i[0]<=v&&((o=e<2&&v<i[1])?(u=0,p.v=n,p.n=i[1]):v<d&&(o=e<3||i[0]>n||n>d)&&(i[4]=e,i[5]=n,p.n=d,u=0))}if(o||e>1)return f;throw l=!0,n}return function(o,c,d){if(s>1)throw TypeError(\"Generator is already running\");for(l&&1===c&&v(c,d),u=c,a=d;(r=u<2?t:a)||!l;){i||(u?u<3?(u>1&&(p.n=-1),v(u,a)):p.n=a:p.v=a);try{if(s=2,i){if(u||(o=\"next\"),r=i[o]){if(!(r=r.call(i,a)))throw TypeError(\"iterator result is not an object\");if(!r.done)return r;a=r.value,u<2&&(u=0)}else 1===u&&(r=i.return)&&r.call(i),u<2&&(a=TypeError(\"The iterator does not provide a '\"+o+\"' method\"),u=1);i=t}else if((r=(l=p.n<0)?a:e.call(n,p))!==f)break}catch(e){i=t,u=1,a=e}finally{s=1}}return{value:r,done:l}}}(e,i,u),!0),s}var f={};function c(){}function l(){}function p(){}r=Object.getPrototypeOf;var v=[][u]?r(r([][u]())):(n(r={},u,(function(){return this})),r),d=p.prototype=c.prototype=Object.create(v);function y(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,n(e,a,\"GeneratorFunction\")),e.prototype=Object.create(d),e}return l.prototype=p,n(d,\"constructor\",p),n(p,\"constructor\",l),l.displayName=\"GeneratorFunction\",n(p,a,\"GeneratorFunction\"),n(d),n(d,a,\"Generator\"),n(d,u,(function(){return this})),n(d,\"toString\",(function(){return\"[object Generator]\"})),(e.exports=o=function(){return{w:s,m:y}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{\"use strict\";r(243)})()})();"; // tslint:disable-line:max-line-length var blob = new Blob([worker], { type: 'application/javascript; charset=utf-8' }); var url = URL.createObjectURL(blob); var midiJsonParser = midiJsonParserBroker.load(url); var connect = midiJsonParser.connect; var disconnect = midiJsonParser.disconnect; var isSupported = midiJsonParser.isSupported; // @todo Remove type annotation when possible. var parseArrayBuffer = midiJsonParser.parseArrayBuffer; URL.revokeObjectURL(url); exports.connect = connect; exports.disconnect = disconnect; exports.isSupported = isSupported; exports.parseArrayBuffer = parseArrayBuffer; }));