|
36 | 36 | // Number of bins in Spectrum data
|
37 | 37 | //show_message(FMODGMS_FFT_Set_WindowSize(128));
|
38 | 38 | numBins = FMODGMS_FFT_Get_NumBins();
|
| 39 | + peakDamping = 0; |
| 40 | + |
| 41 | + // init spectrum visualizer bins |
| 42 | + for (var i=0; i<numBins; i++) |
| 43 | + { |
| 44 | + avgBin[i] = 0; |
| 45 | + } |
39 | 46 |
|
40 | 47 | // Load sounds
|
41 | 48 | sound[0] = FMODGMS_Snd_LoadSound(working_directory + "cronolog.s3m");
|
|
71 | 78 | channel_pitch = 1;
|
72 | 79 |
|
73 | 80 | window_set_caption("The colours!");
|
74 |
| - |
75 |
| - //show_message(FMODGMS_Snd_Get_TagStringFromName(sound[4],"TITLE")); |
76 |
| - //show_message(FMODGMS_Snd_Get_TagTypeFromIndex(sound[4],1)); |
77 |
| - //show_message(FMODGMS_Snd_Get_TagDataTypeFromIndex(sound[4],2)); |
78 | 81 | }
|
79 | 82 | </string>
|
80 | 83 | </argument>
|
|
102 | 105 | {
|
103 | 106 | FMODGMS_Sys_Update();
|
104 | 107 | hue = (hue + 1) mod 256;
|
| 108 | + |
| 109 | + // update spectrum visualizer values |
| 110 | + for (var i=0; i<numBins; i++) |
| 111 | + { |
| 112 | + var bin = clamp(FMODGMS_FFT_Get_BinValue(i),0,1); |
| 113 | + avgBin[i] = avgBin[i] * peakDamping + bin * (1-peakDamping); |
| 114 | + } |
105 | 115 | }
|
106 | 116 | </string>
|
107 | 117 | </argument>
|
@@ -363,42 +373,34 @@ FMODGMS_Chan_Set_Volume(0,channel_volume);
|
363 | 373 | }
|
364 | 374 |
|
365 | 375 | // dominant Frequency
|
366 |
| - draw_text(416,112,"Dominant Freq.: " + string(FMODGMS_FFT_Get_DominantFrequency()) + " Hz"); |
| 376 | + draw_text(432,112,"Dominant Freq.: " + string(FMODGMS_FFT_Get_DominantFrequency()) + " Hz"); |
367 | 377 |
|
368 | 378 | // spectrum
|
369 |
| - |
370 |
| - draw_rectangle_colour(416,144,416+numBins*5,244,c_black,c_black,$202020,$202020,false); |
| 379 | + draw_rectangle_colour(432,144,432+numBins*5,244,c_black,c_black,$202020,$202020,false); |
371 | 380 |
|
372 | 381 | for (var i=0; i<numBins; i++)
|
373 | 382 | {
|
374 |
| - var bin = FMODGMS_FFT_Get_BinValue(i); |
375 | 383 | var col;
|
376 | 384 |
|
377 |
| - if (bin <= 0.5) |
378 |
| - col = merge_colour(c_lime,c_yellow,bin*2); |
| 385 | + if (avgBin[i] <= 0.5) |
| 386 | + col = merge_colour(c_lime,c_yellow,avgBin[i]*2); |
379 | 387 | else
|
380 |
| - col = merge_colour(c_yellow,c_red,(bin-0.5)*2); |
| 388 | + col = merge_colour(c_yellow,c_red,(avgBin[i]-0.5)*2); |
381 | 389 |
|
382 | 390 | draw_set_colour(col);
|
383 |
| - draw_rectangle(416+i*5+1,244-bin*100,416+i*5+4,244,false); |
| 391 | + draw_rectangle(432+i*5+1,244-avgBin[i]*100,432+i*5+4,244,false); |
384 | 392 | }
|
385 | 393 |
|
386 |
| - draw_set_color(make_color_hsv((hue+64 mod 256),128,255)); |
387 |
| - draw_text(16,128,"Position: " + string(FMODGMS_Chan_Get_Position(0))); |
388 |
| - draw_set_color(make_color_hsv((hue+80 mod 256),128,255)); |
389 |
| - draw_text(16,144,"Loop Points: " + string(FMODGMS_Snd_Get_LoopPoints(sound[sound_index],0)) + " - " + string(FMODGMS_Snd_Get_LoopPoints(sound[sound_index],1))); |
390 |
| - draw_set_color(make_color_hsv((hue+96 mod 256),128,255)); |
391 |
| - draw_text(16,160,"Order: " + string(FMODGMS_Chan_Get_ModOrder(0))); // only works with module files |
392 |
| - draw_set_color(make_color_hsv((hue+112 mod 256),128,255)); |
393 |
| - draw_text(16,176,"Pattern: " + string(FMODGMS_Chan_Get_ModPattern(0))); // only works with module files |
394 |
| - draw_set_color(make_color_hsv((hue+128 mod 256),128,255)); |
395 |
| - draw_text(16,192,"Row: " + string(FMODGMS_Chan_Get_ModRow(0))); // only works with module files |
396 |
| - draw_set_color(make_color_hsv((hue+144 mod 256),128,255)); |
397 |
| - draw_text(16,208,"Volume: " + string(channel_volume)); |
398 |
| - draw_set_color(make_color_hsv((hue+160 mod 256),128,255)); |
399 |
| - draw_text(16,224,"Playback Freq.: " + string(channel_frequency * channel_pitch) + " Hz# (" + string(channel_frequency) + " x " + string(channel_pitch) + ")"); |
400 |
| - //draw_set_color(make_color_hsv((hue+176 mod 256),128,255)); |
401 |
| - //draw_text(16,240,"Pitch: " + string(FMODGMS_Chan_Get_Pitch(0))); |
| 394 | + // draw playback info based on filetype |
| 395 | + |
| 396 | + // modules (MOD, XM, S3M, IT) |
| 397 | + if (sound_index < 4) |
| 398 | + draw_GUI_modules(); |
| 399 | + else if (sound_index == 4) |
| 400 | + draw_GUI_mp3(); |
| 401 | + //the rest |
| 402 | + else |
| 403 | + draw_GUI_ogg(); |
402 | 404 |
|
403 | 405 | draw_set_color(c_white);
|
404 | 406 | draw_text(16,304,"Space -- Play/Stop#P - Pause/Unpause#Q/A -- Change volume#W/S -- Change frequency#E/D -- Change pitch");
|
|
0 commit comments