diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2012-06-04 21:44:28 +0000 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2012-06-04 21:44:28 +0000 |
commit | 5b385abef33b20c122bddf9cc9e947594e0ebd32 (patch) | |
tree | 2cda5c9fc70fa79ac880b4f744ffb7f65769ed33 /tests/test5/compute.h | |
parent | 9c7c14513dfe3440dad9cf0b1c652dde9e4f1de7 (diff) | |
download | 2012-violon-leds-5b385abef33b20c122bddf9cc9e947594e0ebd32.tar.gz 2012-violon-leds-5b385abef33b20c122bddf9cc9e947594e0ebd32.tar.bz2 2012-violon-leds-5b385abef33b20c122bddf9cc9e947594e0ebd32.zip |
Bon. Partie pulse audio finie je pense.
début de la partie galère sur le "vrai" calcul pour le vu-mètre.
C'est compliqué car si on veut du dbA il faut faire une FFT pour appliquer des poids par fréquence.
Analyse fréquentielle copiée depuis le projet Audacity (adaptée du C++ au C et décimée).
Il y a des tas de petits mallocs pour la FFT et ça pue. D'ailleurs l'exécution de cette version donne un assertion failed sur malloc() que j'avais jamais vu...
git-svn-id: file:///var/svn/2012-violon-leds/trunk@12 6be1fa4d-33ac-4c33-becc-79fcb3794bb6
Diffstat (limited to 'tests/test5/compute.h')
-rw-r--r-- | tests/test5/compute.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/test5/compute.h b/tests/test5/compute.h index 2454e56..90230a7 100644 --- a/tests/test5/compute.h +++ b/tests/test5/compute.h @@ -3,6 +3,18 @@ #include <gtk/gtk.h> +gfloat compute_level(const float *data, size_t nsamples, size_t nchan); + +void compute_spectrom(float * data, int width, double rate, float *output); +void PowerSpectrum(float *In, float *Out); +void FFT(int NumSamples, gboolean InverseTransform, + float *RealIn, float *ImagIn, float *RealOut, float *ImagOut); +void InitFFT(); +int NumberOfBitsNeeded(int PowerOfTwo); +inline int FastReverseBits(int i, int NumBits); +int ReverseBits(int index, int NumBits); + + void audio2hsv_1(gint audio_level, gint *light_h, gint *light_s, gint *light_v); void hsv2rgb(gint h, gint s, gint v, gint *r, gint *g, gint *b); |