UNPKG

1.94 kBJavaScriptView Raw
1!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("twelvetet")):"function"==typeof define&&define.amd?define(["twelvetet"],n):e.TwelveTetFretboard=n(e.TwelveTet)}(this,function(e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var n=function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")},t=function(){function e(e,n){for(var t=0;n.length>t;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(n,t,r){return t&&e(n.prototype,t),r&&e(n,r),n}}();function r(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}function i(e){return r(e)&&e>=0}return function(){function o(t,i){var u,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:440;if(n(this,o),!/^\[object Array\]$/.test(Object.prototype.toString.call(u=t))||0>=u.length)throw new TypeError("Missing or invalid argument, 'tuning'. Non-empty array expected.");if(!function(e){return r(e)&&e>0}(i))throw new TypeError("Missing or invalid argument, 'numFrets'. Positive integer expected.");if(!function(e){return"number"==typeof e&&isFinite(e)&&e>0}(a))throw new TypeError("Missing or invalid argument, 'tuningFrequency'. Positive number expected.");var f=new e(a),s=this._positions=[];t.slice(0).reverse().forEach(function(e,n){for(var t=0;i>t;t++)s.push({pitch:f.pitch(e).next(t),stringIndex:n,fretIndex:t})})}return o.prototype.at=function(e,n){if(!i(e))throw new TypeError("Missing or invalid argument, 'aStringIndex'. Non-negative integer expected");if(!i(n))throw new TypeError("Missing or invalid argument, 'aFretIndex'. Non-negative integer expected.");var t=this._positions.find(function(t){return t.stringIndex===e&&t.fretIndex===n});return null!=t?t.pitch:null},t(o,[{key:"positions",get:function(){return this._positions.map(function(e){return Object.assign({},e)})}}]),o}()});