UNPKG

note-transposer

Version:
1 lines 5.96 kB
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){var parse=require("music-notation/pitch/parse");var str=require("music-notation/pitch/str");var operation=require("music-notation/operation")(parse,str);var transpose=operation(function(i,n){if(i===false)return n;else if(!Array.isArray(i)||!Array.isArray(n))return null;else if(i.length===1||n.length===1)return[n[0]+i[0]];var d=i.length===2&&n.length===2?null:n[2]||i[2];return[n[0]+i[0],n[1]+i[1],d]});if(typeof module==="object"&&module.exports)module.exports=transpose;if(typeof window!=="undefined")window.transpose=transpose},{"music-notation/operation":12,"music-notation/pitch/parse":13,"music-notation/pitch/str":14}],2:[function(require,module,exports){"use strict";module.exports=function(num){if(num<0)return Array(-num+1).join("b");else if(num>0)return Array(num+1).join("#");else return""}},{}],3:[function(require,module,exports){"use strict";var BASES=[[0,0],[2,-1],[4,-2],[-1,1],[1,0],[3,-1],[5,-2]];module.exports=function(step,alt,oct,dur){var base=BASES[step];alt=alt||0;var f=base[0]+7*alt;if(typeof oct==="undefined")return[f];var o=oct+base[1]-4*alt;if(typeof dur==="undefined")return[f,o];else return[f,o,dur]}},{}],4:[function(require,module,exports){"use strict";var BASES=[[3,1],[0,0],[4,0],[1,-1],[5,-1],[2,-2],[6,-2],[3,-3]];module.exports=function(arr){if(!Array.isArray(arr))return null;var index=(arr[0]+1)%7;if(index<0)index=7+index;var base=BASES[index];var alter=Math.floor((arr[0]+1)/7);var oct=arr.length===1?null:arr[1]-base[1]+alter*4;var dur=arr[2]||null;return[base[0],alter,oct,dur]}},{}],5:[function(require,module,exports){"use strict";var memoize=require("../memoize");var fromProps=require("../array/from-props");var INTERVAL=require("./regex");var TYPES="PMMPPMM";var QALT={P:{dddd:-4,ddd:-3,dd:-2,d:-1,P:0,A:1,AA:2,AAA:3,AAAA:4},M:{ddd:-4,dd:-3,d:-2,m:-1,M:0,A:1,AA:2,AAA:3,AAAA:4}};module.exports=memoize(function(str){var m=INTERVAL.exec(str);if(!m)return null;var dir=(m[2]||m[7])==="-"?-1:1;var num=+(m[3]||m[8])-1;var q=m[4]||m[6]||"";var simple=num%7;var alt;if(q==="")alt=0;else if(q[0]==="#")alt=q.length;else if(q[0]==="b")alt=-q.length;else{alt=QALT[TYPES[simple]][q];if(typeof alt==="undefined")return null}var oct=Math.floor(num/7);var arr=fromProps(simple,alt,oct);return dir===1?arr:[-arr[0],-arr[1]]})},{"../array/from-props":3,"../memoize":8,"./regex":6}],6:[function(require,module,exports){var TONAL="([-+]?)(\\d+)(d{1,4}|m|M|P|A{1,4}|b{1,4}|#{1,4}|)";var STRICT="(AA|A|P|M|m|d|dd)([-+]?)(\\d+)";var COMPOSE="(?:("+TONAL+")|("+STRICT+"))";module.exports=new RegExp("^"+COMPOSE+"$")},{}],7:[function(require,module,exports){"use strict";var props=require("../array/to-props");var cache={};module.exports=function(arr){if(!Array.isArray(arr)||arr.length!==2)return null;var str="|"+arr[0]+"|"+arr[1];return str in cache?cache[str]:cache[str]=build(arr)};var ALTER={P:["dddd","ddd","dd","d","P","A","AA","AAA","AAAA"],M:["ddd","dd","d","m","M","A","AA","AAA","AAAA"]};var TYPES="PMMPPMM";function build(coord){var p=props(coord);var t=TYPES[p[0]];var dir,num,alt;if(p[2]<0){dir=-1;num=8-p[0]-7*(p[2]+1);alt=t==="P"?-p[1]:-(p[1]+1)}else{dir=1;num=p[0]+1+7*p[2];alt=p[1]}var q=ALTER[t][4+alt];return dir*num+q}},{"../array/to-props":4}],8:[function(require,module,exports){"use strict";module.exports=function(fn){var cache={};return function(str){if(typeof str!=="string")return null;return str in cache?cache[str]:cache[str]=fn(str)}}},{}],9:[function(require,module,exports){"use strict";var memoize=require("../memoize");var R=require("./regex");var BASES={C:[0,0],D:[2,-1],E:[4,-2],F:[-1,1],G:[1,0],A:[3,-1],B:[5,-2]};module.exports=memoize(function(str){var m=R.exec(str);if(!m||m[5])return null;var base=BASES[m[1].toUpperCase()];var alt=m[2].replace(/x/g,"##").length;if(m[2][0]==="b")alt*=-1;var fifths=base[0]+7*alt;if(!m[3])return[fifths];var oct=+m[3]+base[1]-4*alt;var dur=m[4]?+m[4].substring(1):null;return[fifths,oct,dur]})},{"../memoize":8,"./regex":10}],10:[function(require,module,exports){"use strict";module.exports=/^([a-gA-G])(#{1,}|b{1,}|x{1,}|)(-?\d*)(\/\d+|)\s*(.*)\s*$/},{}],11:[function(require,module,exports){"use strict";var props=require("../array/to-props");var acc=require("../accidentals/str");var cache={};module.exports=function(arr){if(!Array.isArray(arr)||arr.length<1||arr.length===2)return null;var str="|"+arr[0]+"|"+arr[1]+"|"+arr[2];return str in cache?cache[str]:cache[str]=build(arr)};var LETTER=["C","D","E","F","G","A","B"];function build(coord){var p=props(coord);return LETTER[p[0]]+acc(p[1])+(p[2]!==null?p[2]:"")+(p[3]!==null?"/"+p[3]:"")}},{"../accidentals/str":2,"../array/to-props":4}],12:[function(require,module,exports){"use strict";function curry(fn,arity){if(arity===1)return fn;return function(a,b){if(arguments.length===1)return function(c){return fn(a,c)};return fn(a,b)}}module.exports=function op(parse,str,fn){if(arguments.length===2)return function(f){return op(parse,str,f)};return curry(function(a,b){var ac=parse(a);var bc=parse(b);if(!ac&&!bc)return fn(a,b);var v=fn(ac||a,bc||b);return str(v)||v},fn.length)}},{}],13:[function(require,module,exports){var note=require("../note/parse");var interval=require("../interval/parse");module.exports=function(n){return note(n)||interval(n)}},{"../interval/parse":5,"../note/parse":9}],14:[function(require,module,exports){var note=require("../note/str");var interval=require("../interval/str");module.exports=function(n){return note(n)||interval(n)}},{"../interval/str":7,"../note/str":11}]},{},[1]);