From 5b385abef33b20c122bddf9cc9e947594e0ebd32 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Mon, 4 Jun 2012 21:44:28 +0000 Subject: 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... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///var/svn/2012-violon-leds/trunk@12 6be1fa4d-33ac-4c33-becc-79fcb3794bb6 --- tests/test5/test5.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'tests/test5/test5.c') 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 - } -- cgit v1.2.3