vue-audio-ui 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,6 +13,15 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
13
13
  required: false;
14
14
  default: number;
15
15
  };
16
+ height: {
17
+ type: NumberConstructor;
18
+ required: false;
19
+ };
20
+ width: {
21
+ type: NumberConstructor;
22
+ required: false;
23
+ default: number;
24
+ };
16
25
  fillStyle: {
17
26
  type: PropType<FillStyleType>;
18
27
  required: false;
@@ -21,7 +30,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
21
30
  lineColor: {
22
31
  type: StringConstructor;
23
32
  required: false;
24
- default: string;
25
33
  };
26
34
  backgroundColor: {
27
35
  type: StringConstructor;
@@ -33,20 +41,15 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
33
41
  required: false;
34
42
  default: string;
35
43
  };
36
- borderColor: {
44
+ dbColor: {
37
45
  type: StringConstructor;
38
46
  required: false;
39
47
  default: string;
40
48
  };
41
- height: {
42
- type: NumberConstructor;
43
- required: false;
44
- default: number;
45
- };
46
- width: {
47
- type: NumberConstructor;
49
+ hzColor: {
50
+ type: StringConstructor;
48
51
  required: false;
49
- default: number;
52
+ default: string;
50
53
  };
51
54
  font: {
52
55
  required: false;
@@ -61,6 +64,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
61
64
  getFloatTimeDomainData: () => Float32Array | undefined;
62
65
  getFloatFrequencyData: () => Float32Array | undefined;
63
66
  onInputChanged: (newInput: AudioNode | undefined, oldInput: AudioNode | undefined) => void;
67
+ disposeMetering: (input?: AudioNode) => void;
64
68
  }, {
65
69
  continueDrawing: boolean;
66
70
  canvas: HTMLCanvasElement | null;
@@ -69,7 +73,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
69
73
  graphWidth(): number;
70
74
  graphHeight(): number;
71
75
  cssVars(): {
72
- "--border-color": string;
76
+ '--border-color': string;
73
77
  };
74
78
  }, {
75
79
  scaleX(f: number, rangeMinHz: number, rangeMaxHz: number, width: number): number;
@@ -92,6 +96,15 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
92
96
  required: false;
93
97
  default: number;
94
98
  };
99
+ height: {
100
+ type: NumberConstructor;
101
+ required: false;
102
+ };
103
+ width: {
104
+ type: NumberConstructor;
105
+ required: false;
106
+ default: number;
107
+ };
95
108
  fillStyle: {
96
109
  type: PropType<FillStyleType>;
97
110
  required: false;
@@ -100,7 +113,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
100
113
  lineColor: {
101
114
  type: StringConstructor;
102
115
  required: false;
103
- default: string;
104
116
  };
105
117
  backgroundColor: {
106
118
  type: StringConstructor;
@@ -112,20 +124,15 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
112
124
  required: false;
113
125
  default: string;
114
126
  };
115
- borderColor: {
127
+ dbColor: {
116
128
  type: StringConstructor;
117
129
  required: false;
118
130
  default: string;
119
131
  };
120
- height: {
121
- type: NumberConstructor;
122
- required: false;
123
- default: number;
124
- };
125
- width: {
126
- type: NumberConstructor;
132
+ hzColor: {
133
+ type: StringConstructor;
127
134
  required: false;
128
- default: number;
135
+ default: string;
129
136
  };
130
137
  font: {
131
138
  required: false;
@@ -135,12 +142,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
135
142
  }>> & Readonly<{}>, {
136
143
  fftSize: number;
137
144
  width: number;
138
- height: number;
139
- lineColor: string;
140
145
  backgroundColor: string;
141
146
  fillStyle: FillStyleType;
142
147
  font: string;
143
148
  gridColor: string;
144
- borderColor: string;
149
+ dbColor: string;
150
+ hzColor: string;
145
151
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
146
152
  export default _default;
@@ -0,0 +1,18 @@
1
+ type VueAudioUITheme = {
2
+ colors: ThemeColors;
3
+ };
4
+ type ThemeColors = {
5
+ primary: string;
6
+ secondary: string;
7
+ success: string;
8
+ danger: string;
9
+ warning: string;
10
+ info: string;
11
+ light: string;
12
+ dark: string;
13
+ muted: string;
14
+ white: string;
15
+ black: string;
16
+ };
17
+ declare const vueAudioUITheme: VueAudioUITheme;
18
+ export default vueAudioUITheme;
@@ -0,0 +1,18 @@
1
+ export type SignalScalerType = {
2
+ input: AudioNode;
3
+ output: AudioNode;
4
+ dispose(): void;
5
+ };
6
+ /**
7
+ * scales the incoming signal from (inputMin, inputMax) to (outputMin, outputMax)
8
+ */
9
+ export declare class SignalScaler implements SignalScalerType {
10
+ private _minusInputMin;
11
+ private _plusOutputMin;
12
+ private _dividedByInputRange;
13
+ private _multipliedByOutputRange;
14
+ input: AudioNode;
15
+ output: AudioNode;
16
+ constructor(ctx: BaseAudioContext, inputMin: number, inputMax: number, outputMin: number, outputMax: number, loggerNode?: AudioNode);
17
+ dispose(): void;
18
+ }
@@ -0,0 +1,16 @@
1
+ export type SignalToRatioType = {
2
+ input: AudioNode;
3
+ output: AudioNode;
4
+ dispose(): void;
5
+ };
6
+ /**
7
+ * converts the incoming signal to a ratio (0, 1) based on the min and max
8
+ */
9
+ export declare class SignalToRatio implements SignalToRatioType {
10
+ private _minusInputMin;
11
+ private _dividedByInputRange;
12
+ input: AudioNode;
13
+ output: AudioNode;
14
+ constructor(ctx: BaseAudioContext, inputMin: number, inputMax: number, loggerNode?: AudioNode);
15
+ dispose(): void;
16
+ }
@@ -1,5 +1,6 @@
1
1
  declare function getBaseLog(base: number, x: number): number;
2
- declare function fitToBounds(value: number, min: number, max: number): number;
2
+ declare function clamp(value: number, min: number, max: number): number;
3
+ declare function absMax(a: number, b: number): number;
3
4
  interface QuadraticResult {
4
5
  solution1: QuadraticRoot;
5
6
  solution2: QuadraticRoot;
@@ -9,4 +10,6 @@ interface QuadraticRoot {
9
10
  imaginaryPart: number;
10
11
  }
11
12
  declare function solveQuadratic(a: number, b: number, c: number): QuadraticResult;
12
- export { getBaseLog, solveQuadratic, fitToBounds };
13
+ declare function isPowerOfTwo(n: number): boolean;
14
+ declare function round(num: number, decimalPlaces: number): number;
15
+ export { getBaseLog, solveQuadratic, clamp, isPowerOfTwo, round, absMax };
@@ -0,0 +1,17 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),w={colors:{primary:"#70bfff",secondary:"#6c757d",success:"#28a745",danger:"#dc3545",warning:"#ffc107",info:"#17a2b8",light:"#e0e0e0",dark:"#343a40",muted:"#6c757d",white:"#ffffff",black:"#000000"}};function Q(e,t){let r,i;t&&n(t);function n(l){r=l.context.createAnalyser(),r.fftSize=e,i=new Float32Array(r.frequencyBinCount),l.connect(r)}function s(l){r&&l&&l.disconnect(r)}function o(l,f){l&&n(l)}function h(){return r?.getFloatTimeDomainData(i),i}function g(){return r?.getFloatFrequencyData(i),i}function k(l){let f=0,m;for(let p=0;p<l.length;p++)m=Math.abs(l[p]),m>f&&(f=m);return 20*Math.log10(f)}function c(l){let f=0,m;for(let p=0;p<l.length;p++)m=Math.abs(l[p]),f+=m*m;return 20*Math.log10(Math.sqrt(f/l.length))}return{getPeakDb:k,getRmsDb:c,getFloatTimeDomainData:h,getFloatFrequencyData:g,onInputChanged:o,disposeMetering:s}}function ee(){const e=a.ref(!1);function t(n){try{n()}catch(s){e.value=!1,console.log(`error in render callback - ${s}`)}e.value&&window.requestAnimationFrame(()=>t(n))}function r(n){e.value=!0,t(n)}function i(){e.value=!1}return{startRendering:r,stopRendering:i}}const Ie=a.defineComponent({name:"VAAnalogMeter",props:{input:{required:!1,type:AudioNode,default:void 0},type:{required:!1,type:String,default:"peak"},fftSize:{required:!1,type:Number,default:2048},width:{required:!1,type:Number,default:300}},setup(e){const{getPeakDb:t,getRmsDb:r,getFloatTimeDomainData:i,onInputChanged:n}=Q(e.fftSize,e.input);a.watch(()=>e.input,n);const{startRendering:s,stopRendering:o}=ee(),h=a.ref(-1),g=a.ref("black"),k=a.computed(()=>isNaN(h.value)?"rotate(0 160 150)":`rotate(${50*h.value} 160 150)`);return a.onMounted(()=>{s(()=>{const c=i();let l=0;e.type==="peak"&&c?l=t(c):e.type==="rms"&&c&&(l=r(c));const f=80;l=l<-f?-f:l;const m=(f+l)/f;h.value=m*2-1})}),a.onUnmounted(()=>{o()}),{color:g,rotation:k,value:h}}}),V=(e,t)=>{const r=e.__vccOpts||e;for(const[i,n]of t)r[i]=n;return r},ze={class:"meter-container"},We=["width"],Le=["transform"];function Oe(e,t,r,i,n,s){return a.openBlock(),a.createElementBlock("div",ze,[(a.openBlock(),a.createElementBlock("svg",{width:`${e.width}px`,viewBox:"0 0 320 220",xmlns:"http://www.w3.org/2000/svg"},[t[1]||(t[1]=a.createStaticVNode('<defs data-v-048f897f><linearGradient id="frameGrad" x1="0" y1="0" x2="0" y2="1" data-v-048f897f><stop offset="0%" stop-color="#f0f0f0" data-v-048f897f></stop><stop offset="50%" stop-color="#b5b5b5" data-v-048f897f></stop><stop offset="100%" stop-color="#8a8a8a" data-v-048f897f></stop></linearGradient><linearGradient id="faceGrad" x1="0" y1="0" x2="0" y2="1" data-v-048f897f><stop offset="0%" stop-color="#fffdf7" data-v-048f897f></stop><stop offset="100%" stop-color="#e9e2d3" data-v-048f897f></stop></linearGradient><radialGradient id="glassGrad" cx="50%" cy="0%" r="80%" data-v-048f897f><stop offset="0%" stop-color="white" stop-opacity="0.7" data-v-048f897f></stop><stop offset="60%" stop-color="white" stop-opacity="0.15" data-v-048f897f></stop><stop offset="100%" stop-color="white" stop-opacity="0" data-v-048f897f></stop></radialGradient><filter id="shadow" x="-20%" y="-20%" width="140%" height="140%" data-v-048f897f><feDropShadow dx="0" dy="3" stdDeviation="4" flood-opacity="0.4" data-v-048f897f></feDropShadow></filter><filter id="needleShadow" data-v-048f897f><feDropShadow dx="1" dy="1" stdDeviation="1" flood-opacity="0.5" data-v-048f897f></feDropShadow></filter></defs><rect x="10" y="10" rx="18" ry="18" width="300" height="200" fill="url(#frameGrad)" filter="url(#shadow)" data-v-048f897f></rect><rect x="24" y="24" rx="12" ry="12" width="272" height="172" fill="url(#faceGrad)" stroke="#777" stroke-width="1" data-v-048f897f></rect><path d="M 60 90 A 130 70 0 0 1 260 90" fill="none" stroke="#222" stroke-width="2" data-v-048f897f></path><g stroke="#222" stroke-width="2" data-v-048f897f><line x1="100" y1="120" x2="105" y2="130" data-v-048f897f></line><line x1="160" y1="110" x2="160" y2="122" data-v-048f897f></line><line x1="220" y1="120" x2="215" y2="130" data-v-048f897f></line></g>',5)),a.createElementVNode("g",{id:"needle",transform:e.rotation},[...t[0]||(t[0]=[a.createElementVNode("polygon",{points:"160,70 158,150 162,150",fill:"#c62828"},null,-1),a.createElementVNode("circle",{cx:"160",cy:"150",r:"6",fill:"#333"},null,-1),a.createElementVNode("circle",{cx:"160",cy:"150",r:"3",fill:"#777"},null,-1)])],8,Le),t[2]||(t[2]=a.createElementVNode("rect",{x:"24",y:"24",rx:"12",ry:"12",width:"272",height:"172",fill:"url(#glassGrad)"},null,-1)),t[3]||(t[3]=a.createElementVNode("text",{x:"160",y:"185","text-anchor":"middle","font-size":"16","font-weight":"bold","font-family":"Arial, Helvetica, sans-serif",fill:"#333"},null,-1))],8,We))])}const ue=V(Ie,[["render",Oe],["__scopeId","data-v-048f897f"]]);function I(e,t,r){return e<t?t:e>r?r:e}function qe(e,t){const r=Math.abs(e),i=Math.abs(t);return r>i?e:i>r?t:Math.max(e,t)}function Re(e){return(e&e-1)===0}function ce(e,t){return+`${Math.round(+`${e}e${t}`)}e${-t}`}class pe{min;max;constructor(t,r){this.min=t,this.max=r}getCurvedValue(t){throw"getCurvedValue must be overriden in child class"}getLinearValue(t){throw"getLinearValue must be overriden in child class"}validateInput(t){if(t<this.min)throw`given value ${t} is less than min value ${this.min}`;if(t>this.max)throw`given value ${t} is greater than max value ${this.max}`}}function oe(e){return Math.pow(Math.E,e)}function He(e,t,r,i,n,s){return(oe(((e-t)/(r-t)-1)*s)-1)/(oe(-s)-1)*(i-n)+n}function Fe(e,t,r,i,n,s){return(Math.log((e-n)*(oe(-s)-1)/(i-n)+1)/s+1)*(r-t)+t}class fe extends pe{curveAmount;constructor(t,r,i){super(t,r),this.curveAmount=i}getCurvedValue(t){return this.validateInput(t),He(t,this.min,this.max,this.min,this.max,this.curveAmount)}getLinearValue(t){return this.validateInput(t),Fe(t,this.min,this.max,this.min,this.max,this.curveAmount)}}class J extends pe{constructor(t,r){super(t,r)}getCurvedValue(t){return this.validateInput(t),t}getLinearValue(t){return this.validateInput(t),t}}const Ye=3,_e=300,Ke=16,Xe=a.defineComponent({name:"VAAudioFileVisualizer",data(){return{canvas:null,canvasContext:null,markerPosition:0,markerIndex:0,selectionPosition:void 0,selectionIndex:void 0,zoomWindowStartIndex:0,zoomWindowEndIndex:0,zoom:1,prevY:-1,prevX:-1,curedRange:new fe(0,1,8)}},props:{amplitudeData:{required:!1,type:Float32Array},lineColor:{required:!1,type:String},backgroundColor:{required:!1,type:String},width:{required:!1,type:Number,default:500},height:{required:!1,type:Number}},computed:{cssVars(){return{"--line-color":`${this.canvasLineColor}`,"--background-color":`${this.canvasBackgroundColor}`}},graphWidth(){return this.width},graphHeight(){return this.height??this.width/Ye},zoomMult(){if(!this.amplitudeData)return 1;const e=this.curedRange.getCurvedValue(this.zoom);return Math.max(e,Ke/this.amplitudeData.length)},zoomWindowLength(){return this.zoomWindowEndIndex-this.zoomWindowStartIndex},canvasLineColor(){return this.lineColor??w.colors.white},canvasBackgroundColor(){return this.backgroundColor??w.colors.black},canvasMarkerColor(){return w.colors.primary},canvasSelectColor(){return w.colors.primary}},mounted(){this.canvas=this.$refs.visualizer,this.canvasContext=this.canvas.getContext("2d")},methods:{pixelsToSamples(e){return this.zoomWindowLength/this.graphWidth*e},shiftZoomWindow(e){this.zoomWindowStartIndex+=e,this.zoomWindowEndIndex+=e},setZoomWindow(){if(!this.amplitudeData){this.zoomWindowStartIndex=0,this.zoomWindowEndIndex=0,this.zoom=1;return}this.zoomWindowStartIndex=this.markerIndex-Math.round(this.amplitudeData.length*this.zoomMult/2),this.zoomWindowEndIndex=this.markerIndex+Math.round(this.amplitudeData.length*this.zoomMult/2);const t=(this.graphWidth/2-this.markerPosition)/this.graphWidth,r=Math.round(t*this.zoomWindowLength);this.shiftZoomWindow(r);let i=0;i+=this.zoomWindowStartIndex<0?-this.zoomWindowStartIndex:0,i+=this.zoomWindowEndIndex>this.amplitudeData.length?this.amplitudeData.length-this.zoomWindowEndIndex:0,this.shiftZoomWindow(i)},drawZoom(){this.setZoomWindow(),this.drawAmplitude()},getMaxSampleValue(e,t,r){let i=Number.NEGATIVE_INFINITY;for(let n=t;n<r;n++)i=Math.max(i,e[n]);return i},getMinSampleValue(e,t,r){let i=Number.POSITIVE_INFINITY;for(let n=t;n<r;n++)i=Math.min(i,e[n]);return i},getAvgSampleValue(e,t,r){let i=0;for(let n=t;n<r;n++)i+=Math.abs(e[n]);return i/(r-t)},drawMarker(){this.canvasContext.fillStyle=this.canvasMarkerColor,this.canvasContext?.fillRect(this.markerPosition,0,2,this.graphHeight)},drawSelection(){this.selectionPosition!==void 0&&(this.canvasContext.globalAlpha=.5,this.canvasContext.fillStyle=this.canvasSelectColor,this.canvasContext.fillRect(this.markerPosition,0,this.selectionPosition-this.markerPosition,this.graphHeight),this.canvasContext.globalAlpha=1)},drawPoint(e,t){this.canvasContext.fillStyle=this.canvasLineColor,this.canvasContext?.beginPath(),this.canvasContext?.arc(e+.5,t+.5,2,0,Math.PI*2),this.canvasContext?.fill()},drawBackground(){this.canvasContext?.clearRect(0,0,this.graphWidth,this.graphHeight),this.canvasContext.fillStyle=this.canvasBackgroundColor,this.canvasContext?.fillRect(0,0,this.graphWidth,this.graphHeight)},drawAmplitudeMinMax(){if(!this.amplitudeData)return;const e=this.zoomWindowLength/this.graphWidth,t=Math.max(Math.round(e),1);this.drawBackground();let r=0,i=0,n=0,s=0,o=0;for(let h=0;h<this.graphWidth;h++)r=h,s=this.getMinSampleValue(this.amplitudeData,this.zoomWindowStartIndex+h*t,this.zoomWindowStartIndex+(h+1)*t),o=this.getMaxSampleValue(this.amplitudeData,this.zoomWindowStartIndex+h*t,this.zoomWindowStartIndex+(h+1)*t),i=this.graphHeight-(this.graphHeight/2+s*this.graphHeight/2),n=this.graphHeight-(this.graphHeight/2+o*this.graphHeight/2),this.canvasContext.fillStyle=this.canvasLineColor,this.canvasContext?.fillRect(r,i,1,qe(n-i,1));this.drawSelection(),this.drawMarker()},drawAmplitudeSampleLine(e=!1){if(!this.amplitudeData)return;const t=this.zoomWindowLength/this.graphWidth,r=Math.max(Math.round(t),1),i=this.graphWidth/this.zoomWindowLength;this.drawBackground();const n=new Path2D;let s=0,o=0,h=0;for(let g=this.zoomWindowStartIndex;g<this.zoomWindowEndIndex;g+=r)h=this.amplitudeData[g],s=(g-this.zoomWindowStartIndex)*i,o=this.graphHeight-(this.graphHeight/2+h*this.graphHeight/2),g===0?n.moveTo(s,o):n.lineTo(s,o),e&&this.drawPoint(s,o);n.lineTo(this.graphWidth,o),this.canvasContext.strokeStyle=this.canvasLineColor,this.canvasContext?.stroke(n),this.drawSelection(),this.drawMarker()},drawAmplitudeAvg(){if(!this.amplitudeData)return;const e=this.zoomWindowLength/this.graphWidth,t=Math.max(Math.round(e),1);this.drawBackground();const r=new Path2D;r.moveTo(0,0);let i=0,n=0,s=0;for(let o=0;o<this.graphWidth;o++)i=o,s=this.getAvgSampleValue(this.amplitudeData,this.zoomWindowStartIndex+o*t,this.zoomWindowStartIndex+(o+1)*t),n=this.graphHeight-(this.graphHeight/2+s*this.graphHeight/2),r.moveTo(i,n),n=this.graphHeight-(this.graphHeight/2+-s*this.graphHeight/2),r.lineTo(i,n);r.lineTo(this.graphWidth,this.graphHeight/2),this.canvasContext.strokeStyle=this.canvasLineColor,this.canvasContext?.stroke(r),this.drawSelection(),this.drawMarker()},drawAmplitude(){this.zoomWindowLength/this.graphWidth<.25?this.drawAmplitudeSampleLine(!0):this.zoomWindowLength/this.graphWidth<=2?this.drawAmplitudeSampleLine(!1):this.drawAmplitudeMinMax()},onCanvasDoubleClick(){this.amplitudeData&&(this.zoom=1,this.zoomWindowStartIndex=0,this.zoomWindowEndIndex=this.amplitudeData.length,this.markerIndex=Math.round(this.pixelsToSamples(this.markerPosition))+this.zoomWindowStartIndex,this.selectionPosition=void 0,this.selectionIndex=void 0,window.requestAnimationFrame(this.drawAmplitude))},onCanvasMouseDown(e){this.prevX=e.pageX,this.prevY=e.pageY;const t=this.canvas?.getBoundingClientRect()?.x,r=e.clientX-t;this.markerIndex=Math.round(this.pixelsToSamples(r))+this.zoomWindowStartIndex,this.markerPosition=r,this.selectionPosition=void 0,this.selectionIndex=void 0,window.requestAnimationFrame(this.drawAmplitude),document.getElementsByTagName("body")[0].classList.add("--no-text-select"),e.metaKey||e.ctrlKey?(window.addEventListener("mousemove",this.onCtrlClickDrag),window.addEventListener("mouseup",this.endCtrlClickDrag)):(window.addEventListener("mousemove",this.onClickDrag),window.addEventListener("mouseup",this.endClickDrag))},onClickDrag(e){const t=e.pageY,r=e.pageX,i=r-this.prevX;t-this.prevY,this.selectionPosition=this.selectionPosition===void 0?this.markerPosition+i:this.selectionPosition+i,window.requestAnimationFrame(this.drawAmplitude),this.prevY=t,this.prevX=r},endClickDrag(){window.removeEventListener("mousemove",this.onClickDrag),this.prevY=-1,this.prevX=-1,this.selectionPosition&&this.$emit("audioSelection",{startIndex:this.markerIndex,endIndex:Math.round(this.pixelsToSamples(this.selectionPosition))+this.zoomWindowStartIndex}),document.getElementsByTagName("body")[0].classList.remove("--no-text-select")},onCtrlClickDrag(e){if(!this.amplitudeData)return;const t=e.pageY,r=e.pageX,i=r-this.prevX,n=t-this.prevY;if(Math.abs(i)>=Math.abs(n)){if(this.prevX>=0){let s=-Math.round(i/this.graphWidth*this.zoomWindowLength);const o=-this.zoomWindowStartIndex,h=this.amplitudeData.length-this.zoomWindowEndIndex;s=I(s,o,h),this.shiftZoomWindow(s),this.markerIndex+=s}}else this.prevY>=0&&(this.zoom=I(this.zoom-n/_e*1,0,1),this.setZoomWindow());this.markerPosition=Math.round((this.markerIndex-this.zoomWindowStartIndex)/this.zoomWindowLength*this.graphWidth),window.requestAnimationFrame(this.drawAmplitude),this.prevY=t,this.prevX=r},endCtrlClickDrag(){window.removeEventListener("mousemove",this.onCtrlClickDrag),this.prevY=-1,this.prevX=-1,document.getElementsByTagName("body")[0].classList.remove("--no-text-select")}},watch:{amplitudeData(e,t){window.requestAnimationFrame(this.drawZoom)}}}),Ze=["width","height"];function je(e,t,r,i,n,s){return a.openBlock(),a.createElementBlock("canvas",{ref:"visualizer",class:"visualizer-canvas",style:a.normalizeStyle(e.cssVars),width:e.graphWidth,height:e.graphHeight,onMousedown:t[0]||(t[0]=(...o)=>e.onCanvasMouseDown&&e.onCanvasMouseDown(...o)),onDblclick:t[1]||(t[1]=(...o)=>e.onCanvasDoubleClick&&e.onCanvasDoubleClick(...o))},null,44,Ze)}const me=V(Xe,[["render",je],["__scopeId","data-v-f20165f6"]]),Je=a.defineComponent({name:"VADigitalMeterStereo",props:{leftInput:{required:!1,type:AudioNode},rightInput:{required:!1,type:AudioNode},type:{required:!1,type:String,default:"peak"},fftSize:{required:!1,type:Number,default:2048},clippingColor:{required:!1,type:String,default:"#e64a19"},barColor:{required:!1,type:String},backgroundColor:{required:!1,type:String},markerColor:{required:!1,type:String,default:"gray"},drawMarkers:{required:!1,type:Boolean,default:!1},height:{required:!1,type:Number,default:200},width:{required:!1,type:Number,default:20},font:{required:!1,type:String,default:"Helvetica, sans-serif"}}}),Qe={class:"stereo-meter-container"};function et(e,t,r,i,n,s){const o=a.resolveComponent("v-a-digital-meter");return a.openBlock(),a.createElementBlock("div",null,[a.createElementVNode("div",Qe,[a.createVNode(o,{class:"meter-channel",input:e.leftInput,fftSize:e.fftSize,type:e.type,height:e.height,width:e.width,barColor:e.barColor,backgroundColor:e.backgroundColor,markerColor:e.markerColor,font:e.font,clippingColor:e.clippingColor,drawMarkers:!1},null,8,["input","fftSize","type","height","width","barColor","backgroundColor","markerColor","font","clippingColor"]),a.createVNode(o,{class:"meter-channel",input:e.rightInput,fftSize:e.fftSize,type:e.type,height:e.height,width:e.width,barColor:e.barColor,backgroundColor:e.backgroundColor,markerColor:e.markerColor,font:e.font,clippingColor:e.clippingColor,drawMarkers:e.drawMarkers},null,8,["input","fftSize","type","height","width","barColor","backgroundColor","markerColor","font","clippingColor","drawMarkers"])])])}const ge=V(Je,[["render",et],["__scopeId","data-v-688c5c09"]]),$=90,tt=new fe(0,$,2),at=a.defineComponent({name:"VADigitalMeter",props:{input:{required:!1,type:AudioNode,default:void 0},type:{required:!1,type:String,default:"peak"},fftSize:{required:!1,type:Number,default:2048},clippingColor:{required:!1,type:String},barColor:{required:!1,type:String},backgroundColor:{required:!1,type:String},markerColor:{required:!1,type:String},drawMarkers:{required:!1,type:Boolean,default:!1},height:{required:!1,type:Number,default:200},width:{required:!1,type:Number,default:20},font:{required:!1,type:String,default:"Helvetica, sans-serif"}},computed:{canvasWidth(){return this.width+(this.drawMarkers?30:0)}},setup(e){const t=Q(e.fftSize,e.input);return a.watch(()=>e.input,t.onInputChanged),{...t,...ee()}},data(){return{canvasCxt:null}},mounted(){const e=this.$refs.meterCanvas;this.canvasCxt=e.getContext("2d"),this.startRendering(this.draw)},methods:{getMeterHeight(e){return this.height*(($+e)/$)*($/($+10))},scaleY(e){return tt.getCurvedValue(e+$)-$},draw(){if(this.canvasCxt){const e=this.getFloatTimeDomainData();let t=-$;this.type==="peak"&&e?t=this.getPeakDb(e):this.type==="rms"&&e&&(t=this.getRmsDb(e));const r=t>0;t=I(t,-$,0);const i=this.getMeterHeight(this.scaleY(t));this.canvasCxt.clearRect(0,0,this.canvasWidth,this.height),this.canvasCxt.fillStyle=this.backgroundColor??w.colors.light,this.canvasCxt.beginPath(),this.canvasCxt.fillRect(0,0,this.width,this.height),this.canvasCxt.stroke(),this.canvasCxt.fillStyle=r?this.clippingColor??w.colors.danger:this.barColor??w.colors.success,this.canvasCxt.beginPath(),this.canvasCxt.fillRect(0,this.height-i,this.width,i),this.canvasCxt.stroke(),this.drawMarkers&&this.drawDbMarkers()}},drawDbMarkers(){this.drawDbMarker(0),this.drawDbMarker(-10),this.drawDbMarker(-20),this.drawDbMarker(-30),this.drawDbMarker(-40),this.drawDbMarker(-60)},drawDbMarker(e){const t=this.height-this.getMeterHeight(this.scaleY(e)),r=this.width+4;this.canvasCxt.lineWidth=1,this.canvasCxt.strokeStyle=this.markerColor??w.colors.muted,this.canvasCxt?.beginPath(),this.canvasCxt?.moveTo(r,t),this.canvasCxt?.lineTo(r+4,t),this.canvasCxt?.stroke(),this.canvasCxt.font=`10px ${this.font}`,this.canvasCxt.fillStyle=this.markerColor??w.colors.muted,this.canvasCxt.fillText(`${Math.abs(e)}`,r+8,t+3)}}}),rt=["height","width"];function it(e,t,r,i,n,s){return a.openBlock(),a.createElementBlock("canvas",{class:"meter",ref:"meterCanvas",height:e.height,width:e.canvasWidth},null,8,rt)}const ye=V(at,[["render",it]]),ot={},nt={version:"1.1",viewBox:"0 0 62.143 129.29",xmlns:"http://www.w3.org/2000/svg",width:"27"};function st(e,t){return a.openBlock(),a.createElementBlock("svg",nt,[...t[0]||(t[0]=[a.createStaticVNode('<defs><filter id="filter4165" x="-.18715" y="-.046414" width="1.3743" height="1.0928" color-interpolation-filters="sRGB"><feGaussianBlur stdDeviation="2.4419414"></feGaussianBlur></filter><filter id="filter4165-1" x="-.18715" y="-.046414" width="1.3743" height="1.0928" color-interpolation-filters="sRGB"><feGaussianBlur stdDeviation="2.4419414"></feGaussianBlur></filter><filter id="filter4165-4" x="-.18715" y="-.046414" width="1.3743" height="1.0928" color-interpolation-filters="sRGB"><feGaussianBlur stdDeviation="2.4419414"></feGaussianBlur></filter><linearGradient id="linearGradient7341" x1="678.43" x2="668.76" y1="597.36" y2="597.36" gradientTransform="translate(406.7,-14.18)" gradientUnits="userSpaceOnUse"><stop stop-color="#9a9a9a" offset="0"></stop><stop offset="1"></stop></linearGradient><linearGradient id="linearGradient7468" x1="678.43" x2="668.76" y1="597.36" y2="597.36" gradientTransform="translate(203.35,-14.18)" gradientUnits="userSpaceOnUse"><stop stop-color="#9a9a9a" offset="0"></stop><stop offset="1"></stop></linearGradient><linearGradient id="linearGradient7595" x1="678.43" x2="668.76" y1="597.36" y2="597.36" gradientTransform="translate(0,-14.18)" gradientUnits="userSpaceOnUse"><stop stop-color="#9a9a9a" offset="0"></stop><stop offset="1"></stop></linearGradient><linearGradient id="linearGradient7698" x1="87.866" x2="87.866" y1="516.83" y2="528.75" gradientTransform="matrix(1.0278,0,0,1,582.85,121.43)" gradientUnits="userSpaceOnUse"><stop stop-color="#999" offset="0"></stop><stop stop-color="#999" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7700" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0235,0,0,1,37.712,-1157.9)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7702" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .50643 51.792 414.75)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7704" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .42746 51.792 466.71)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7706" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .26952 51.792 554.43)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7708" x1="87.866" x2="87.866" y1="516.83" y2="521.42" gradientTransform="matrix(1.0364 0 0 .96441 581.97 -1263.8)" gradientUnits="userSpaceOnUse"><stop stop-color="#999" offset="0"></stop><stop stop-color="#333" offset="1"></stop></linearGradient><linearGradient id="linearGradient7710" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0364 0 0 .96441 29.714 -1226.1)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7712" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0274 0 0 .48841 35.581 -982.83)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7714" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0213 0 0 .41225 39.183 -932.97)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7716" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0122 0 0 .25993 44.587 -848)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient></defs><g transform="translate(-642.36 -637.36)"><rect x="642.36" y="637.36" width="62.143" height="129.29" rx="3" ry="3" fill="#4d4d4d"></rect><rect x="643.3" y="701.75" width="60.419" height="3.5355" fill="#e6e6e6"></rect><rect x="643.05" y="638.08" width="60.613" height="21.071" rx="2.1483" ry="2" fill="url(#linearGradient7698)"></rect><rect x="643.25" y="689.59" width="58.811" height="10.119" fill="#333"></rect><rect x="642.36" y="680.23" width="61.133" height="8.7929" fill="#333"></rect><rect x="642.36" y="661.81" width="61.133" height="4.5457" fill="#1a1a1a"></rect><rect x="642.36" y="667.58" width="61.133" height="11.364" fill="#1a1a1a"></rect><rect transform="scale(1,-1)" x="643.05" y="-661.09" width="60.012" height="2.2612" rx="1.0235" ry=".63958" fill="url(#linearGradient7700)"></rect><rect x="643.22" y="666.37" width="58.633" height="1.1452" rx="1" ry=".3239" fill="url(#linearGradient7702)"></rect><rect x="643.22" y="679.09" width="58.633" height=".9666" rx="1" ry=".2734" fill="url(#linearGradient7704)"></rect><rect x="643.22" y="688.34" width="58.633" height=".60946" rx="1" ry=".17238" fill="url(#linearGradient7706)"></rect><rect transform="scale(1,-1)" x="642.67" y="-765.57" width="61.118" height="20.321" rx="2.1662" ry="1.9288" fill="url(#linearGradient7708)"></rect><rect transform="scale(1,-1)" x="643.25" y="-717.26" width="58.811" height="9.7593" fill="#333"></rect><rect transform="scale(1,-1)" x="642.36" y="-726.3" width="61.133" height="8.4799" fill="#666"></rect><rect transform="scale(1,-1)" x="642.36" y="-744.06" width="61.133" height="4.3839" fill="#808080"></rect><rect transform="scale(1,-1)" x="642.36" y="-738.49" width="61.133" height="10.96" fill="#808080"></rect><rect transform="scale(1,-1)" x="642.67" y="-746.93" width="60.767" height="2.1808" rx="1.0364" ry=".61681" fill="url(#linearGradient7710)"></rect><rect transform="scale(1,-1)" x="643.22" y="-740.17" width="60.24" height="1.1044" rx="1.0274" ry=".31237" fill="url(#linearGradient7712)"></rect><rect transform="scale(1,-1)" x="643.22" y="-728.15" width="59.883" height=".9322" rx="1.0213" ry=".26366" fill="url(#linearGradient7714)"></rect><rect transform="scale(1,-1)" x="643.22" y="-718.85" width="59.347" height=".58776" rx="1.0122" ry=".16624" fill="url(#linearGradient7716)"></rect></g>',2)])])}const lt=V(ot,[["render",st]]),dt={},ht={version:"1.1",viewBox:"0 0 104 460",xmlns:"http://www.w3.org/2000/svg"};function ct(e,t){return a.openBlock(),a.createElementBlock("svg",ht,[...t[0]||(t[0]=[a.createStaticVNode('<defs><filter id="filter4165" x="-.18715" y="-.046414" width="1.3743" height="1.0928" color-interpolation-filters="sRGB"><feGaussianBlur stdDeviation="2.4419414"></feGaussianBlur></filter><filter id="filter4165-1" x="-.18715" y="-.046414" width="1.3743" height="1.0928" color-interpolation-filters="sRGB"><feGaussianBlur stdDeviation="2.4419414"></feGaussianBlur></filter><filter id="filter4165-4" x="-.18715" y="-.046414" width="1.3743" height="1.0928" color-interpolation-filters="sRGB"><feGaussianBlur stdDeviation="2.4419414"></feGaussianBlur></filter><linearGradient id="linearGradient7341" x1="678.43" x2="668.76" y1="597.36" y2="597.36" gradientTransform="translate(406.7,-14.18)" gradientUnits="userSpaceOnUse"><stop stop-color="#9a9a9a" offset="0"></stop><stop offset="1"></stop></linearGradient><linearGradient id="linearGradient7468" x1="678.43" x2="668.76" y1="597.36" y2="597.36" gradientTransform="translate(203.35,-14.18)" gradientUnits="userSpaceOnUse"><stop stop-color="#9a9a9a" offset="0"></stop><stop offset="1"></stop></linearGradient><linearGradient id="linearGradient7595" x1="678.43" x2="668.76" y1="597.36" y2="597.36" gradientTransform="translate(0,-14.18)" gradientUnits="userSpaceOnUse"><stop stop-color="#9a9a9a" offset="0"></stop><stop offset="1"></stop></linearGradient><linearGradient id="linearGradient7698" x1="87.866" x2="87.866" y1="516.83" y2="528.75" gradientTransform="matrix(1.0278,0,0,1,582.85,121.43)" gradientUnits="userSpaceOnUse"><stop stop-color="#999" offset="0"></stop><stop stop-color="#999" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7700" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0235,0,0,1,37.712,-1157.9)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7702" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .50643 51.792 414.75)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7704" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .42746 51.792 466.71)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7706" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .26952 51.792 554.43)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7708" x1="87.866" x2="87.866" y1="516.83" y2="521.42" gradientTransform="matrix(1.0364 0 0 .96441 581.97 -1263.8)" gradientUnits="userSpaceOnUse"><stop stop-color="#999" offset="0"></stop><stop stop-color="#333" offset="1"></stop></linearGradient><linearGradient id="linearGradient7710" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0364 0 0 .96441 29.714 -1226.1)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7712" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0274 0 0 .48841 35.581 -982.83)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7714" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0213 0 0 .41225 39.183 -932.97)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7716" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0122 0 0 .25993 44.587 -848)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7718" x1="87.866" x2="87.866" y1="516.83" y2="528.75" gradientTransform="matrix(1.0278,0,0,1,787.52,-27.904)" gradientUnits="userSpaceOnUse"><stop stop-color="#999" offset="0"></stop><stop stop-color="#999" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7720" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0235,0,0,1,242.38,-1008.6)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7722" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .50643 256.46 265.42)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7724" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .42746 256.46 317.38)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7726" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .26952 256.46 405.1)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7728" x1="87.866" x2="87.866" y1="516.83" y2="521.42" gradientTransform="matrix(1.0364 0 0 .96441 786.64 -1114.5)" gradientUnits="userSpaceOnUse"><stop stop-color="#999" offset="0"></stop><stop stop-color="#333" offset="1"></stop></linearGradient><linearGradient id="linearGradient7730" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0364 0 0 .96441 234.39 -1076.7)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7732" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0274 0 0 .48841 240.25 -833.5)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7734" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0213 0 0 .41225 243.85 -783.64)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7736" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0122 0 0 .25993 249.26 -698.66)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7738" x1="87.866" x2="87.866" y1="516.83" y2="528.75" gradientTransform="matrix(1.0278,0,0,1,989.55,-112.75)" gradientUnits="userSpaceOnUse"><stop stop-color="#999" offset="0"></stop><stop stop-color="#999" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7740" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0235,0,0,1,444.41,-923.75)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7742" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .50643 458.49 180.57)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7744" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .42746 458.49 232.53)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7746" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1 0 0 .26952 458.49 320.25)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7748" x1="87.866" x2="87.866" y1="516.83" y2="521.42" gradientTransform="matrix(1.0364 0 0 .96441 988.67 -1029.6)" gradientUnits="userSpaceOnUse"><stop stop-color="#999" offset="0"></stop><stop stop-color="#333" offset="1"></stop></linearGradient><linearGradient id="linearGradient7750" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0364 0 0 .96441 436.42 -991.9)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7752" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0274 0 0 .48841 442.28 -748.65)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7754" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0213 0 0 .41225 445.88 -698.79)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><linearGradient id="linearGradient7756" x1="618.49" x2="618.49" y1="496.57" y2="499.1" gradientTransform="matrix(1.0122 0 0 .25993 451.29 -613.82)" gradientUnits="userSpaceOnUse"><stop stop-color="#ccc" offset="0"></stop><stop stop-color="#ccc" stop-opacity="0" offset="1"></stop></linearGradient><clipPath id="clipPath1318"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1322"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1326"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1330"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1334"><rect x="211.98" y="350.38" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1338"><rect x="620" y="321.05" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1342"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1346"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1350"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1354"><rect x="415.33" y="350.38" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1358"><rect x="415.33" y="350.38" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1362"><rect x="618.68" y="350.38" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1366"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1370"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1374"><rect x="618.68" y="336.2" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1378"><rect x="618.68" y="350.38" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath><clipPath id="clipPath1382"><rect x="618.68" y="350.38" width="107.89" height="491.49" rx="1" ry="112.86" fill="#0d0000" fill-opacity=".14859" stroke-opacity="0" style="paint-order:fill markers stroke;"></rect></clipPath></defs><g transform="translate(-621.34 -349.25)"><g transform="translate(0,-14.18)" clip-path="url(#clipPath1382)" fill="#b3b3b3"><g stroke="#b4b4b4" stroke-linecap="round"><g stroke-width="2.2535"><path d="m686.4 383.13h34.461"></path><path d="m686.4 434.78h34.461"></path><path d="m686.4 602.64h34.461"></path><path d="m686.4 654.29h34.461"></path><path d="m686.4 705.94h34.461"></path><path d="m686.4 757.59h34.461"></path><path d="m686.4 809.24h34.461"></path></g><g stroke-width="1.4468"><path d="m707.72 396.04h13.549"></path><path d="m707.72 408.95h13.549"></path><path d="m707.72 421.86h13.549"></path><path d="m707.72 447.69h13.549"></path><path d="m707.72 460.6h13.549"></path><path d="m707.72 473.51h13.549"></path><path d="m707.72 615.55h13.549"></path><path d="m707.72 628.46h13.549"></path><path d="m707.72 641.38h13.549"></path><path d="m707.72 667.2h13.549"></path><path d="m707.72 680.11h13.549"></path><path d="m707.72 693.03h13.549"></path><path d="m707.72 718.85h13.549"></path><path d="m707.72 731.76h13.549"></path><path d="m707.72 744.68h13.549"></path><path d="m707.72 770.5h13.549"></path><path d="m707.72 783.41h13.549"></path></g><path d="m686.4 538.08h34.461" stroke-width="2.2535"></path><g stroke-width="1.4468"><path d="m707.72 563.9h13.549"></path><path d="m707.72 576.81h13.549"></path><path d="m707.72 589.73h13.549"></path><path d="m707.72 499.34h13.549"></path><path d="m707.72 512.25h13.549"></path><path d="m707.72 525.16h13.549"></path></g></g><g font-family="Sawasdee" font-size="20px" letter-spacing="0px" word-spacing="0px"><text x="732.51788" y="816.73883" style="line-height:125%;" xml:space="preserve"><tspan x="732.51788" y="816.73883">60</tspan></text><text x="732.48859" y="764.85846" style="line-height:125%;" xml:space="preserve"><tspan x="732.48859" y="764.85846">50</tspan></text><text x="732.9671" y="713.24292" style="line-height:125%;" xml:space="preserve"><tspan x="732.9671" y="713.24292">40</tspan></text><text x="732.29816" y="661.56879" style="line-height:125%;" xml:space="preserve"><tspan x="732.29816" y="661.56879">30</tspan></text><text x="732.47394" y="609.91901" style="line-height:125%;" xml:space="preserve"><tspan x="732.47394" y="609.91901">20</tspan></text><text x="731.29718" y="545.35681" style="line-height:125%;" xml:space="preserve"><tspan x="731.29718" y="545.35681">10</tspan></text><text x="738.29425" y="493.71683" style="line-height:125%;" xml:space="preserve"><tspan x="738.29425" y="493.71683">0</tspan></text><text x="738.29913" y="441.98407" style="line-height:125%;" xml:space="preserve"><tspan x="738.29913" y="441.98407">5</tspan></text><text x="731.29718" y="390.41727" style="line-height:125%;" xml:space="preserve"><tspan x="731.29718" y="390.41727">10</tspan></text></g><path d="m708.23 796.33h13.549" stroke="#b4b4b4" stroke-linecap="round" stroke-width="1.4468"></path><g transform="translate(0,3.0785)" stroke="#b4b4b4" stroke-linecap="round"><path d="m657.43 380.16h-34.461" stroke-width="2.2535"></path><path d="m657.43 431.81h-34.461" stroke-width="2.2535"></path><path d="m658.06 483.46h-34.461" stroke-width="3.5"></path><g stroke-width="2.2535"><path d="m657.43 599.68h-34.461"></path><path d="m657.43 651.33h-34.461"></path><path d="m657.43 702.98h-34.461"></path><path d="m657.43 754.62h-34.461"></path><path d="m657.43 806.27h-34.461"></path></g><g stroke-width="1.4468"><path d="m636.12 393.08h-13.549"></path><path d="m636.12 405.99h-13.549"></path><path d="m636.12 418.9h-13.549"></path><path d="m636.12 444.73h-13.549"></path><path d="m636.12 457.64h-13.549"></path><path d="m636.12 470.55h-13.549"></path><path d="m636.12 612.59h-13.549"></path><path d="m636.12 625.5h-13.549"></path><path d="m636.12 638.41h-13.549"></path><path d="m636.12 664.24h-13.549"></path><path d="m636.12 677.15h-13.549"></path><path d="m636.12 690.06h-13.549"></path><path d="m636.12 715.89h-13.549"></path><path d="m636.12 728.8h-13.549"></path><path d="m636.12 741.71h-13.549"></path><path d="m636.12 767.54h-13.549"></path><path d="m636.12 780.45h-13.549"></path></g><path d="m657.43 535.11h-34.461" stroke-width="2.2535"></path><g stroke-width="1.4468"><path d="m636.12 560.94h-13.549"></path><path d="m636.12 573.85h-13.549"></path><path d="m636.12 586.76h-13.549"></path><path d="m636.12 496.38h-13.549"></path><path d="m636.12 509.29h-13.549"></path><path d="m636.12 522.2h-13.549"></path><path d="m635.61 793.36h-13.549"></path></g></g></g><g transform="translate(0,-14.18)" clip-path="url(#clipPath1378)" stroke-linecap="round"><path d="m673.43 370.93v445.71" fill="#333" stroke="#414141" stroke-width="15"></path><path d="m673.43 370.93v445.71" fill="#454545" stroke="#494949" stroke-width="14.545"></path><path d="m673.43 370.93v445.71" fill="#585858" stroke="#515151" stroke-width="14.091"></path><path d="m673.43 370.93v445.71" fill="#6a6a6a" stroke="#595959" stroke-width="13.636"></path><path d="m673.43 370.93v445.71" fill="#7d7d7d" stroke="#616161" stroke-width="13.182"></path><path d="m673.43 370.93v445.71" fill="#8f8f8f" stroke="#696969" stroke-width="12.727"></path><path d="m673.43 370.93v445.71" fill="#a2a2a2" stroke="#717171" stroke-width="12.273"></path><path d="m673.43 370.93v445.71" fill="#b4b4b4" stroke="#797979" stroke-width="11.818"></path><path d="m673.43 370.93v445.71" fill="#c7c7c7" stroke="#818181" stroke-width="11.364"></path><path d="m673.43 370.93v445.71" fill="#d9d9d9" stroke="#898989" stroke-width="10.909"></path><path d="m673.43 370.93v445.71" fill="#ececec" stroke="#919191" stroke-width="10.455"></path><path d="m673.43 370.93v445.71" fill="#fff" stroke="#9a9a9a" stroke-width="10"></path></g><g stroke-linecap="round"><path d="m673.43 356.75v445.71" clip-path="url(#clipPath1374)" fill="#333" stroke="#414141" stroke-width="15"></path><path d="m679.64 802.47v-445.18" clip-path="url(#clipPath1370)" fill="#999" stroke="#b1b1b1" stroke-width=".6"></path><path d="m673.43 356.75v445.71" clip-path="url(#clipPath1366)" fill="#fff" opacity=".50896" stroke="url(#linearGradient7595)" stroke-width="12"></path></g><g transform="translate(203.35,-14.18)" clip-path="url(#clipPath1358)" fill="#b3b3b3"><g stroke="#b4b4b4" stroke-linecap="round"><g stroke-width="2.2535"><path d="m686.4 383.13h34.461"></path><path d="m686.4 434.78h34.461"></path><path d="m686.4 602.64h34.461"></path><path d="m686.4 654.29h34.461"></path><path d="m686.4 705.94h34.461"></path><path d="m686.4 757.59h34.461"></path><path d="m686.4 809.24h34.461"></path></g><g stroke-width="1.4468"><path d="m707.72 396.04h13.549"></path><path d="m707.72 408.95h13.549"></path><path d="m707.72 421.86h13.549"></path><path d="m707.72 447.69h13.549"></path><path d="m707.72 460.6h13.549"></path><path d="m707.72 473.51h13.549"></path><path d="m707.72 615.55h13.549"></path><path d="m707.72 628.46h13.549"></path><path d="m707.72 641.38h13.549"></path><path d="m707.72 667.2h13.549"></path><path d="m707.72 680.11h13.549"></path><path d="m707.72 693.03h13.549"></path><path d="m707.72 718.85h13.549"></path><path d="m707.72 731.76h13.549"></path><path d="m707.72 744.68h13.549"></path><path d="m707.72 770.5h13.549"></path><path d="m707.72 783.41h13.549"></path></g><path d="m686.4 538.08h34.461" stroke-width="2.2535"></path><g stroke-width="1.4468"><path d="m707.72 563.9h13.549"></path><path d="m707.72 576.81h13.549"></path><path d="m707.72 589.73h13.549"></path><path d="m707.72 499.34h13.549"></path><path d="m707.72 512.25h13.549"></path><path d="m707.72 525.16h13.549"></path></g></g><g font-family="Sawasdee" font-size="20px" letter-spacing="0px" word-spacing="0px"><text x="732.51788" y="816.73883" style="line-height:125%;" xml:space="preserve"><tspan x="732.51788" y="816.73883">60</tspan></text><text x="732.48859" y="764.85846" style="line-height:125%;" xml:space="preserve"><tspan x="732.48859" y="764.85846">50</tspan></text><text x="732.9671" y="713.24292" style="line-height:125%;" xml:space="preserve"><tspan x="732.9671" y="713.24292">40</tspan></text><text x="732.29816" y="661.56879" style="line-height:125%;" xml:space="preserve"><tspan x="732.29816" y="661.56879">30</tspan></text><text x="732.47394" y="609.91901" style="line-height:125%;" xml:space="preserve"><tspan x="732.47394" y="609.91901">20</tspan></text><text x="731.29718" y="545.35681" style="line-height:125%;" xml:space="preserve"><tspan x="731.29718" y="545.35681">10</tspan></text><text x="738.29425" y="493.71683" style="line-height:125%;" xml:space="preserve"><tspan x="738.29425" y="493.71683">0</tspan></text><text x="738.29913" y="441.98407" style="line-height:125%;" xml:space="preserve"><tspan x="738.29913" y="441.98407">5</tspan></text><text x="731.29718" y="390.41727" style="line-height:125%;" xml:space="preserve"><tspan x="731.29718" y="390.41727">10</tspan></text></g><path d="m708.23 796.33h13.549" stroke="#b4b4b4" stroke-linecap="round" stroke-width="1.4468"></path><g transform="translate(0,3.0785)" stroke="#b4b4b4" stroke-linecap="round"><path d="m657.43 380.16h-34.461" stroke-width="2.2535"></path><path d="m657.43 431.81h-34.461" stroke-width="2.2535"></path><path d="m658.06 483.46h-34.461" stroke-width="3.5"></path><g stroke-width="2.2535"><path d="m657.43 599.68h-34.461"></path><path d="m657.43 651.33h-34.461"></path><path d="m657.43 702.98h-34.461"></path><path d="m657.43 754.62h-34.461"></path><path d="m657.43 806.27h-34.461"></path></g><g stroke-width="1.4468"><path d="m636.12 393.08h-13.549"></path><path d="m636.12 405.99h-13.549"></path><path d="m636.12 418.9h-13.549"></path><path d="m636.12 444.73h-13.549"></path><path d="m636.12 457.64h-13.549"></path><path d="m636.12 470.55h-13.549"></path><path d="m636.12 612.59h-13.549"></path><path d="m636.12 625.5h-13.549"></path><path d="m636.12 638.41h-13.549"></path><path d="m636.12 664.24h-13.549"></path><path d="m636.12 677.15h-13.549"></path><path d="m636.12 690.06h-13.549"></path><path d="m636.12 715.89h-13.549"></path><path d="m636.12 728.8h-13.549"></path><path d="m636.12 741.71h-13.549"></path><path d="m636.12 767.54h-13.549"></path><path d="m636.12 780.45h-13.549"></path></g><path d="m657.43 535.11h-34.461" stroke-width="2.2535"></path><g stroke-width="1.4468"><path d="m636.12 560.94h-13.549"></path><path d="m636.12 573.85h-13.549"></path><path d="m636.12 586.76h-13.549"></path><path d="m636.12 496.38h-13.549"></path><path d="m636.12 509.29h-13.549"></path><path d="m636.12 522.2h-13.549"></path><path d="m635.61 793.36h-13.549"></path></g></g></g><g transform="translate(203.35,-14.18)" clip-path="url(#clipPath1354)" stroke-linecap="round"><path d="m673.43 370.93v445.71" fill="#333" stroke="#414141" stroke-width="15"></path><path d="m673.43 370.93v445.71" fill="#454545" stroke="#494949" stroke-width="14.545"></path><path d="m673.43 370.93v445.71" fill="#585858" stroke="#515151" stroke-width="14.091"></path><path d="m673.43 370.93v445.71" fill="#6a6a6a" stroke="#595959" stroke-width="13.636"></path><path d="m673.43 370.93v445.71" fill="#7d7d7d" stroke="#616161" stroke-width="13.182"></path><path d="m673.43 370.93v445.71" fill="#8f8f8f" stroke="#696969" stroke-width="12.727"></path><path d="m673.43 370.93v445.71" fill="#a2a2a2" stroke="#717171" stroke-width="12.273"></path><path d="m673.43 370.93v445.71" fill="#b4b4b4" stroke="#797979" stroke-width="11.818"></path><path d="m673.43 370.93v445.71" fill="#c7c7c7" stroke="#818181" stroke-width="11.364"></path><path d="m673.43 370.93v445.71" fill="#d9d9d9" stroke="#898989" stroke-width="10.909"></path><path d="m673.43 370.93v445.71" fill="#ececec" stroke="#919191" stroke-width="10.455"></path><path d="m673.43 370.93v445.71" fill="#fff" stroke="#9a9a9a" stroke-width="10"></path></g><g stroke-linecap="round"><path d="m876.78 356.75v445.71" clip-path="url(#clipPath1350)" fill="#333" stroke="#414141" stroke-width="15"></path><path d="m882.99 802.47v-445.18" clip-path="url(#clipPath1346)" fill="#999" stroke="#b1b1b1" stroke-width=".6"></path><path d="m876.78 356.75v445.71" clip-path="url(#clipPath1342)" fill="#fff" opacity=".50896" stroke="url(#linearGradient7468)" stroke-width="12"></path></g><g transform="translate(-1.3202,15.152)" clip-path="url(#clipPath1338)"><path transform="matrix(.53231 0 0 .99811 560.96 12.701)" d="m649.84 478.85v126.27l31.315-18.94s-35.355-47.982 0-83.338c-27.779-21.466-31.315-23.991-31.315-23.991z" fill="#a1a1a1" filter="url(#filter4165-1)"></path><path d="m890.45 497.09h34.461" fill="#e6e6e6" stroke="#b4b4b4" stroke-linecap="round" stroke-width="3.5"></path><rect x="847.03" y="488.03" width="62.143" height="129.29" rx="3" ry="3" fill="#4d4d4d"></rect><rect x="847.97" y="552.42" width="60.419" height="3.5355" fill="#e6e6e6"></rect><rect x="847.72" y="488.74" width="60.613" height="21.071" rx="2.1483" ry="2" fill="url(#linearGradient7718)"></rect><rect x="847.92" y="540.26" width="58.811" height="10.119" fill="#333"></rect><rect x="847.03" y="530.89" width="61.133" height="8.7929" fill="#333"></rect><rect x="847.03" y="512.48" width="61.133" height="4.5457" fill="#1a1a1a"></rect><rect x="847.03" y="518.25" width="61.133" height="11.364" fill="#1a1a1a"></rect><rect transform="scale(1,-1)" x="847.72" y="-511.76" width="60.012" height="2.2612" rx="1.0235" ry=".63958" fill="url(#linearGradient7720)"></rect><rect x="847.89" y="517.03" width="58.633" height="1.1452" rx="1" ry=".3239" fill="url(#linearGradient7722)"></rect><rect x="847.89" y="529.76" width="58.633" height=".9666" rx="1" ry=".2734" fill="url(#linearGradient7724)"></rect><rect x="847.89" y="539.01" width="58.633" height=".60946" rx="1" ry=".17238" fill="url(#linearGradient7726)"></rect><rect transform="scale(1,-1)" x="847.34" y="-616.24" width="61.118" height="20.321" rx="2.1662" ry="1.9288" fill="url(#linearGradient7728)"></rect><rect transform="scale(1,-1)" x="847.92" y="-567.93" width="58.811" height="9.7593" fill="#333"></rect><rect transform="scale(1,-1)" x="847.03" y="-576.96" width="61.133" height="8.4799" fill="#666"></rect><rect transform="scale(1,-1)" x="847.03" y="-594.72" width="61.133" height="4.3839" fill="#808080"></rect><rect transform="scale(1,-1)" x="847.03" y="-589.16" width="61.133" height="10.96" fill="#808080"></rect><rect transform="scale(1,-1)" x="847.34" y="-597.6" width="60.767" height="2.1808" rx="1.0364" ry=".61681" fill="url(#linearGradient7730)"></rect><rect transform="scale(1,-1)" x="847.89" y="-590.84" width="60.24" height="1.1044" rx="1.0274" ry=".31237" fill="url(#linearGradient7732)"></rect><rect transform="scale(1,-1)" x="847.89" y="-578.82" width="59.883" height=".9322" rx="1.0213" ry=".26366" fill="url(#linearGradient7734)"></rect><rect transform="scale(1,-1)" x="847.89" y="-569.52" width="59.347" height=".58776" rx="1.0122" ry=".16624" fill="url(#linearGradient7736)"></rect></g><g transform="translate(406.7,-14.18)" clip-path="url(#clipPath1334)" stroke-linecap="round"><path d="m673.43 370.93v445.71" fill="#333" stroke="#414141" stroke-width="15"></path><path d="m673.43 370.93v445.71" fill="#454545" stroke="#494949" stroke-width="14.545"></path><path d="m673.43 370.93v445.71" fill="#585858" stroke="#515151" stroke-width="14.091"></path><path d="m673.43 370.93v445.71" fill="#6a6a6a" stroke="#595959" stroke-width="13.636"></path><path d="m673.43 370.93v445.71" fill="#7d7d7d" stroke="#616161" stroke-width="13.182"></path><path d="m673.43 370.93v445.71" fill="#8f8f8f" stroke="#696969" stroke-width="12.727"></path><path d="m673.43 370.93v445.71" fill="#a2a2a2" stroke="#717171" stroke-width="12.273"></path><path d="m673.43 370.93v445.71" fill="#b4b4b4" stroke="#797979" stroke-width="11.818"></path><path d="m673.43 370.93v445.71" fill="#c7c7c7" stroke="#818181" stroke-width="11.364"></path><path d="m673.43 370.93v445.71" fill="#d9d9d9" stroke="#898989" stroke-width="10.909"></path><path d="m673.43 370.93v445.71" fill="#ececec" stroke="#919191" stroke-width="10.455"></path><path d="m673.43 370.93v445.71" fill="#fff" stroke="#9a9a9a" stroke-width="10"></path></g><g stroke-linecap="round"><path d="m1080.1 356.75v445.71" clip-path="url(#clipPath1330)" fill="#333" stroke="#414141" stroke-width="15"></path><path d="m1086.3 802.47v-445.18" clip-path="url(#clipPath1326)" fill="#999" stroke="#b1b1b1" stroke-width=".6"></path><path d="m1080.1 356.75v445.71" clip-path="url(#clipPath1322)" fill="#fff" opacity=".50896" stroke="url(#linearGradient7341)" stroke-width="12"></path></g><g clip-path="url(#clipPath1318)"><path transform="matrix(.53231 0 0 .99811 762.99 -72.147)" d="m649.84 478.85v126.27l31.315-18.94s-35.355-47.982 0-83.338c-27.779-21.466-31.315-23.991-31.315-23.991z" fill="#a1a1a1" filter="url(#filter4165-4)"></path><path d="m1092.5 412.25h34.461" fill="#e6e6e6" stroke="#b4b4b4" stroke-linecap="round" stroke-width="3.5"></path><rect x="1049.1" y="403.18" width="62.143" height="129.29" rx="3" ry="3" fill="#4d4d4d"></rect><rect x="1050" y="467.57" width="60.419" height="3.5355" fill="#e6e6e6"></rect><rect x="1049.8" y="403.9" width="60.613" height="21.071" rx="2.1483" ry="2" fill="url(#linearGradient7738)"></rect><rect x="1050" y="455.41" width="58.811" height="10.119" fill="#333"></rect><rect x="1049.1" y="446.05" width="61.133" height="8.7929" fill="#333"></rect><rect x="1049.1" y="427.63" width="61.133" height="4.5457" fill="#1a1a1a"></rect><rect x="1049.1" y="433.4" width="61.133" height="11.364" fill="#1a1a1a"></rect><rect transform="scale(1,-1)" x="1049.8" y="-426.91" width="60.012" height="2.2612" rx="1.0235" ry=".63958" fill="url(#linearGradient7740)"></rect><rect x="1049.9" y="432.19" width="58.633" height="1.1452" rx="1" ry=".3239" fill="url(#linearGradient7742)"></rect><rect x="1049.9" y="444.91" width="58.633" height=".9666" rx="1" ry=".2734" fill="url(#linearGradient7744)"></rect><rect x="1049.9" y="454.16" width="58.633" height=".60946" rx="1" ry=".17238" fill="url(#linearGradient7746)"></rect><rect transform="scale(1,-1)" x="1049.4" y="-531.39" width="61.118" height="20.321" rx="2.1662" ry="1.9288" fill="url(#linearGradient7748)"></rect><rect transform="scale(1,-1)" x="1050" y="-483.08" width="58.811" height="9.7593" fill="#333"></rect><rect transform="scale(1,-1)" x="1049.1" y="-492.12" width="61.133" height="8.4799" fill="#666"></rect><rect transform="scale(1,-1)" x="1049.1" y="-509.88" width="61.133" height="4.3839" fill="#808080"></rect><rect transform="scale(1,-1)" x="1049.1" y="-504.31" width="61.133" height="10.96" fill="#808080"></rect><rect transform="scale(1,-1)" x="1049.4" y="-512.75" width="60.767" height="2.1808" rx="1.0364" ry=".61681" fill="url(#linearGradient7750)"></rect><rect transform="scale(1,-1)" x="1049.9" y="-505.99" width="60.24" height="1.1044" rx="1.0274" ry=".31237" fill="url(#linearGradient7752)"></rect><rect transform="scale(1,-1)" x="1049.9" y="-493.97" width="59.883" height=".9322" rx="1.0213" ry=".26366" fill="url(#linearGradient7754)"></rect><rect transform="scale(1,-1)" x="1049.9" y="-484.67" width="59.347" height=".58776" rx="1.0122" ry=".16624" fill="url(#linearGradient7756)"></rect></g></g>',2)])])}const ut=V(dt,[["render",ct]]),pt=a.defineComponent({name:"VAFader",components:{defaultFaderHead:lt,defaultFaderBackground:ut},emits:["update:modelValue"],setup(e){const t=a.ref(new J(e.minValue,e.maxValue)),r=a.ref(0),i=a.ref(e.modelValue),n=a.ref(t.value.getCurvedValue(e.modelValue)),s=a.ref(0),o=a.ref(void 0);return{valueCurve:t,faderContainerY:r,linearValue:i,curvedValue:n,faderHeadHeight:s,resizeObserver:o}},props:{modelValue:{required:!0,type:Number},minValue:{required:!0,type:Number},maxValue:{required:!0,type:Number},height:{required:!1,type:Number,default:200},width:{required:!1,type:Number,default:46},default:{required:!1,type:Number}},computed:{midValue(){return this.minValue+this.valueRange/2},valueRange(){return this.maxValue-this.minValue},faderDragRange(){return Math.abs(this.height-this.faderHeadHeight)},faderHeadTop(){const e=(this.linearValue-this.minValue)/(this.maxValue-this.minValue);return this.faderDragRange-e*this.faderDragRange},cssVars(){return{"--fader-height":`${this.height}px`,"--fader-width":`${this.width}px`,"--fader-head-top":`${this.faderHeadTop}px`}}},mounted(){this.resizeObserver=new ResizeObserver((e,t)=>{this.faderHeadHeight=this.getFaderHeadHeight()}),this.resizeObserver.observe(this.$refs.faderHead)},unmounted(){this.resizeObserver?.disconnect()},methods:{getContainedImgOrSvg(e){if(e.children.length==1){if(e.children.item(0)instanceof SVGElement)return e.children.item(0);if(e.children.item(0)instanceof HTMLImageElement)return e.children.item(0)}},getFaderHeadHeight(){const e=this.$refs.faderHead,t=this.getContainedImgOrSvg(e);return t?t.getBoundingClientRect().height:e.getBoundingClientRect().height},onHeadMouseDown(e){e.preventDefault(),this.faderContainerY=this.$refs.faderContainer.getBoundingClientRect().y,this.faderHeadHeight=this.getFaderHeadHeight(),document.addEventListener("mousemove",this.onHeadMouseDrag),document.addEventListener("touchmove",this.onHeadTouchDrag),document.addEventListener("mouseup",this.onDocumentMouseUp),document.addEventListener("touchend",this.onDocumentMouseUp)},onDocumentMouseUp(){document.removeEventListener("mousemove",this.onHeadMouseDrag),document.removeEventListener("touchmove",this.onHeadTouchDrag),document.removeEventListener("mouseup",this.onDocumentMouseUp),document.removeEventListener("touchend",this.onDocumentMouseUp)},onHeadDblClick(){const e=typeof this.default>"u"?this.midValue:this.default;this.$emit("update:modelValue",this.valueCurve.getCurvedValue(e))},onHeadDrag(e){let t=e-this.faderContainerY;t>this.height?t=this.height:t<0&&(t=0);const i=(this.height-t)/this.height*this.valueRange+this.minValue;this.$emit("update:modelValue",this.valueCurve.getCurvedValue(i))},onHeadTouchDrag(e){e.touches[0]&&this.onHeadDrag(e.touches[0].clientY)},onHeadMouseDrag(e){this.onHeadDrag(e.clientY)}},watch:{modelValue(e){this.curvedValue=e,this.linearValue=this.valueCurve.getLinearValue(this.curvedValue)},minValue(e){this.valueCurve=new J(e,this.maxValue)},maxValue(e){this.valueCurve=new J(this.minValue,e)}}}),ft={ref:"faderBackground",class:"fader-background"};function mt(e,t,r,i,n,s){const o=a.resolveComponent("defaultFaderBackground"),h=a.resolveComponent("defaultFaderHead");return a.openBlock(),a.createElementBlock("div",{ref:"faderContainer",class:"fader-container",style:a.normalizeStyle(e.cssVars)},[a.createElementVNode("div",ft,[a.renderSlot(e.$slots,"faderBackground",{},()=>[a.createVNode(o)],!0)],512),a.createElementVNode("div",{ref:"faderHead",class:"fader-head",onMousedown:t[0]||(t[0]=(...g)=>e.onHeadMouseDown&&e.onHeadMouseDown(...g)),onTouchstart:t[1]||(t[1]=(...g)=>e.onHeadMouseDown&&e.onHeadMouseDown(...g)),onDblclick:t[2]||(t[2]=(...g)=>e.onHeadDblClick&&e.onHeadDblClick(...g))},[a.renderSlot(e.$slots,"faderHead",{},()=>[a.createVNode(h)],!0)],544)],4)}const ve=V(pt,[["render",mt],["__scopeId","data-v-9d74edfd"]]),gt={},yt={width:"50",height:"50",viewBox:"0 0 100 100"};function vt(e,t){return a.openBlock(),a.createElementBlock("svg",yt,[...t[0]||(t[0]=[a.createStaticVNode(`<g data-v-3cef4f4a><g data-v-3cef4f4a><circle class="st0" cx="50%" cy="50%" r="50%" data-v-3cef4f4a></circle><g transform="translate(-20 -20)" data-v-3cef4f4a><g transform="translate(0 -6)" data-v-3cef4f4a><path d="M109.4,78.2c-2.3-2.5-4-5.6-4.6-9c-0.7-3.5-0.5-6.9,0.6-10.2c-2.2-4.6-5.3-8.6-9.2-11.9c-3.3,0.2-6.8-0.4-10-2
2
+ s-5.8-4-7.7-6.7c-5.1-1-10.2-1.1-15-0.2c-1.9,2.8-4.6,5.1-7.8,6.6s-6.7,2.1-10.1,1.7c-3.8,3.1-7.1,7.1-9.5,11.6
3
+ c0.9,3.2,1.1,6.7,0.4,10.2c-0.9,3.5-2.6,6.5-5,8.9c0.1,5.1,1.1,10.1,3.1,14.6c3.1,1.2,5.9,3.2,8.2,6.2c2.2,2.8,3.5,6.2,4,9.4
4
+ c4,3,8.4,5.3,13.5,6.7c2.9-1.6,6.3-2.6,9.9-2.6s6.9,1,9.9,2.8c4.8-1.1,9.5-3.3,13.6-6.4c0.6-3.3,1.9-6.5,4.2-9.3
5
+ c2.3-2.8,5.2-4.7,8.4-5.9c1-2.2,1.9-4.6,2.5-7.1C109.1,83.4,109.3,80.7,109.4,78.2z" data-v-3cef4f4a></path></g><ellipse class="st1" cx="70.4" cy="70.4" rx="26.7" ry="26.7" data-v-3cef4f4a></ellipse><g transform="translate(0 -8)" data-v-3cef4f4a><path class="st2" d="M71.5,28.5c-0.4,0-0.9,0-1.1,0c-0.3,0-0.9,0-1.1,0v31h2.5v-31H71.5z" data-v-3cef4f4a></path></g></g></g></g>`,1)])])}const kt=V(gt,[["render",vt],["__scopeId","data-v-3cef4f4a"]]),xt=a.defineComponent({components:{defaultKnob:kt},setup(e){const t={curvedValue:0,linearValue:0,unsteppedValue:0,rotationMax:3*Math.PI/4,dragRange:70,prevY:-1,valueCurve:new J(e.minValue,e.maxValue)};return e.modelValue instanceof Number&&(t.linearValue=e.modelValue,t.curvedValue=t.valueCurve.getCurvedValue(e.modelValue),t.unsteppedValue=t.curvedValue),a.reactive(t)},props:{modelValue:{required:!0,type:Number},minValue:{required:!0,type:Number},maxValue:{required:!0,type:Number},step:{required:!1,type:Number,default:0},size:{required:!1,type:Number,default:60},default:{required:!1,type:Number}},computed:{knobRotation(){return(this.linearValue-this.midValue)/(this.valueRange/2)*this.rotationMax},midValue(){return this.minValue+this.valueRange/2},valueRange(){return this.maxValue-this.minValue}},methods:{onKnobMouseDown(e){e.preventDefault(),document.addEventListener("mousemove",this.onKnobMouseDrag),document.addEventListener("touchmove",this.onKnobTouchDrag),document.addEventListener("mouseup",this.onDocumentMouseUp),document.addEventListener("touchend",this.onDocumentMouseUp)},onDocumentMouseUp(){document.removeEventListener("mousemove",this.onKnobMouseDrag),document.removeEventListener("touchmove",this.onKnobTouchDrag),document.removeEventListener("mouseup",this.onDocumentMouseUp),document.removeEventListener("touchend",this.onDocumentMouseUp),this.prevY=-1},onKnobDblClick(){const e=typeof this.default>"u"?this.midValue:this.default;this.unsteppedValue=e,this.$emit("update:modelValue",this.valueCurve.getCurvedValue(e))},roundToStep(e){if(this.step===0)throw"step is zero or undefined";const t=Math.round(e/this.step)*this.step;return I(t,this.minValue,this.maxValue)},onKnobDrag(e){if(this.prevY>=0){const t=this.prevY-e;let r=this.unsteppedValue+t/this.dragRange*(this.valueRange/2);r=I(r,this.minValue,this.maxValue),this.unsteppedValue=r;const i=this.step===0?this.unsteppedValue:this.roundToStep(this.unsteppedValue);this.$emit("update:modelValue",this.valueCurve.getCurvedValue(i))}},onKnobTouchDrag(e){e.touches[0]&&(this.onKnobDrag(e.touches[0].pageY),this.prevY=e.touches[0].pageY)},onKnobMouseDrag(e){this.onKnobDrag(e.pageY),this.prevY=e.pageY}},watch:{modelValue(e){this.curvedValue=e,this.unsteppedValue=this.valueCurve.getLinearValue(this.curvedValue),this.linearValue=this.step===0?this.unsteppedValue:this.roundToStep(this.unsteppedValue)}}}),wt={class:"control-container"},Ct={class:"knob-row"};function bt(e,t,r,i,n,s){const o=a.resolveComponent("default-knob");return a.openBlock(),a.createElementBlock("div",wt,[a.createElementVNode("div",Ct,[a.createElementVNode("span",{onMousedown:t[0]||(t[0]=(...h)=>e.onKnobMouseDown&&e.onKnobMouseDown(...h)),onTouchstart:t[1]||(t[1]=(...h)=>e.onKnobMouseDown&&e.onKnobMouseDown(...h)),onDblclick:t[2]||(t[2]=(...h)=>e.onKnobDblClick&&e.onKnobDblClick(...h)),class:"knob-container",style:a.normalizeStyle(`transform: rotate(${e.knobRotation}rad); width: ${e.size}px; height: ${e.size}px;`)},[a.renderSlot(e.$slots,"default",{},()=>[a.createVNode(o)],!0)],36)])])}const ke=V(xt,[["render",bt],["__scopeId","data-v-516025e9"]]),H=20,F=-120,Vt=3,Mt=a.defineComponent({name:"VASpectrumAnalyzer",data(){return{continueDrawing:!1,canvas:null,canvasContext:null}},props:{input:{required:!1,type:AudioNode},fftSize:{type:Number,required:!1,default:1024},height:{type:Number,required:!1},width:{type:Number,required:!1,default:500},fillStyle:{type:String,required:!1,default:"none"},lineColor:{type:String,required:!1},backgroundColor:{type:String,required:!1,default:"black"},gridColor:{type:String,required:!1,default:"gray"},dbColor:{type:String,required:!1,default:"gray"},hzColor:{type:String,required:!1,default:"white"},font:{required:!1,type:String,default:"Helvetica, sans-serif"}},setup(e){const t=Q(e.fftSize,e.input);return a.watch(()=>e.input,t.onInputChanged),{...t,...ee()}},computed:{graphWidth(){return this.width},graphHeight(){return this.height?this.height:this.width/Vt},cssVars(){return{"--border-color":this.backgroundColor}}},mounted(){this.canvasContext=this.$refs.analyserCanvas.getContext("2d"),this.startRendering(this.drawFrequencyDomain)},methods:{scaleX(e,t,r,i){const n=.30111412225233364;let s=(r-t)/r;s*=1-n,s=1-s;let o=(e-t)/(r-t);return o=Math.pow(o,s),o<1&&(o*=i),o},scaleXLegacy(e,t,r,i){return Math.floor(Math.log2(e-t)/Math.log2(r-t)*i)},drawFrequencyDomain(){if(this.canvasContext){const e=0-F,t=this.input?this.input.context.sampleRate/2:24e3,r=this.getFloatFrequencyData();if(this.canvasContext.clearRect(0,0,this.graphWidth,this.graphHeight),this.canvasContext.fillStyle=this.backgroundColor,this.canvasContext.fillRect(0,0,this.graphWidth,this.graphHeight),r){this.canvasContext.beginPath(),this.canvasContext.lineWidth=1,this.canvasContext.strokeStyle=this.lineColor??w.colors.primary,this.canvasContext.fillStyle=this.lineColor??w.colors.primary,this.canvasContext.moveTo(0,this.graphHeight);let i=0,n=this.graphHeight-(r[0]-F)/e*this.graphHeight;for(let s=0;s<r.length;s++){const o=(r[s]-F)/e*this.graphHeight,h=s*(t/r.length);this.canvasContext.lineTo(i,n),h>=H&&(i=this.scaleX(h,H,t,this.graphWidth),n=this.graphHeight-o,this.fillStyle==="lines"&&this.canvasContext.fillRect(i,n,1,o)),this.canvasContext.lineTo(i,n)}this.canvasContext.lineTo(this.graphWidth,this.graphHeight),this.canvasContext.closePath(),this.canvasContext.stroke(),this.fillStyle==="solid"&&this.canvasContext.fill()}this.drawDbMarkers(),this.drawFrequencyMarkers(t)}},drawDbMarkers(){this.drawDbMarker(-20),this.drawDbMarker(-40),this.drawDbMarker(-60),this.drawDbMarker(-80),this.drawDbMarker(-100)},drawDbMarker(e){if(this.canvasContext){const t=this.graphHeight-(F-e)/F*this.graphHeight;this.canvasContext.strokeStyle=this.dbColor,this.canvasContext.beginPath(),this.canvasContext.moveTo(0,t),this.canvasContext.lineTo(this.graphWidth,t),this.canvasContext.stroke(),this.canvasContext.font=`12px ${this.font}`,this.canvasContext.fillStyle=this.gridColor,this.canvasContext.fillText(`${e}db`,10,t)}},drawFrequencyMarkers(e){this.drawFrequencyMarker(H,e,this.graphWidth>300,!1),this.drawFrequencyMarker(25,e),this.drawFrequencyMarker(50,e,!0),this.drawFrequencyMarker(100,e),this.drawFrequencyMarker(200,e,this.graphWidth>600),this.drawFrequencyMarker(500,e,this.graphWidth>300),this.drawFrequencyMarker(1e3,e,this.graphWidth>600),this.drawFrequencyMarker(1500,e),this.drawFrequencyMarker(2e3,e,!0),this.drawFrequencyMarker(3e3,e,this.graphWidth>600),this.drawFrequencyMarker(5e3,e,this.graphWidth>300),this.drawFrequencyMarker(7e3,e,this.graphWidth>600),this.drawFrequencyMarker(1e4,e,!0),this.drawFrequencyMarker(15e3,e,this.graphWidth>600),this.drawFrequencyMarker(2e4,e,this.graphWidth>800)},drawFrequencyMarker(e,t,r=!1,i=!0){if(this.canvasContext&&e>=H){const n=this.scaleX(e,H,t,this.graphWidth);i&&(this.canvasContext.strokeStyle=this.gridColor,this.canvasContext.beginPath(),this.canvasContext.moveTo(n,0),this.canvasContext.lineTo(n,this.graphWidth),this.canvasContext.stroke()),r&&(this.canvasContext.font=`14px ${this.font}`,this.canvasContext.fillStyle=this.hzColor??w.colors.primary,e<1e3?this.canvasContext.fillText(`${e}hz`,n,50):this.canvasContext.fillText(`${e/1e3}khz`,n,50))}}}}),St=["width","height"];function Dt(e,t,r,i,n,s){return a.openBlock(),a.createElementBlock("canvas",{width:e.graphWidth,height:e.graphHeight,ref:"analyserCanvas",class:"analyser-canvas",style:a.normalizeStyle(e.cssVars)},null,12,St)}const xe=V(Mt,[["render",Dt],["__scopeId","data-v-670d0fd3"]]),Gt=["height","width"],Et=3,we=a.defineComponent({__name:"v-a-oscilloscope",props:{input:{type:AudioNode,required:!1},width:{type:Number,required:!1,default:500},height:{type:Number,required:!1},fftSize:{type:Number,required:!1,default:2048,validator(e){return e>=32&&e<=32768&&Re(e)}},lineColor:{type:String,required:!1}},setup(e){const t=e,r=Q(t.fftSize,t.input),i=ee();a.watch(()=>t.input,r.onInputChanged);const n=a.useTemplateRef("analyserCanvas");let s;a.onMounted(()=>{s=n.value?.getContext("2d"),i.startRendering(g)}),a.onUnmounted(h);const o=a.computed(()=>t.height?t.height:t.width/Et);function h(){r.disposeMetering(t.input)}function g(){let k=r.getFloatTimeDomainData();if(!s||(s.fillStyle="black",s.fillRect(0,0,t.width,o.value),!k))return;s.lineWidth=2.5,s.strokeStyle=t.lineColor??w.colors.primary,s.beginPath();const c=t.width/k.length;let l=0,f=0;for(let m=0;m<k.length;m++){const p=-k[m]*o.value/2;f=o.value/2+p,m===0?s.moveTo(l,f):s.lineTo(l,f),l+=c}s.lineTo(t.width,f),s.stroke()}return(k,c)=>(a.openBlock(),a.createElementBlock("canvas",{ref_key:"analyserCanvas",ref:n,height:o.value,width:e.width,class:"analyser-canvas"},null,8,Gt))}}),$t=a.defineComponent({Name:"VAToggleButton",props:{color:{required:!1,type:String,default:"red"},label:{require:!1,type:String,default:""}},setup(e){const t=a.ref(!1),r=a.computed(()=>({"--on-color":`${e.color}`}));function i(){t.value=!t.value}return{on:t,cssVars:r,onButtonClick:i}}});function At(e,t,r,i,n,s){return a.openBlock(),a.createElementBlock("button",{onClick:t[0]||(t[0]=(...o)=>e.onButtonClick&&e.onButtonClick(...o)),class:a.normalizeClass([e.on?"button-on":"button-off","button"]),style:a.normalizeStyle(e.cssVars)},a.toDisplayString(e.label),7)}const Ce=V($t,[["render",At],["__scopeId","data-v-87a8a5ae"]]),Bt=a.defineComponent({emits:["update:modelValue"],props:{modelValue:{type:Object,required:!0},attackMax:{type:Number,required:!1,default:1e3},decayMax:{type:Number,required:!1,default:1e3},releaseMax:{type:Number,required:!1,default:1e3},width:{type:Number,required:!1,default:200},height:{type:Number,required:!1}},setup(e,t){const r=a.ref("black"),i=a.ref("#70bfff"),n=a.ref("#70bfff"),s=a.ref(4),o=a.ref(16),h=.25,g=.4,k=.1,c=.25,l=a.ref(0),f=a.ref(0),m=a.ref(0),p=a.ref(0);let x=0,M=0,S=0,D=0;const G=a.ref(0),u=a.ref(0),d=a.ref(0),y=a.ref(0);let U=0,z=0,ne=0,se=0;const te=a.ref(0),ae=a.ref(0),C=10,A=a.ref("");let Y=-1,le=-1;const De=a.computed(()=>e.modelValue.attack+e.modelValue.decay+e.modelValue.release),de=a.computed(()=>e.width),he=a.computed(()=>e.height?e.height:e.width/2.5),q=a.computed(()=>de.value-C*2),b=a.computed(()=>he.value-C*2),Ge=a.computed(()=>b.value*1),W=a.computed(()=>h*q.value),R=a.computed(()=>W.value*(e.modelValue.attack/e.attackMax)),L=a.computed(()=>g*q.value),_=a.computed(()=>L.value*(e.modelValue.decay/e.decayMax)),K=a.computed(()=>k*q.value),re=a.computed(()=>c*q.value),X=a.computed(()=>re.value*(e.modelValue.release/e.releaseMax)),Ee=a.computed(()=>{l.value=C,f.value=b.value+C,m.value=R.value+C,p.value=C,x=R.value+_.value/4+C,M=(b.value-b.value*e.modelValue.sustain)/2+C,S=R.value+_.value/2+C,D=b.value-b.value*e.modelValue.sustain+C,G.value=R.value+_.value+C,u.value=b.value-b.value*e.modelValue.sustain+C,d.value=W.value+L.value+K.value,y.value=b.value-b.value*e.modelValue.sustain+C,U=W.value+L.value+K.value+X.value/4,z=b.value-b.value*e.modelValue.sustain/2+C,ne=W.value+L.value+K.value+X.value/2,se=b.value+C,te.value=d.value+X.value,ae.value=b.value+C;const v=`M ${l.value} ${f.value} `,Z=`L ${m.value} ${p.value} `,B=`C
6
+ ${x}
7
+ ${M}
8
+ ${S}
9
+ ${D}
10
+ ${G.value}
11
+ ${u.value}`,j=`L ${d.value} ${y.value}`,E=`C
12
+ ${U}
13
+ ${z}
14
+ ${ne}
15
+ ${se}
16
+ ${te.value}
17
+ ${ae.value}`;return v+Z+B+j+E});function $e(v){v.preventDefault?v.preventDefault():v.returnValue=!1,A.value="attackAnchor"}function Ae(v){v.preventDefault?v.preventDefault():v.returnValue=!1,A.value="decaySustainAnchor"}function Be(v){v.preventDefault?v.preventDefault():v.returnValue=!1,A.value="releaseAnchor"}function ie(v,Z){let B,j,E=0,N=0,T=0,P=0;if(A.value!=""){switch(A.value){case"attackAnchor":B=v-Y,E=B/W.value*e.attackMax,E=e.modelValue.attack+E>=e.attackMax&&E>0?e.attackMax-e.modelValue.attack:e.modelValue.attack+E<=0&&E<0?0:E;break;case"decaySustainAnchor":B=v-Y,N=B/L.value*e.decayMax,N=e.modelValue.decay+N>=e.decayMax&&N>0?e.decayMax-e.modelValue.decay:e.modelValue.decay+N<=0&&N<0?0:N,j=Z-le,T=-(j/b.value),T=e.modelValue.sustain+T>=1&&T>0?1-e.modelValue.sustain:e.modelValue.sustain+T<=0&&T<0?0:T;break;case"releaseAnchor":B=v-Y,P=B/re.value*e.releaseMax,P=e.modelValue.release+P>=e.releaseMax&&P>0?e.releaseMax-e.modelValue.release:e.modelValue.release+P<=0&&P<0?0:P;break}t.emit("update:modelValue",{attack:e.modelValue.attack+E,decay:e.modelValue.decay+N,sustain:e.modelValue.sustain+T,release:e.modelValue.release+P})}Y=v,le=Z}function Ne(v){ie(v.pageX,v.pageY)}function Te(v){v.touches[0]&&ie(v.touches[0].pageX,v.touches[0].pageY)}function Pe(){A.value=""}function Ue(){A.value=""}return{backgroundColor:r,envelopeColor:i,anchorColor:n,anchorRadius:s,ghostAnchorRadius:o,activeAnchorId:A,startX:l,startY:f,attackPeakX:m,attackPeakY:p,decayEndX:G,decayEndY:u,releaseEndX:te,releaseEndY:ae,envTime:De,containerWidth:de,containerHeight:he,graphWidth:q,graphHeight:b,envHeight:Ge,attackTotalWidth:W,attackWidth:R,decayTotalWidth:L,decayWidth:_,sustainTotalWidth:K,releaseTotalWidth:re,releaseWidth:X,adsrPath:Ee,attackAnchorMouseDown:$e,decaySustainAnchorMouseDown:Ae,releaseAnchorMouseDown:Be,onMouseUp:Pe,onMouseLeave:Ue,onMove:ie,onMouseMove:Ne,onTouchMove:Te}}}),Nt={class:"component-container"},Tt=["width","height"],Pt=["width","height"],Ut=["width","height","fill"],It=["d","stroke"],zt=["cx","cy","r","stroke","fill"],Wt=["cx","cy","r"],Lt=["cx","cy","r","stroke","fill"],Ot=["cx","cy","r"],qt=["cx","cy","r","stroke","fill"],Rt=["cx","cy","r"],Ht=["cx","cy","r","stroke","fill"],Ft={class:"value-label-container"},Yt={class:"value-label"},_t={class:"value-label"},Kt={class:"value-label"},Xt={class:"value-label"};function Zt(e,t,r,i,n,s){return a.openBlock(),a.createElementBlock("div",Nt,[a.createElementVNode("div",{class:a.normalizeClass(["graph-container",e.activeAnchorId!==""?"dragging":""]),onMousemove:t[12]||(t[12]=(...o)=>e.onMouseMove&&e.onMouseMove(...o)),onTouchmove:t[13]||(t[13]=(...o)=>e.onTouchMove&&e.onTouchMove(...o)),onMouseup:t[14]||(t[14]=(...o)=>e.onMouseUp&&e.onMouseUp(...o)),onTouchend:t[15]||(t[15]=(...o)=>e.onMouseUp&&e.onMouseUp(...o)),onMouseleave:t[16]||(t[16]=(...o)=>e.onMouseLeave&&e.onMouseLeave(...o)),width:e.containerWidth,height:e.containerHeight},[(a.openBlock(),a.createElementBlock("svg",{width:e.containerWidth,height:e.containerHeight},[a.createElementVNode("rect",{width:e.containerWidth,height:e.containerHeight,fill:e.backgroundColor},null,8,Ut),a.createElementVNode("path",{id:"envPath",d:e.adsrPath,fill:"transparent",stroke:e.envelopeColor,"stroke-width":"2"},null,8,It),a.createElementVNode("circle",{class:"anchor",cx:e.startX,cy:e.startY,r:e.anchorRadius,stroke:e.anchorColor,fill:e.anchorColor},null,8,zt),a.createElementVNode("circle",{class:"anchor",id:"attackAnchorGhost",onMousedown:t[0]||(t[0]=(...o)=>e.attackAnchorMouseDown&&e.attackAnchorMouseDown(...o)),onTouchstart:t[1]||(t[1]=(...o)=>e.attackAnchorMouseDown&&e.attackAnchorMouseDown(...o)),cx:e.attackPeakX,cy:e.attackPeakY,r:e.ghostAnchorRadius,stroke:"rgba(0, 0, 0, 0)",fill:"rgba(0, 0, 0, 0)"},null,40,Wt),a.createElementVNode("circle",{class:"anchor",id:"attackAnchor",onMousedown:t[2]||(t[2]=(...o)=>e.attackAnchorMouseDown&&e.attackAnchorMouseDown(...o)),onTouchstart:t[3]||(t[3]=(...o)=>e.attackAnchorMouseDown&&e.attackAnchorMouseDown(...o)),cx:e.attackPeakX,cy:e.attackPeakY,r:e.anchorRadius,stroke:e.anchorColor,fill:e.anchorColor},null,40,Lt),a.createElementVNode("circle",{class:"anchor",id:"decaySustainAnchorGhost",onMousedown:t[4]||(t[4]=(...o)=>e.decaySustainAnchorMouseDown&&e.decaySustainAnchorMouseDown(...o)),onTouchstart:t[5]||(t[5]=(...o)=>e.decaySustainAnchorMouseDown&&e.decaySustainAnchorMouseDown(...o)),cx:e.decayEndX,cy:e.decayEndY,r:e.ghostAnchorRadius,stroke:"rgba(0, 0, 0, 0)",fill:"rgba(0, 0, 0, 0)"},null,40,Ot),a.createElementVNode("circle",{class:"anchor",id:"decaySustainAnchor",onMousedown:t[6]||(t[6]=(...o)=>e.decaySustainAnchorMouseDown&&e.decaySustainAnchorMouseDown(...o)),onTouchstart:t[7]||(t[7]=(...o)=>e.decaySustainAnchorMouseDown&&e.decaySustainAnchorMouseDown(...o)),cx:e.decayEndX,cy:e.decayEndY,r:e.anchorRadius,stroke:e.anchorColor,fill:e.anchorColor},null,40,qt),a.createElementVNode("circle",{class:"anchor",id:"releaseAnchorGhost",onMousedown:t[8]||(t[8]=(...o)=>e.releaseAnchorMouseDown&&e.releaseAnchorMouseDown(...o)),onTouchstart:t[9]||(t[9]=(...o)=>e.releaseAnchorMouseDown&&e.releaseAnchorMouseDown(...o)),cx:e.releaseEndX,cy:e.releaseEndY,r:e.ghostAnchorRadius,stroke:"rgba(0, 0, 0, 0)",fill:"rgba(0, 0, 0, 0)"},null,40,Rt),a.createElementVNode("circle",{class:"anchor",id:"releaseAnchor",onMousedown:t[10]||(t[10]=(...o)=>e.releaseAnchorMouseDown&&e.releaseAnchorMouseDown(...o)),onTouchstart:t[11]||(t[11]=(...o)=>e.releaseAnchorMouseDown&&e.releaseAnchorMouseDown(...o)),cx:e.releaseEndX,cy:e.releaseEndY,r:e.anchorRadius,stroke:e.anchorColor,fill:e.anchorColor},null,40,Ht)],8,Pt)),a.createElementVNode("div",Ft,[a.createElementVNode("div",Yt,a.toDisplayString(Math.round(e.modelValue.attack))+" ms",1),a.createElementVNode("div",_t,a.toDisplayString(Math.round(e.modelValue.decay))+" ms",1),a.createElementVNode("div",Kt,a.toDisplayString(e.modelValue.sustain.toFixed(2)),1),a.createElementVNode("div",Xt,a.toDisplayString(Math.round(e.modelValue.release))+" ms",1)])],42,Tt)])}const be=V(Bt,[["render",Zt],["__scopeId","data-v-f87b5263"]]),jt={width:"8",height:"12",viewBox:"0 0 8 12","aria-hidden":"true",class:"num-trianlge"},Jt=["fill"],Qt={key:0,class:"num-value"},ea=["min","max"],ta=90,aa=a.defineComponent({__name:"v-a-num-box",props:{modelValue:{required:!0,type:Number},minValue:{type:Number,required:!1,default:0},maxValue:{type:Number,required:!1,default:99},fixedDecimals:{type:Number,required:!1,default:0},showBorder:{type:Boolean,required:!1,default:!0},width:{type:Number,required:!1}},emits:["update:modelValue"],setup(e,{emit:t}){const r=t,i=e,n=a.ref(!1),s=a.ref(!1),o=a.ref(i.modelValue),h=a.useTemplateRef("manualInputEl"),g=a.useTemplateRef("numBox");let k=-1;const c=a.computed(()=>n.value?w.colors.primary:w.colors.secondary),l=a.computed(()=>({"--border-color":`${w.colors.secondary}`,"--numbox-width":i.width?`${i.width}px`:"auto"})),f=a.computed(()=>i.maxValue-i.minValue);a.watch(()=>i.modelValue,y=>o.value=y);function m(){s.value=!0,o.value=i.modelValue,a.nextTick().then(()=>{h.value?.select(),document.addEventListener("mouseup",p)})}function p(y){g.value.contains(y.target)||M()}function x(y){y.key==="Enter"&&M()}function M(){r("update:modelValue",I(ce(o.value,i.fixedDecimals),i.minValue,i.maxValue)),s.value=!1,document.removeEventListener("mouseup",p)}function S(y){s.value||(y.preventDefault(),document.addEventListener("mousemove",d),document.addEventListener("touchmove",u),document.addEventListener("mouseup",D),document.addEventListener("touchend",D))}function D(){n.value=!1,document.removeEventListener("mousemove",d),document.removeEventListener("touchmove",u),document.removeEventListener("mouseup",D),document.removeEventListener("touchend",D),k=-1}function G(y){if(n.value=!0,k>=0){const U=k-y,z=I(i.modelValue+U/ta*(f.value/2),i.minValue,i.maxValue);r("update:modelValue",ce(z,i.fixedDecimals))}}function u(y){y.touches[0]&&(G(y.touches[0].pageY),k=y.touches[0].pageY)}function d(y){G(y.pageY),k=y.pageY}return(y,U)=>(a.openBlock(),a.createElementBlock("div",{ref_key:"numBox",ref:g,class:a.normalizeClass(["numbox",{"show-border":e.showBorder}]),style:a.normalizeStyle(l.value),onMousedown:S,onDblclick:m},[(a.openBlock(),a.createElementBlock("svg",jt,[a.createElementVNode("polygon",{points:"0,0 0,12 8,6",fill:c.value},null,8,Jt)])),s.value?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("span",Qt,a.toDisplayString(e.modelValue),1)),s.value?a.withDirectives((a.openBlock(),a.createElementBlock("input",{key:1,id:"manualInputEl",ref_key:"manualInputEl",ref:h,type:"number",min:e.minValue,max:e.maxValue,"onUpdate:modelValue":U[0]||(U[0]=z=>o.value=z),onKeydown:x},null,40,ea)),[[a.vModelText,o.value]]):a.createCommentVNode("",!0)],38))}}),Ve=V(aa,[["__scopeId","data-v-41e990e3"]]);class ra{_minusInputMin;_plusOutputMin;_dividedByInputRange;_multipliedByOutputRange;input;output;constructor(t,r,i,n,s,o){this._minusInputMin=new ConstantSourceNode(t,{offset:-r}),this._dividedByInputRange=new GainNode(t,{gain:1/(i-r)}),this._multipliedByOutputRange=new GainNode(t,{gain:s-n}),this._plusOutputMin=new ConstantSourceNode(t,{offset:n}),this._minusInputMin.start(),this._plusOutputMin.start(),this.input=new GainNode(t,{gain:1}),this.output=new GainNode(t,{gain:1}),this._minusInputMin.connect(this.input),this.input.connect(this._dividedByInputRange),this._dividedByInputRange.connect(this._multipliedByOutputRange),this._multipliedByOutputRange.connect(this.output),this._plusOutputMin.connect(this.output),o&&this.output.connect(o)}dispose(){this._minusInputMin.stop(),this._plusOutputMin.stop(),this._minusInputMin.disconnect(),this._plusOutputMin.disconnect(),this._dividedByInputRange.disconnect(),this._multipliedByOutputRange.disconnect(),this.input.disconnect(),this.output.disconnect()}}class ia{_minusInputMin;_dividedByInputRange;input;output;constructor(t,r,i,n){this._minusInputMin=new ConstantSourceNode(t,{offset:-r}),this._dividedByInputRange=new GainNode(t,{gain:1/(i-r)}),this._minusInputMin.start(),this.input=new GainNode(t,{gain:1}),this.output=new GainNode(t,{gain:1}),this._minusInputMin.connect(this.input),this.input.connect(this._dividedByInputRange),this.output=this._dividedByInputRange}dispose(){this._minusInputMin.stop(),this._minusInputMin.disconnect(),this._dividedByInputRange.disconnect(),this.input.disconnect(),this.output.disconnect()}}const oa={class:"matrix-row header"},na={class:"matrix-cell source-label"},sa=a.defineComponent({__name:"v-a-mod-matrix",props:{sources:{type:Array,required:!0},destinations:{type:Array,required:!0},loggerNode:{type:AudioNode,required:!1}},setup(e){const t=e,r=a.ref(),i=a.ref([]);let n=[];a.watch(()=>t.sources,(c,l)=>{k(l,t.destinations),g(c,t.destinations)}),a.watch(()=>t.destinations,(c,l)=>{k(t.sources),g(t.sources,c)});function s(c,l){c.modAmountNode.gain.setValueAtTime(l,r.value.currentTime)}function o(c,l){l.ratioSum=new GainNode(c,{gain:1}),l.sourceCells.forEach((f=>{l.ratioSum&&f.modAmountNode.connect(l.ratioSum)})),l.clamper=new WaveShaperNode(c,{curve:[0,0,1]}),l.ratioSum.connect(l.clamper),l.outputScaler=new ra(c,0,1,l.destination.minValue,l.destination.maxValue),l.clamper.connect(l.outputScaler.input),l.output=l.outputScaler.output,(l.destination.node instanceof AudioParam||l.destination.node instanceof AudioNode)&&l.output.connect(l.destination.node)}function h(c){c.sourceCells.forEach(l=>{l.modAmountNode.disconnect()}),c.ratioSum?.disconnect(),c.ratioSum=void 0,c.clamper?.disconnect(),c.clamper=void 0}function g(c,l){if(c.length>0&&(r.value=c[0]?.node.context),!r.value)return;const f=r.value,m=[];c.forEach(p=>{const x=[];l.forEach(S=>{const D=new GainNode(f,{gain:0}),G=new ia(f,p.minValue,p.maxValue);p.node.connect(G.input),G.output.connect(D);const u={modAmountValue:0,modAmountNode:D,signalToRatioConverter:G,source:p,destination:S};x.push(u),m.push(u)}),i.value.push(x)}),l.forEach(p=>{const x={destination:p,sourceCells:m.filter(M=>M.destination===p)};o(f,x),n.push(x)})}function k(c,l){c.forEach(f=>{i.value.shift()?.forEach(p=>{p.source.node.disconnect(p.signalToRatioConverter.input),p.signalToRatioConverter.dispose(),p.modAmountNode.disconnect()})}),i.value=[],n.forEach(f=>{h(f)}),n=[]}return(c,l)=>{const f=a.resolveComponent("v-a-num-box");return a.openBlock(),a.createElementBlock("div",null,[a.createElementVNode("div",oa,[l[0]||(l[0]=a.createElementVNode("div",{class:"matrix-cell source-label"},null,-1)),(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.destinations,(m,p)=>(a.openBlock(),a.createElementBlock("div",{class:"matrix-cell destination-label",key:`header-${p}`},a.toDisplayString(m.name),1))),128))]),(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(i.value,(m,p)=>(a.openBlock(),a.createElementBlock("div",{class:"matrix-row",key:`src-${p}`},[a.createElementVNode("div",na,a.toDisplayString(m[0]?.source.name),1),(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(m,(x,M)=>(a.openBlock(),a.createElementBlock("div",{class:"matrix-cell",key:`dest-${M}`},[a.createVNode(f,{minValue:0,maxValue:1,"onUpdate:modelValue":[S=>s(x,S),S=>x.modAmountValue=S],modelValue:x.modAmountValue,fixedDecimals:2,width:60},null,8,["onUpdate:modelValue","modelValue"])]))),128))]))),128))])}}}),Me=V(sa,[["__scopeId","data-v-c8b43eec"]]),O=a.ref(!1),la=a.defineComponent({emits:["keySlideOn","keySlideOff","keyMouseDown","keyMouseUp","keyboardKeyDown","keyboardKeyUp"],props:{disabled:{type:Boolean,required:!1,default:!1},enableKeyControls:{type:Boolean,required:!1,default:!0},startingOctave:{type:Number,required:!1,default:3},numOctaves:{type:Number,required:!1,default:2},enableKeyboardControls:{type:Boolean,required:!1,default:!0}},setup(e,t){const r="#ff2929",i=[1,3,6,8,10],n=["KeyA","KeyW","KeyS","KeyE","KeyD","KeyF","KeyT","KeyG","KeyY","KeyH","KeyU","KeyJ","KeyK","KeyO","KeyL"];let s=e.startingOctave*12;function o(u){const d=n.findIndex(y=>y===u.code);if(d>-1){const y=d+s;g(y),t.emit("keyboardKeyDown",y)}}function h(u){const d=n.findIndex(y=>y===u.code);if(d>-1){const y=d+s;k(y),t.emit("keyboardKeyUp",y)}else u.code==="KeyZ"?s-=12:u.code==="KeyX"?s+=12:u.code==="KeyC"||u.code}function g(u){const d=document.querySelector(`#key${u}`);d!=null&&(d.style.background=r)}function k(u){const d=document.querySelector(`#key${u}`);d!=null&&(d.style.background=i.includes(u%12)?"black":"white")}function c(u){const d=u.target;return parseInt(d.id.replace("key",""))}function l(u){if(!O.value)return;const d=c(u);u.stopPropagation(),e.disabled||(g(d),t.emit("keySlideOn",d))}function f(u){if(!O.value)return;u.stopPropagation();const d=c(u);e.disabled||(k(d),t.emit("keySlideOff",d))}function m(u){u.stopPropagation(),O.value=!0;const d=c(u);e.disabled||(g(d),t.emit("keyMouseDown",d))}function p(u){u.stopPropagation(),O.value=!1;const d=c(u);e.disabled||(k(d),t.emit("keyMouseUp",c(u)))}function x(){O.value=!0}function M(){O.value=!1}function S(){document.addEventListener("mousedown",x),document.addEventListener("mouseup",M),document.addEventListener("keydown",o),document.addEventListener("keyup",h);const u=document.querySelectorAll("div.keyboard div.key, div.keyboard div.black-key");for(const d of u)d.addEventListener("mousedown",m),d.addEventListener("mouseup",p),d.addEventListener("mouseover",l),d.addEventListener("mouseout",f),d.addEventListener("touchstart",m),d.addEventListener("touchend",p)}function D(){document.removeEventListener("mousedown",x),document.removeEventListener("mouseup",M),document.removeEventListener("keydown",o),document.removeEventListener("keyup",h);const u=document.querySelectorAll("div.keyboard div.key, div.keyboard div.black-key");for(const d of u)d.removeEventListener("mousedown",m),d.removeEventListener("mouseup",p),d.removeEventListener("mouseover",l),d.removeEventListener("mouseout",f),d.removeEventListener("touchstart",m),d.removeEventListener("touchend",p)}function G(){D(),S()}a.onMounted(()=>{S()}),a.onBeforeUnmount(()=>{D()}),a.watch(()=>e.numOctaves,G)}}),da=["id"],ha=["id"],ca=["id"],ua=["id"],pa=["id"],fa=["id"],ma=["id"],ga=["id"],ya=["id"],va=["id"],ka=["id"],xa=["id"];function wa(e,t,r,i,n,s){return a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["keyboard",e.disabled?"disabled":""])},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.numOctaves,o=>(a.openBlock(),a.createElementBlock("div",{key:o,class:"octave-section"},[a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+0}`,class:"key"},[a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+1}`,class:"black-key"},null,8,ha)],8,da),a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+2}`,class:"key"},[a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+3}`,class:"black-key"},null,8,ua)],8,ca),a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+4}`,class:"key"},null,8,pa),a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+5}`,class:"key"},[a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+6}`,class:"black-key"},null,8,ma)],8,fa),a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+7}`,class:"key"},[a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+8}`,class:"black-key"},null,8,ya)],8,ga),a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+9}`,class:"key"},[a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+10}`,class:"black-key"},null,8,ka)],8,va),a.createElementVNode("div",{id:`key${e.startingOctave*12+(o-1)*12+11}`,class:"key"},null,8,xa)]))),128))],2)}const Se=V(la,[["render",wa],["__scopeId","data-v-25deb579"]]),Ca={VAAnalogMeter:ue,VAAudioFileVisualizer:me,VADigitalMeterStereo:ge,VADigitalMeter:ye,VAFader:ve,VAKnob:ke,VASpectrumAnalyzer:xe,VAOscilloscope:we,VAToggleButton:Ce,VAEnvelopeAdsr:be,VANumBox:Ve,VAModMatrix:Me,VAPiano:Se},ba=function(t){Object.entries(Ca).forEach(([r,i])=>{t.component(r,i)})};exports.VAAnalogMeter=ue;exports.VAAudioFileVisualizer=me;exports.VADigitalMeter=ye;exports.VADigitalMeterStereo=ge;exports.VAEnvelopeAdsr=be;exports.VAFader=ve;exports.VAKnob=ke;exports.VAModMatrix=Me;exports.VANumBox=Ve;exports.VAOscilloscope=we;exports.VAPiano=Se;exports.VASpectrumAnalyzer=xe;exports.VAToggleButton=Ce;exports.default=ba;exports.vueAudioUITheme=w;
@@ -0,0 +1 @@
1
+ .meter-container[data-v-048f897f]{display:inline-block}.visualizer-canvas[data-v-f20165f6]{display:inline-block;cursor:move}.--no-text-select{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.stereo-meter-container[data-v-688c5c09]{display:flex;flex-direction:row;align-items:flex-end;gap:4px}.meter-channel[data-v-688c5c09]{margin:0}.fader-container[data-v-9d74edfd]{width:var(--fader-width);height:var(--fader-height);position:relative}.fader-head[data-v-9d74edfd]{max-width:var(--fader-width);max-height:var(--fader-height);cursor:move;position:absolute;top:var(--fader-head-top);left:50%;translate:-50% 0}.fader-head[data-v-9d74edfd] img{max-width:var(--fader-width);max-height:var(--fader-height);display:block;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none}.fader-head[data-v-9d74edfd] svg{max-width:var(--fader-width);max-height:var(--fader-height)}.fader-background[data-v-9d74edfd]{width:var(--fader-width);height:var(--fader-height);position:absolute}.fader-background[data-v-9d74edfd] img{width:100%!important;height:100%!important;display:block;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none}.fader-background[data-v-9d74edfd] svg{width:100%!important;height:100%!important;display:block}.spacer[data-v-9d74edfd]{width:var(--fader-width);height:var(--fader-height);visibility:hidden}.st0[data-v-3cef4f4a]{fill:#4d4d4d}.st1[data-v-3cef4f4a]{fill:#939598}.st2[data-v-3cef4f4a]{fill:#fff}.st3[data-v-3cef4f4a]{fill:none;stroke:#fff;stroke-width:1.7417;stroke-linecap:round;stroke-miterlimit:10}.knob-row[data-v-516025e9]{justify-content:center;display:flex}.knob-shadow[data-v-516025e9]{-webkit-box-shadow:0px 0px 8px var(--shadowColor);box-shadow:0 0 8px var(--shadowColor)}.knob-container[data-v-516025e9]{border-radius:50%;line-height:0px!important;cursor:move}.knob-container[data-v-516025e9] svg{width:100%!important;height:auto!important;display:block}.knob-container[data-v-516025e9] img{width:100%!important;height:auto!important;display:block}.control-container[data-v-516025e9]{display:inline-block}.analyser-canvas[data-v-670d0fd3]{display:block;border:1px solid;border-color:var(--border-color)}button[data-v-87a8a5ae],input[type=submit][data-v-87a8a5ae],input[type=reset][data-v-87a8a5ae]{background:none;color:inherit;border-radius:4px;border:solid 1px black;font:inherit;cursor:pointer;outline:inherit}.button[data-v-87a8a5ae]{cursor:pointer}.button-on[data-v-87a8a5ae]{box-shadow:inset 0 0 10px 3px var(--on-color)}.button-off[data-v-87a8a5ae]{box-shadow:inset 0 0 5px 5px #d3d3d3}.graph-container[data-v-f87b5263]{display:inline-block;margin:auto;width:-webkit-fit-content;width:fit-content;border:2px solid gray}svg[data-v-f87b5263]{display:block}#attackAnchorGhost[data-v-f87b5263],#attackAnchor[data-v-f87b5263]{cursor:ew-resize}#decaySustainAnchorGhost[data-v-f87b5263],#decaySustainAnchor[data-v-f87b5263]{cursor:move}#releaseAnchorGhost[data-v-f87b5263],#releaseAnchor[data-v-f87b5263]{cursor:ew-resize}.dragging[data-v-f87b5263]{cursor:none}.value-label[data-v-f87b5263]{display:block;float:left;padding:0 10px;-webkit-user-select:none;user-select:none}.component-container[data-v-f87b5263]{justify-content:center;display:flex}.numbox[data-v-41e990e3]{display:flex;align-items:center;gap:.2em;min-width:3ch;padding:.2em .4em .2em .3em;-webkit-user-select:none;user-select:none;width:var(--numbox-width)}.numbox.show-border[data-v-41e990e3]{border:1px solid var(--border-color)}.numbox[data-v-41e990e3]:hover{cursor:pointer}.num-trianlge[data-v-41e990e3]{flex:0 0 auto}.num-value[data-v-41e990e3]{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}input[type=number][data-v-41e990e3]{font-family:inherit;font-size:inherit}.matrix-row[data-v-c8b43eec]{display:flex}.matrix-cell[data-v-c8b43eec]{padding:4px;width:80px;display:flex;justify-content:center;align-items:center}.source-label[data-v-c8b43eec]{width:80px;text-align:right;padding-right:8px}.destination-label[data-v-c8b43eec]{text-align:center}.keyboard[data-v-25deb579]{padding-left:0;border-radius:5px;height:140px}.keyboard .key[data-v-25deb579]{position:relative;width:30px;height:130px;border:1px solid black;border-right:none;background:#fff;border-radius:5px;cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-block}.keyboard.disabled .key[data-v-25deb579]{cursor:default}.keyboard .black-key[data-v-25deb579]{position:absolute;top:-1px;left:20px;width:20px;height:80px;background:#000;border-radius:5px;box-shadow:0 3px 5px #666;z-index:2;-webkit-user-select:none;user-select:none;display:inline-block}.keyboard>.octave-section:last-child>.key[data-v-25deb579]:last-child{border-right:1px solid black}.octave-section[data-v-25deb579]{display:inline-block}
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from 'vue';
2
- import { default as VAAnalogMeterStereo } from './src/lib/v-a-analog-meter-stereo.vue';
2
+ import { default as vueAudioUITheme } from './src/theme.ts';
3
3
  import { default as VAAnalogMeter } from './src/lib/v-a-analog-meter.vue';
4
4
  import { default as VAAudioFileVisualizer } from './src/lib/v-a-audio-file-visualizer.vue';
5
5
  import { default as VADigitalMeterStereo } from './src/lib/v-a-digital-meter-stereo.vue';
@@ -7,7 +7,12 @@ import { default as VADigitalMeter } from './src/lib/v-a-digital-meter.vue';
7
7
  import { default as VAFader } from './src/lib/v-a-fader.vue';
8
8
  import { default as VAKnob } from './src/lib/v-a-knob.vue';
9
9
  import { default as VASpectrumAnalyzer } from './src/lib/v-a-spectrum-analyzer.vue';
10
+ import { default as VAOscilloscope } from './src/lib/v-a-oscilloscope.vue';
10
11
  import { default as VAToggleButton } from './src/lib/v-a-toggle-button.vue';
12
+ import { default as VAEnvelopeAdsr } from './src/lib/v-a-envelope-adsr.vue';
13
+ import { default as VANumBox } from './src/lib/v-a-num-box.vue';
14
+ import { default as VAModMatrix, ModMatrixSource, ModMatrixDestination } from './src/lib/v-a-mod-matrix.vue';
15
+ import { default as VAPiano } from './src/lib/v-a-piano.vue';
11
16
  declare const install: Exclude<Plugin['install'], undefined>;
12
17
  export default install;
13
- export { VAAnalogMeterStereo, VAAnalogMeter, VAAudioFileVisualizer, VADigitalMeterStereo, VADigitalMeter, VAFader, VAKnob, VASpectrumAnalyzer, VAToggleButton, };
18
+ export { VAAnalogMeter, VAAudioFileVisualizer, VADigitalMeterStereo, VADigitalMeter, VAFader, VAKnob, VASpectrumAnalyzer, VAOscilloscope, VAToggleButton, VAEnvelopeAdsr, VANumBox, VAModMatrix, VAPiano, type ModMatrixSource, type ModMatrixDestination, vueAudioUITheme };