diff --git a/bower.json b/bower.json index 12bb9d4..02817b7 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "band.js", - "version": "0.3.0", + "version": "0.3.1", "main": "build/band.min.js", "ignore": [ "**/.*", diff --git a/build/band.min.js b/build/band.min.js index b23abf6..4d5ad7b 100644 --- a/build/band.min.js +++ b/build/band.min.js @@ -1,2 +1,2 @@ -/*! band - v0.3.0 - 2014-01-30 */ -(function(){function a(a,f){function g(){A+=s.currentTime-n;var a=Math.round(A);a!=C&&(setTimeout(function(){p(a)},1),C=a),n=s.currentTime}function h(a){return x[a]*m/l*10}function i(){clearTimeout(o),z.forEach(function(a){a.node&&a.node.stop(0)}),r.end()}function j(a,b,c){if("undefined"==typeof c&&(c=!1),"up"!==a&&"down"!==a)throw new Error("Direction must be either up or down.");I="down"===a;var d=100*v,f=function(){if(d>0){d-=4,d=0>d?0:d;var g="up"===a?100*v-d:d;u.gain.value=g/100,e(f)}else"function"==typeof b&&b(),c&&(I=!I,u.gain.value=v)};f()}if(a||(a="equalTemperament"),f||(f="northAmerican"),"undefined"==typeof c.tuning[a])throw new Error(a+" is not a valid tuning pack.");if("undefined"==typeof c.rhythm[f])throw new Error(f+" is not a valid rhythm pack.");var k,l,m,n,o,p,q,r=this,s=new(window.AudioContext||window.webkitAudioContext),t=s.createGain(),u=s.createGain(),v=1,w=c.tuning[a],x=c.rhythm[f],y=[],z=[],A=0,B=0,C=0,D=50,E=!1,F=!1,G=!1,H=!1,I=!1,J=function(a){r.stop(!1),G?r.play():"function"==typeof a&&a()},K=function(){!E&&F&&(A>B?J(q):(g(),e(K)))},L=function(){function a(a,d){if(a||(a="sine"),d||(d="oscillators"),"undefined"==typeof c.instrument[d])throw new Error(d+" is not a currently loaded Instrument Pack.");var e=this,f=0,g=0,i=1,j=[],k=c.instrument[d](a,s);this.setVolume=function(a){return a>1&&(a/=100),i=a,e},this.note=function(a,b,c){if("undefined"==typeof x[a])throw new Error(a+" is not a correct rhythm.");var d=h(a),g=c?0:.05*d;return b&&(b=b.split(","),b.forEach(function(a){if(a=a.trim(),"undefined"==typeof w[a]&&(a=parseFloat(a),isNaN(a)||0>a))throw new Error(a+" is not a valid pitch.")})),j.push({pitch:b,duration:d,articulationGap:g,tie:c,startTime:f,volumeLevel:i/4,stopTime:f+d-g}),f+=d,e},this.rest=function(a){if("undefined"==typeof x[a])throw new Error(a+" is not a correct rhythm.");var b=h(a);return j.push({pitch:!1,duration:b,articulationGap:0,startTime:f,stopTime:f+b}),f+=b,e},this.repeatStart=function(){return g=j.length,e},this.repeatFromBeginning=function(a){return g=0,e.repeat(a),e},this.repeat=function(a){a="undefined"==typeof a?1:a;for(var c=j.slice(g),d=0;a>d;d++)c.forEach(function(a){var c=b(a);c.startTime=f,c.stopTime=f+c.duration-c.articulationGap,j.push(c),f+=c.duration});return e},this.finish=function(){var a=0;j.forEach(function(b){a+=b.duration}),a>B&&(B=a),y.push({instrument:k,sounds:j,bufferPosition:0,totalDuration:B})}}return a}();t.gain.value=0,t.connect(s.destination),u.gain.value=1,u.connect(s.destination),this.load=function(a){if(!a)throw new Error("JSON is required for this method to work.");if("undefined"==typeof a.instruments)throw new Error("You must define at least one instrument");if("undefined"==typeof a.notes)throw new Error("You must define notes for each instrument");"undefined"!=typeof a.timeSignature&&r.setTimeSignature(a.timeSignature[0],a.timeSignature[1]),"undefined"!=typeof a.tempo&&r.setTempo(a.tempo);var b={};for(var c in a.instruments)a.instruments.hasOwnProperty(c)&&(b[c]=r.createInstrument(a.instruments[c].name,a.instruments[c].pack));for(var d in a.notes)a.notes.hasOwnProperty(d)&&(a.notes[d].forEach(function(a){if("string"==typeof a){var c=a.split("|");"rest"===c[1]?b[d].rest(c[0]):b[d].note(c[0],c[1],c[2])}else"rest"===a.type?b[d].rest(a.rhythm):"note"===a.type&&b[d].note(a.rhythm,a.pitch,a.tie)}),b[d].finish());r.end()},this.createInstrument=function(a,b){return new L(a,b)},this.stop=function(a){F=!1,C=0,"undefined"==typeof a&&(a=!0),a&&!H?j("down",function(){A=0,i(),setTimeout(function(){p(C)},1)},!0):(A=0,i(),setTimeout(function(){p(C)},1))},this.setMasterVolume=function(a){a>1&&(a/=100),v=a,u.gain.value=v},this.mute=function(a){H=!0,j("down",a)},this.unmute=function(a){H=!1,j("up",a)},this.getTotalSeconds=function(){return Math.round(B)},this.setTicker=function(a){if("function"!=typeof a)throw new Error("Ticker must be a function.");p=a},this.end=function(){y.forEach(function(a){a.bufferPosition=0}),z=this.bufferSounds()},this.bufferSounds=function(a){a||(a=D);var b=[];return y.forEach(function(c){for(var d=a,e=0;d>e;e++){var f=c.sounds[c.bufferPosition+e];if("undefined"==typeof f)break;var g=f.pitch,h=f.startTime,i=f.stopTime,j=f.volumeLevel;if(A>h)d++;else if(!1!==g){var k=s.createGain();k.connect(u),k.gain.value=j,"undefined"==typeof g?b.push({startTime:h,stopTime:i,node:c.instrument.createSound(k),gain:k,volumeLevel:j}):g.forEach(function(a){b.push({startTime:h,stopTime:i,node:c.instrument.createSound(k,w[a.trim()]||parseFloat(a)),gain:k,volumeLevel:j})})}}c.bufferPosition+=d}),b},this.setTimeSignature=function(a,b){if("undefined"==typeof d[b])throw new Error("The bottom time signature is not supported.");k=a,l=d[b]},this.setTempo=function(a){m=60/a},this.play=function(){F=!0,E=!1,n=s.currentTime,K();var a=s.currentTime-A,b=function(b){b.forEach(function(b){var c=b.startTime+a,d=b.stopTime+a;b.tie||(c-=.001,d+=.001,b.gain.gain.setValueAtTime(0,c),b.gain.gain.linearRampToValueAtTime(b.volumeLevel,c+.001),b.gain.gain.setValueAtTime(b.volumeLevel,d-.001),b.gain.gain.linearRampToValueAtTime(0,d)),b.node.start(c),b.node.stop(d)})},c=function(){o=setTimeout(function(){if(F&!E){var a=r.bufferSounds();a.length>0&&(b(a),z=z.concat(a),c())}},5e3)};b(z),c(),I&&!H&&j("up")},this.onFinished=function(a){if("function"!=typeof a)throw new Error("onFinished callback must be a function.");q=a},this.pause=function(){E=!0,g(),H?i():j("down",function(){i()})},this.loop=function(a){G=a},this.setTime=function(a){A=parseInt(a),i(),F&&!E&&r.play()},this.setTempo(120),this.setTimeSignature(4,4)}function b(a){if(null==a||"object"!=typeof a)return a;var b=a.constructor();for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}var c={instrument:{},rhythm:{},tuning:{}},d={2:6,4:3,8:4.5};a.loadPack=function(a,b,d){if(-1===["tuning","rhythm","instrument"].indexOf(a))throw new Error(a=" is not a valid Pack Type.");if("undefined"!=typeof c[a][b])throw new Error("A(n) "+a+' pack with the name "'+b+'" has already been loaded.');c[a][b]=d};var e=this.requestAnimationFrame||this.mozRequestAnimationFrame||this.webkitRequestAnimationFrame||this.msRequestAnimationFrame;this.requestAnimationFrame=e,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=a:"function"==typeof define&&define.amd?define([],function(){return a}):this.BandJS=a}).call(function(){return this||("undefined"!=typeof window?window:global)}()),BandJS.loadPack("instrument","noises",function(a,b){function c(a){for(var c=2*b.sampleRate,d=b.createBuffer(1,c,b.sampleRate),e=d.getChannelData(0),f=0;c>f;f++)e[f]=2*Math.random()-1;var g=b.createBufferSource();return g.buffer=d,g.loop=!0,g.connect(a),g}function d(a){var c,d,e,f,g,h,i,j=2*b.sampleRate,k=b.createBuffer(1,j,b.sampleRate),l=k.getChannelData(0);c=d=e=f=g=h=i=0;for(var m=0;j>m;m++){var n=2*Math.random()-1;c=.99886*c+.0555179*n,d=.99332*d+.0750759*n,e=.969*e+.153852*n,f=.8665*f+.3104856*n,g=.55*g+.5329522*n,h=-.7616*h-.016898*n,l[m]=c+d+e+f+g+h+i+.5362*n,l[m]*=.11,i=.115926*n}var o=b.createBufferSource();return o.buffer=k,o.loop=!0,o.connect(a),o}function e(a){for(var c=2*b.sampleRate,d=b.createBuffer(1,c,b.sampleRate),e=d.getChannelData(0),f=0,g=0;c>g;g++){var h=2*Math.random()-1;e[g]=(f+.02*h)/1.02,f=e[g],e[g]*=3.5}var i=b.createBufferSource();return i.buffer=d,i.loop=!0,i.connect(a),i}var f=["white","pink","brown","brownian","red"];if(-1===f.indexOf(a))throw new Error(a+" is not a valid noise sound");return{createSound:function(b){switch(a){case"white":return c(b);case"pink":return d(b);case"brown":case"brownian":case"red":return e(b)}}}}),BandJS.loadPack("instrument","oscillators",function(a,b){var c={sine:0,square:1,sawtooth:2,triangle:3};if("undefined"==typeof c[a])throw new Error(a+" is not a valid Oscillator type");return{createSound:function(d,e){var f=b.createOscillator();return f.connect(d),f.type=c[a],f.frequency.value=e,f}}}),BandJS.loadPack("rhythm","european",{semibreve:1,dottedMinim:.75,minim:.5,dottedCrotchet:.375,tripletMinim:.33333334,crotchet:.25,dottedQuaver:.1875,tripletCrotchet:.166666667,quaver:.125,dottedSemiquaver:.09375,tripletQuaver:.083333333,semiquaver:.0625,tripletSemiquaver:.041666667,demisemiquaver:.03125}),BandJS.loadPack("rhythm","northAmerican",{whole:1,dottedHalf:.75,half:.5,dottedQuarter:.375,tripletHalf:.33333334,quarter:.25,dottedEighth:.1875,tripletQuarter:.166666667,eighth:.125,dottedSixteenth:.09375,tripletEighth:.083333333,sixteenth:.0625,tripletSixteenth:.041666667,thirtySecond:.03125}),BandJS.loadPack("tuning","equalTemperament",{C0:16.35,"C#0":17.32,Db0:17.32,D0:18.35,"D#0":19.45,Eb0:19.45,E0:20.6,F0:21.83,"F#0":23.12,Gb0:23.12,G0:24.5,"G#0":25.96,Ab0:25.96,A0:27.5,"A#0":29.14,Bb0:29.14,B0:30.87,C1:32.7,"C#1":34.65,Db1:34.65,D1:36.71,"D#1":38.89,Eb1:38.89,E1:41.2,F1:43.65,"F#1":46.25,Gb1:46.25,G1:49,"G#1":51.91,Ab1:51.91,A1:55,"A#1":58.27,Bb1:58.27,B1:61.74,C2:65.41,"C#2":69.3,Db2:69.3,D2:73.42,"D#2":77.78,Eb2:77.78,E2:82.41,F2:87.31,"F#2":92.5,Gb2:92.5,G2:98,"G#2":103.83,Ab2:103.83,A2:110,"A#2":116.54,Bb2:116.54,B2:123.47,C3:130.81,"C#3":138.59,Db3:138.59,D3:146.83,"D#3":155.56,Eb3:155.56,E3:164.81,F3:174.61,"F#3":185,Gb3:185,G3:196,"G#3":207.65,Ab3:207.65,A3:220,"A#3":233.08,Bb3:233.08,B3:246.94,C4:261.63,"C#4":277.18,Db4:277.18,D4:293.66,"D#4":311.13,Eb4:311.13,E4:329.63,F4:349.23,"F#4":369.99,Gb4:369.99,G4:392,"G#4":415.3,Ab4:415.3,A4:440,"A#4":466.16,Bb4:466.16,B4:493.88,C5:523.25,"C#5":554.37,Db5:554.37,D5:587.33,"D#5":622.25,Eb5:622.25,E5:659.26,F5:698.46,"F#5":739.99,Gb5:739.99,G5:783.99,"G#5":830.61,Ab5:830.61,A5:880,"A#5":932.33,Bb5:932.33,B5:987.77,C6:1046.5,"C#6":1108.73,Db6:1108.73,D6:1174.66,"D#6":1244.51,Eb6:1244.51,E6:1318.51,F6:1396.91,"F#6":1479.98,Gb6:1479.98,G6:1567.98,"G#6":1661.22,Ab6:1661.22,A6:1760,"A#6":1864.66,Bb6:1864.66,B6:1975.53,C7:2093,"C#7":2217.46,Db7:2217.46,D7:2349.32,"D#7":2489.02,Eb7:2489.02,E7:2637.02,F7:2793.83,"F#7":2959.96,Gb7:2959.96,G7:3135.96,"G#7":3322.44,Ab7:3322.44,A7:3520,"A#7":3729.31,Bb7:3729.31,B7:3951.07,C8:4186.01}); \ No newline at end of file +/*! band - v0.3.1 - 2014-03-09 */ +(function(){function a(a,f){function g(){A+=s.currentTime-n;var a=Math.round(A);a!=C&&(setTimeout(function(){p(a)},1),C=a),n=s.currentTime}function h(a){return x[a]*m/l*10}function i(){clearTimeout(o);for(var a=-1;++a0){d-=4,d=0>d?0:d;var g="up"===a?100*v-d:d;u.gain.value=g/100,e(f)}else"function"==typeof b&&b(),c&&(I=!I,u.gain.value=v)};f()}if(a||(a="equalTemperament"),f||(f="northAmerican"),"undefined"==typeof c.tuning[a])throw new Error(a+" is not a valid tuning pack.");if("undefined"==typeof c.rhythm[f])throw new Error(f+" is not a valid rhythm pack.");var k,l,m,n,o,p,q,r=this,s=new(window.AudioContext||window.webkitAudioContext),t=s.createGain(),u=s.createGain(),v=1,w=c.tuning[a],x=c.rhythm[f],y=[],z=[],A=0,B=0,C=0,D=50,E=!1,F=!1,G=!1,H=!1,I=!1,J=function(a){r.stop(!1),G?r.play():"function"==typeof a&&a()},K=function(){!E&&F&&(A>B?J(q):(g(),e(K)))},L=function(){function a(a,d){if(a||(a="sine"),d||(d="oscillators"),"undefined"==typeof c.instrument[d])throw new Error(d+" is not a currently loaded Instrument Pack.");var e=this,f=0,g=0,i=1,j=[],k=c.instrument[d](a,s);this.setVolume=function(a){return a>1&&(a/=100),i=a,e},this.note=function(a,b,c){if("undefined"==typeof x[a])throw new Error(a+" is not a correct rhythm.");var d=h(a),g=c?0:.05*d;if(b){b=b.split(",");for(var k=-1;++kl))throw new Error(l+" is not a valid pitch.")}}return j.push({pitch:b,duration:d,articulationGap:g,tie:c,startTime:f,volumeLevel:i/4,stopTime:f+d-g}),f+=d,e},this.rest=function(a){if("undefined"==typeof x[a])throw new Error(a+" is not a correct rhythm.");var b=h(a);return j.push({pitch:!1,duration:b,articulationGap:0,startTime:f,stopTime:f+b}),f+=b,e},this.repeatStart=function(){return g=j.length,e},this.repeatFromBeginning=function(a){return g=0,e.repeat(a),e},this.repeat=function(a){a="undefined"==typeof a?1:a;for(var c=j.slice(g),d=0;a>d;d++)for(var h=-1;++hB&&(B=a),y.push({instrument:k,sounds:j,bufferPosition:0,totalDuration:B})}}return a}();t.gain.value=0,t.connect(s.destination),u.gain.value=1,u.connect(s.destination),this.load=function(a){if(this.destroy(),!a)throw new Error("JSON is required for this method to work.");if("undefined"==typeof a.instruments)throw new Error("You must define at least one instrument");if("undefined"==typeof a.notes)throw new Error("You must define notes for each instrument");"undefined"!=typeof a.timeSignature&&r.setTimeSignature(a.timeSignature[0],a.timeSignature[1]),"undefined"!=typeof a.tempo&&r.setTempo(a.tempo);var b={};for(var c in a.instruments)a.instruments.hasOwnProperty(c)&&(b[c]=r.createInstrument(a.instruments[c].name,a.instruments[c].pack));for(var d in a.notes)if(a.notes.hasOwnProperty(d)){for(var e=-1;++e1&&(a/=100),v=a,u.gain.value=v},this.mute=function(a){H=!0,j("down",a)},this.unmute=function(a){H=!1,j("up",a)},this.getTotalSeconds=function(){return Math.round(B)},this.setTicker=function(a){if("function"!=typeof a)throw new Error("Ticker must be a function.");p=a},this.end=function(){for(var a=-1;++ai)e++;else if(!1!==h){var l=s.createGain();if(l.connect(u),l.gain.value=k,"undefined"==typeof h)b.push({startTime:i,stopTime:j,node:d.instrument.createSound(l),gain:l,volumeLevel:k});else for(var m=-1;++m0&&(b(a),z=z.concat(a),c())}},5e3)};b(z),c(),I&&!H&&j("up")},this.onFinished=function(a){if("function"!=typeof a)throw new Error("onFinished callback must be a function.");q=a},this.pause=function(){E=!0,g(),H?i():j("down",function(){i()})},this.loop=function(a){G=a},this.setTime=function(a){A=parseInt(a),i(),F&&!E&&r.play()},this.setTempo(120),this.setTimeSignature(4,4)}function b(a){if(null==a||"object"!=typeof a)return a;var b=a.constructor();for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}var c={instrument:{},rhythm:{},tuning:{}},d={2:6,4:3,8:4.5};a.loadPack=function(a,b,d){if(-1===["tuning","rhythm","instrument"].indexOf(a))throw new Error(a=" is not a valid Pack Type.");if("undefined"!=typeof c[a][b])throw new Error("A(n) "+a+' pack with the name "'+b+'" has already been loaded.');c[a][b]=d};var e=this.requestAnimationFrame||this.mozRequestAnimationFrame||this.webkitRequestAnimationFrame||this.msRequestAnimationFrame;this.requestAnimationFrame=e,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=a:"function"==typeof define&&define.amd?define([],function(){return a}):this.BandJS=a}).call(function(){return this||("undefined"!=typeof window?window:global)}()),BandJS.loadPack("instrument","noises",function(a,b){function c(a){for(var c=2*b.sampleRate,d=b.createBuffer(1,c,b.sampleRate),e=d.getChannelData(0),f=0;c>f;f++)e[f]=2*Math.random()-1;var g=b.createBufferSource();return g.buffer=d,g.loop=!0,g.connect(a),g}function d(a){var c,d,e,f,g,h,i,j=2*b.sampleRate,k=b.createBuffer(1,j,b.sampleRate),l=k.getChannelData(0);c=d=e=f=g=h=i=0;for(var m=0;j>m;m++){var n=2*Math.random()-1;c=.99886*c+.0555179*n,d=.99332*d+.0750759*n,e=.969*e+.153852*n,f=.8665*f+.3104856*n,g=.55*g+.5329522*n,h=-.7616*h-.016898*n,l[m]=c+d+e+f+g+h+i+.5362*n,l[m]*=.11,i=.115926*n}var o=b.createBufferSource();return o.buffer=k,o.loop=!0,o.connect(a),o}function e(a){for(var c=2*b.sampleRate,d=b.createBuffer(1,c,b.sampleRate),e=d.getChannelData(0),f=0,g=0;c>g;g++){var h=2*Math.random()-1;e[g]=(f+.02*h)/1.02,f=e[g],e[g]*=3.5}var i=b.createBufferSource();return i.buffer=d,i.loop=!0,i.connect(a),i}var f=["white","pink","brown","brownian","red"];if(-1===f.indexOf(a))throw new Error(a+" is not a valid noise sound");return{createSound:function(b){switch(a){case"white":return c(b);case"pink":return d(b);case"brown":case"brownian":case"red":return e(b)}}}}),BandJS.loadPack("instrument","oscillators",function(a,b){var c={sine:0,square:1,sawtooth:2,triangle:3};if("undefined"==typeof c[a])throw new Error(a+" is not a valid Oscillator type");return{createSound:function(d,e){var f=b.createOscillator();return f.connect(d),f.type=c[a],f.frequency.value=e,f}}}),BandJS.loadPack("rhythm","european",{semibreve:1,dottedMinim:.75,minim:.5,dottedCrotchet:.375,tripletMinim:.33333334,crotchet:.25,dottedQuaver:.1875,tripletCrotchet:.166666667,quaver:.125,dottedSemiquaver:.09375,tripletQuaver:.083333333,semiquaver:.0625,tripletSemiquaver:.041666667,demisemiquaver:.03125}),BandJS.loadPack("rhythm","northAmerican",{whole:1,dottedHalf:.75,half:.5,dottedQuarter:.375,tripletHalf:.33333334,quarter:.25,dottedEighth:.1875,tripletQuarter:.166666667,eighth:.125,dottedSixteenth:.09375,tripletEighth:.083333333,sixteenth:.0625,tripletSixteenth:.041666667,thirtySecond:.03125}),BandJS.loadPack("tuning","equalTemperament",{C0:16.35,"C#0":17.32,Db0:17.32,D0:18.35,"D#0":19.45,Eb0:19.45,E0:20.6,F0:21.83,"F#0":23.12,Gb0:23.12,G0:24.5,"G#0":25.96,Ab0:25.96,A0:27.5,"A#0":29.14,Bb0:29.14,B0:30.87,C1:32.7,"C#1":34.65,Db1:34.65,D1:36.71,"D#1":38.89,Eb1:38.89,E1:41.2,F1:43.65,"F#1":46.25,Gb1:46.25,G1:49,"G#1":51.91,Ab1:51.91,A1:55,"A#1":58.27,Bb1:58.27,B1:61.74,C2:65.41,"C#2":69.3,Db2:69.3,D2:73.42,"D#2":77.78,Eb2:77.78,E2:82.41,F2:87.31,"F#2":92.5,Gb2:92.5,G2:98,"G#2":103.83,Ab2:103.83,A2:110,"A#2":116.54,Bb2:116.54,B2:123.47,C3:130.81,"C#3":138.59,Db3:138.59,D3:146.83,"D#3":155.56,Eb3:155.56,E3:164.81,F3:174.61,"F#3":185,Gb3:185,G3:196,"G#3":207.65,Ab3:207.65,A3:220,"A#3":233.08,Bb3:233.08,B3:246.94,C4:261.63,"C#4":277.18,Db4:277.18,D4:293.66,"D#4":311.13,Eb4:311.13,E4:329.63,F4:349.23,"F#4":369.99,Gb4:369.99,G4:392,"G#4":415.3,Ab4:415.3,A4:440,"A#4":466.16,Bb4:466.16,B4:493.88,C5:523.25,"C#5":554.37,Db5:554.37,D5:587.33,"D#5":622.25,Eb5:622.25,E5:659.26,F5:698.46,"F#5":739.99,Gb5:739.99,G5:783.99,"G#5":830.61,Ab5:830.61,A5:880,"A#5":932.33,Bb5:932.33,B5:987.77,C6:1046.5,"C#6":1108.73,Db6:1108.73,D6:1174.66,"D#6":1244.51,Eb6:1244.51,E6:1318.51,F6:1396.91,"F#6":1479.98,Gb6:1479.98,G6:1567.98,"G#6":1661.22,Ab6:1661.22,A6:1760,"A#6":1864.66,Bb6:1864.66,B6:1975.53,C7:2093,"C#7":2217.46,Db7:2217.46,D7:2349.32,"D#7":2489.02,Eb7:2489.02,E7:2637.02,F7:2793.83,"F#7":2959.96,Gb7:2959.96,G7:3135.96,"G#7":3322.44,Ab7:3322.44,A7:3520,"A#7":3729.31,Bb7:3729.31,B7:3951.07,C8:4186.01}); \ No newline at end of file diff --git a/package.json b/package.json index 082046d..2deea69 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "band", - "version": "0.3.0", + "version": "0.3.1", "description": "Band.js - Music Composer - An interface for the Web Audio API that supports rhythms, multiple instruments, repeating sections, and complex time signatures.", "main": "src/band.js", "repository": {