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/test5.c | |
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/test5.c')
-rw-r--r-- | tests/test5/test5.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/tests/test5/test5.c b/tests/test5/test5.c index a12c093..809aaa6 100644 --- a/tests/test5/test5.c +++ b/tests/test5/test5.c @@ -7,7 +7,7 @@ #include "capture.h" gint *audio_vumeter_val, *light_h, *light_s, *light_v, *light_r, *light_g, *light_b; -void my_process(gint sound_level, void *userdata); +void my_process(float *data, size_t nsamples, size_t nchan); int main (int argc, char **argv) { GtkWidget *mainwin; @@ -42,11 +42,14 @@ int main (int argc, char **argv) { return 0; } -void my_process(gint sound_level, void *userdata) { +void my_process(float *data, size_t nsamples, size_t nchan) { -// printf("my_process(%i, %p)\n", sound_level, userdata); - // Dummy code for audio capture - *audio_vumeter_val=sound_level; + float sound_level; + + sound_level=compute_level(data, nsamples, nchan); + + // Update sound vumeter value (refreshed asynchronously) + *audio_vumeter_val=sound_level*65535; // Transfert Function audio2hsv_1(*audio_vumeter_val,light_h,light_s,light_v); @@ -56,6 +59,5 @@ void my_process(gint sound_level, void *userdata) { // Send to DMX //TODO - } |