@@ -36,10 +36,10 @@ try {
36
36
source . start ( ) ;
37
37
38
38
var spectrumAnalyser = audioCtx . createAnalyser ( ) ;
39
- spectrumAnalyser . fftSize = 256 ;
39
+ spectrumAnalyser . fftSize = 512 ;
40
40
spectrumAnalyser . smoothingTimeConstant = 0.8 ;
41
- spectrumAnalyser . minDecibels = - 120 ;
42
- spectrumAnalyser . maxDecibels = - 20 ;
41
+ spectrumAnalyser . minDecibels = - 100 ;
42
+ spectrumAnalyser . maxDecibels = - 30 ;
43
43
44
44
var dataBuffer = {
45
45
chunks : 0 ,
@@ -162,23 +162,32 @@ try {
162
162
163
163
/* only plot the lower half of the FFT, as the top half
164
164
never seems to have any values in it - too high frequency perhaps. */
165
- var PLOTTED_BUFFER_LENGTH = bufferLength ; // / 2;
165
+ var PLOTTED_BUFFER_LENGTH = bufferLength / 2 ;
166
166
167
167
canvasCtx . translate ( LEFT , TOP ) ;
168
168
169
169
spectrumAnalyser . getByteFrequencyData ( dataArray ) ;
170
170
171
- canvasCtx . fillStyle = 'rgba(255, 255, 255, .25)' ; /* white */
171
+ var gradient = canvasCtx . createLinearGradient ( 0 , 0 , 0 , ( HEIGHT ) ) ;
172
+ gradient . addColorStop ( 1 , 'rgba(255,255,255,0.25)' ) ;
173
+ gradient . addColorStop ( 0 , 'rgba(255,255,255,0)' ) ;
174
+ canvasCtx . fillStyle = gradient ; //'rgba(255, 255, 255, .25)'; /* white */
172
175
canvasCtx . fillRect ( 0 , 0 , WIDTH , HEIGHT ) ;
173
176
174
177
var barWidth = ( WIDTH / PLOTTED_BUFFER_LENGTH ) - 1 ; // * 2.5;
175
178
var barHeight ;
176
179
var x = 0 ;
177
180
181
+ var gradient = canvasCtx . createLinearGradient ( 0 , HEIGHT , 0 , 0 ) ;
182
+ gradient . addColorStop ( 0 , 'rgba(0,255,0,0.2)' ) ;
183
+ gradient . addColorStop ( 0.15 , 'rgba(128,255,0,0.2)' ) ;
184
+ gradient . addColorStop ( 0.45 , 'rgba(255,0,0,0.5)' ) ;
185
+ gradient . addColorStop ( 1 , 'rgba(255,128,128,1.0)' ) ;
186
+
178
187
for ( var i = 0 ; i < ( PLOTTED_BUFFER_LENGTH ) ; i ++ ) {
179
- barHeight = ( dataArray [ i ] / 255 * ( HEIGHT ) ) ;
188
+ barHeight = ( dataArray [ i ] / 255 * ( HEIGHT ) ) ;
180
189
181
- canvasCtx . fillStyle = 'rgba(0,255,0,0.3)' ; /* green */
190
+ canvasCtx . fillStyle = gradient ; // 'rgba(0,255,0,0.3)'; /* green */
182
191
canvasCtx . fillRect ( x , ( HEIGHT ) - barHeight , barWidth , barHeight ) ;
183
192
184
193
x += barWidth + 1 ;
@@ -249,4 +258,6 @@ try {
249
258
console . log ( 'Failed to create analyser' ) ;
250
259
} ;
251
260
261
+ // execute the resize function once so that the canvas gets a valid setup
262
+
252
263
}
0 commit comments