summaryrefslogtreecommitdiff
path: root/tests/test5/compute.h
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2012-06-04 21:44:28 +0000
committerLudovic Pouzenc <ludovic@pouzenc.fr>2012-06-04 21:44:28 +0000
commit5b385abef33b20c122bddf9cc9e947594e0ebd32 (patch)
tree2cda5c9fc70fa79ac880b4f744ffb7f65769ed33 /tests/test5/compute.h
parent9c7c14513dfe3440dad9cf0b1c652dde9e4f1de7 (diff)
download2012-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.h12
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);