# HG changeset patch # User marvin # Date 1166479289 28800 # Node ID 0934eeabc0eda4d10358fbbf56511f6966cbe68f # Parent caaf4b1a84878ceb7b1b5e71e347640793efd1b1 [svn] Added subsampling and nonlinear transfer function to the voiceprint visualizer. Also increased the intensity range. diff -r caaf4b1a8487 -r 0934eeabc0ed ChangeLog --- 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 + 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 revision [3339] - run update-po diff -r caaf4b1a8487 -r 0934eeabc0ed audacious/visualization.c --- 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) */ diff -r caaf4b1a8487 -r 0934eeabc0ed audacious/widgets/vis.c --- 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) {