#include "compute.h" #include "fft.h" #include #define MIN_SAMPLES 256 #define MAX_SAMPLES 2048 //#define MAX(a,b) (a>b?a:b) //#define MIN(a,b) (a= MAX_SAMPLES) { printf("WARN : nsamples >= MAX_SAMPLES : %i >= %i\n", nsamples, MAX_SAMPLES); nsamples=MAX_SAMPLES; } if (nsamples < MIN_SAMPLES) { printf("WARN : nsamples < MIN_SAMPLES : %i >= %i\n", nsamples, MIN_SAMPLES); // Replicate with symmetry the sound to obtain an input buffer of the minimal len for (i=0;i 0.0) output[i] = 10*log10(temp); else output[i] = 0; } } void audio2hsv_1(int audio_level, int *light_h, int *light_s, int *light_v) { // Dummy code *light_h=-audio_level; *light_s=audio_level; *light_v=65535; } void hsv2rgb(int h, int s, int v, int *r, int *g, int *b) { /* * Purpose: * Convert HSV values to RGB values * All values are in the range [0..65535] */ float F, M, N, K; int I; if ( s == 0 ) { /* * Achromatic case, set level of grey */ *r = v; *g = v; *b = v; } else { I = (int) h/(65535/6); /* should be in the range 0..5 */ F = h - I; /* fractional part */ M = v * (1 - s); N = v * (1 - s * F); K = v * (1 - s * (1 - F)); if (I == 0) { *r = v; *g = K; *b = M; } if (I == 1) { *r = N; *g = v; *b = M; } if (I == 2) { *r = M; *g = v; *b = K; } if (I == 3) { *r = M; *g = N; *b = v; } if (I == 4) { *r = K; *g = M; *b = v; } if (I == 5) { *r = v; *g = M; *b = N; } } }