changeset 2169:0934eeabc0ed trunk

[svn] Added subsampling and nonlinear transfer function to the voiceprint visualizer. Also increased the intensity range.
author marvin
date Mon, 18 Dec 2006 14:01:29 -0800
parents caaf4b1a8487
children d0312301163f
files ChangeLog audacious/visualization.c audacious/widgets/vis.c
diffstat 3 files changed, 19 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Dec 18 13:11:23 2006 -0800
+++ b/ChangeLog	Mon Dec 18 14:01:29 2006 -0800
@@ -1,3 +1,14 @@
+2006-12-18 21:11:23 +0000  Giacomo Lozito <james@develia.org>
+  revision [3341]
+  - allow user to choose a regex library between gnu (default), oniguruma, pcre (experimental); oniguruma and pcre support utf-8 encoding
+  trunk/audacious/Makefile   |    2 ++
+  trunk/audacious/mainwin.c  |   19 ++++++++++++++++++-
+  trunk/audacious/playlist.c |   31 ++++++++++++++++++++++++++++++-
+  trunk/configure.ac         |   40 ++++++++++++++++++++++++++++++++++++++++
+  trunk/mk/rules.mk.in       |    2 ++
+  5 files changed, 92 insertions(+), 2 deletions(-)
+
+
 2006-12-18 19:59:00 +0000  William Pitcock <nenolod@nenolod.net>
   revision [3339]
   - run update-po
--- a/audacious/visualization.c	Mon Dec 18 13:11:23 2006 -0800
+++ b/audacious/visualization.c	Mon Dec 18 14:01:29 2006 -0800
@@ -414,10 +414,14 @@
     else if(cfg.vis_type == VIS_VOICEPRINT){
       if (!mono_freq_calced)
 	calc_mono_freq(mono_freq, pcm_data, nch);
+      
+      /* Subsampling; 8 frequencies per sample*/
+      for(i = 0; i < 256 ; i++)
+	intern_vis_data[i] = (mono_freq[0][i] >> 9);
+
+      /* Nonlinear transfer function makes the tones stand out*/
       for(i = 0; i < 16 ; i++)
-	{
-	  intern_vis_data[i] = mono_freq[0][i << 2] >> 2;
-	}
+	intern_vis_data[i] = pow(2, intern_vis_data[i]);
     }
     else { /* (cfg.vis_type == VIS_SCOPE) */
 
--- a/audacious/widgets/vis.c	Mon Dec 18 13:11:23 2006 -0800
+++ b/audacious/widgets/vis.c	Mon Dec 18 14:01:29 2006 -0800
@@ -101,8 +101,7 @@
     else if (cfg.vis_type == VIS_VOICEPRINT && data){
       for(i = 0; i < 16; i++)
 	{
-	  vis->vs_data[i] = data[15 - i] >> 5 > 16 ? 16 : data[15-i] >> 5;
-       
+	  vis->vs_data[i] = data[15 - i] > 23 ? 23 : data[15-i];
 	}
     }
     else if (data) {