Skip to content

Commit 6d26250

Browse files
committed
visualizer example fixes
1 parent adbe6af commit 6d26250

File tree

1 file changed

+60
-13
lines changed

1 file changed

+60
-13
lines changed

examples/visualizer-player/client/bootstrap.ts

Lines changed: 60 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { PlayerCore, ICoreOptions, PlayerSound, ISoundAttributes } from 'web-aud
1010
// library
1111
import { PlayerUI } from './library/player/ui';
1212

13-
/*function transformToVisualBins(array: []) {
13+
/*function transformToVisualBins(array: any) {
1414
1515
let i;
1616
let spectrumSize = 63; // number of bars in the spectrum
@@ -33,15 +33,6 @@ import { PlayerUI } from './library/player/ui';
3333
3434
}*/
3535

36-
function transformToVisualBins(Array: any) {
37-
Array = AverageTransform(Array);
38-
Array = tailTransform(Array);
39-
Array = exponentialTransform(Array);
40-
41-
return Array;
42-
}
43-
44-
4536
// canvas
4637
let canvas = document.getElementById('visualizer') as HTMLCanvasElement;
4738
let ctx = canvas.getContext('2d');
@@ -75,6 +66,54 @@ var headMarginSlope = (1 - minMarginWeight) / Math.pow(headMargin, marginDecay);
7566
var spectrumHeight = 255;
7667
var tailMarginSlope: number = 0;
7768

69+
function SpectrumEase(Value: number) {
70+
return Math.pow(Value, SpectrumLogScale)
71+
}
72+
73+
function GetVisualBins(Array: any) {
74+
/*var NewArray = []
75+
for (var i = 0; i < SpectrumBarCount; i++) {
76+
var Bin = SpectrumEase(i / SpectrumBarCount) * (SpectrumEnd - SpectrumStart) + SpectrumStart;
77+
NewArray[i] = Array[Math.floor(Bin) + SpectrumStart] //* (Bin % 1)
78+
//+ Array[Math.floor(Bin + 1) + SpectrumStart] * (1 - (Bin % 1))
79+
}
80+
UpdateParticleAttributes(NewArray)
81+
return NewArray*/
82+
83+
var SamplePoints = []
84+
var NewArray = []
85+
for (var i = 0; i < SpectrumBarCount; i++) {
86+
var Bin = SpectrumEase(i / SpectrumBarCount) * (SpectrumEnd - SpectrumStart) + SpectrumStart;
87+
SamplePoints[i] = Math.floor(Bin)
88+
}
89+
90+
for (var i = 0; i < SpectrumBarCount; i++) {
91+
var CurSpot = SamplePoints[i]
92+
var NextSpot = SamplePoints[i + 1]
93+
if (NextSpot == null) {
94+
NextSpot = SpectrumEnd
95+
}
96+
97+
var CurMax = Array[CurSpot]
98+
var Dif = NextSpot - CurSpot
99+
for (var j = 1; j < Dif; j++) {
100+
CurMax = (Array[CurSpot + j] + CurMax) / 2
101+
}
102+
NewArray[i] = CurMax
103+
}
104+
105+
//UpdateParticleAttributes(NewArray)
106+
return NewArray
107+
}
108+
109+
function transformToVisualBins(Array: any) {
110+
Array = AverageTransform(Array);
111+
Array = tailTransform(Array);
112+
Array = exponentialTransform(Array);
113+
114+
return Array;
115+
}
116+
78117
function AverageTransform(Array: any) {
79118
var Values = []
80119
var Length = Array.length
@@ -151,6 +190,7 @@ $(function () {
151190
visualizerAudioGraph.analyserNode.minDecibels = -100;
152191
visualizerAudioGraph.analyserNode.maxDecibels = -33;
153192
visualizerAudioGraph.analyserNode.fftSize = 16384;
193+
//visualizerAudioGraph.analyserNode.fftSize = 2048;
154194

155195
// connect the nodes
156196
visualizerAudioGraph.delayNode.connect(audioContext.destination);
@@ -180,9 +220,14 @@ $(function () {
180220

181221
console.log(initialArray);
182222

183-
var binsArray = transformToVisualBins(initialArray);
223+
//var binsArray = transformToVisualBins(initialArray);
224+
225+
//console.log(binsArray);
226+
227+
var VisualData = GetVisualBins(initialArray)
228+
var TransformedVisualData = transformToVisualBins(VisualData)
184229

185-
console.log(binsArray);
230+
console.log(TransformedVisualData);
186231

187232
ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear the canvas
188233
ctx.fillStyle = 'red'; // Color of the bars
@@ -191,7 +236,7 @@ $(function () {
191236

192237
let bar_x = y * barWidth;
193238
let bar_width = barWidth;
194-
let bar_height = binsArray[y];
239+
let bar_height = TransformedVisualData[y];
195240

196241
// fillRect( x, y, width, height ) // Explanation of the parameters below
197242
//ctx.fillRect(0, 0, canvas.width, canvas.height);
@@ -210,6 +255,8 @@ $(function () {
210255
let firstSoundAttributes: ISoundAttributes = {
211256
sources: '1314412&format=mp31',
212257
id: 1314412,
258+
//sources: '1214935&format=ogg1',
259+
//id: 1214935,
213260
playlistId: 0,
214261
onLoading: (loadingProgress, maximumValue, currentValue) => {
215262

0 commit comments

Comments
 (0)