Thread: [Libxtract-commits] SF.net SVN: libxtract: [69] trunk/src/vector.c
Status: Alpha
Brought to you by:
postlude
From: <dan...@us...> - 2007-03-13 10:14:34
|
Revision: 69 http://libxtract.svn.sourceforge.net/libxtract/?rev=69&view=rev Author: danstowell Date: 2007-03-13 03:14:32 -0700 (Tue, 13 Mar 2007) Log Message: ----------- Fixed incorrect symbols in FFTless placeholder functions, and made them return a value. Modified Paths: -------------- trunk/src/vector.c Modified: trunk/src/vector.c =================================================================== --- trunk/src/vector.c 2007-03-12 19:13:48 UTC (rev 68) +++ trunk/src/vector.c 2007-03-13 10:14:32 UTC (rev 69) @@ -184,25 +184,29 @@ int xtract_magnitude_spectrum(const float *data, const int N, const void *argv, float *result){ - NEEDS_FFTW; + XTRACT_NEEDS_FFTW; + return XTRACT_NO_RESULT; } int xtract_autocorrelation_fft(const float *data, const int N, const void *argv, float *result){ - NEEDS_FFTW; + XTRACT_NEEDS_FFTW; + return XTRACT_NO_RESULT; } int xtract_mfcc(const float *data, const int N, const void *argv, float *result){ - NEEDS_FFTW; + XTRACT_NEEDS_FFTW; + return XTRACT_NO_RESULT; } int xtract_dct(const float *data, const int N, const void *argv, float *result){ - NEEDS_FFTW; + XTRACT_NEEDS_FFTW; + return XTRACT_NO_RESULT; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2007-03-19 16:40:38
|
Revision: 71 http://libxtract.svn.sourceforge.net/libxtract/?rev=71&view=rev Author: danstowell Date: 2007-03-19 07:41:56 -0700 (Mon, 19 Mar 2007) Log Message: ----------- xtract_mfcc failed to initialise its result values to zero - now fixed. Modified Paths: -------------- trunk/src/vector.c Modified: trunk/src/vector.c =================================================================== --- trunk/src/vector.c 2007-03-14 17:20:14 UTC (rev 70) +++ trunk/src/vector.c 2007-03-19 14:41:56 UTC (rev 71) @@ -159,6 +159,7 @@ input = memcpy(input, data, bytes); for(filter = 0; filter < f->n_filters; filter++){ + result[filter] = 0.f; for(n = 0; n < N; n++){ result[filter] += input[n] * f->filters[filter][n]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pos...@us...> - 2008-01-02 04:10:22
|
Revision: 115 http://libxtract.svn.sourceforge.net/libxtract/?rev=115&view=rev Author: postlude Date: 2008-01-01 20:10:21 -0800 (Tue, 01 Jan 2008) Log Message: ----------- - Minor fix in xtract_lpc... or at least think it's a fix Modified Paths: -------------- trunk/src/vector.c Modified: trunk/src/vector.c =================================================================== --- trunk/src/vector.c 2008-01-02 02:26:13 UTC (rev 114) +++ trunk/src/vector.c 2008-01-02 04:10:21 UTC (rev 115) @@ -488,13 +488,13 @@ M = L * 2; /* The length of *result */ ref = result; lpc = result+L; - +/* if(error == 0.0){ for(i = 0; i < M; i++) result[i] = 0.f; return XTRACT_NO_RESULT; } - +*/ memset(result, 0, M * sizeof(float)); for (i = 0; i < L; i++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2007-03-19 17:09:27
|
Revision: 72 http://libxtract.svn.sourceforge.net/libxtract/?rev=72&view=rev Author: danstowell Date: 2007-03-19 08:06:55 -0700 (Mon, 19 Mar 2007) Log Message: ----------- xtract_mfcc(): Slightly different way of limiting to XTRACT_LOG_LIMIT. It's the same in theory, but saves on one assignment operation. But the real reason I did it was because my compiler (gcc 4.0.1, Apple intel edition) was getting it wrong (presumably during some optimisation). It does save on the assignment though. Modified Paths: -------------- trunk/src/vector.c Modified: trunk/src/vector.c =================================================================== --- trunk/src/vector.c 2007-03-19 14:41:56 UTC (rev 71) +++ trunk/src/vector.c 2007-03-19 15:06:55 UTC (rev 72) @@ -163,8 +163,7 @@ for(n = 0; n < N; n++){ result[filter] += input[n] * f->filters[filter][n]; } - if(result[filter] < XTRACT_LOG_LIMIT) result[filter] = XTRACT_LOG_LIMIT; - result[filter] = log(result[filter]); + result[filter] = log(result[filter] < XTRACT_LOG_LIMIT ? XTRACT_LOG_LIMIT : result[filter]); } for(n = filter + 1; n < N; n++) result[n] = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pos...@us...> - 2007-03-20 07:57:59
|
Revision: 74 http://libxtract.svn.sourceforge.net/libxtract/?rev=74&view=rev Author: postlude Date: 2007-03-20 00:35:30 -0700 (Tue, 20 Mar 2007) Log Message: ----------- Removed spurious mallocs and frees in xtract_mfcc and xtract_dct Modified Paths: -------------- trunk/src/vector.c Modified: trunk/src/vector.c =================================================================== --- trunk/src/vector.c 2007-03-19 18:58:21 UTC (rev 73) +++ trunk/src/vector.c 2007-03-20 07:35:30 UTC (rev 74) @@ -182,19 +182,15 @@ int xtract_mfcc(const float *data, const int N, const void *argv, float *result){ xtract_mel_filter *f; - float *input; size_t bytes; int n, filter; f = (xtract_mel_filter *)argv; - input = (float *)malloc(bytes = N * sizeof(float)); - input = memcpy(input, data, bytes); - for(filter = 0; filter < f->n_filters; filter++){ result[filter] = 0.f; for(n = 0; n < N; n++){ - result[filter] += input[n] * f->filters[filter][n]; + result[filter] += data[n] * f->filters[filter][n]; } result[filter] = log(result[filter] < XTRACT_LOG_LIMIT ? XTRACT_LOG_LIMIT : result[filter]); } @@ -202,8 +198,6 @@ for(n = filter + 1; n < N; n++) result[n] = 0; xtract_dct(result, f->n_filters, NULL, result); - - free(input); return XTRACT_SUCCESS; } @@ -211,18 +205,13 @@ int xtract_dct(const float *data, const int N, const void *argv, float *result){ fftwf_plan plan; - float *input; size_t bytes; - - input = (float *)malloc(bytes = N * sizeof(float)); - input = memcpy(input, data, bytes); plan = - fftwf_plan_r2r_1d(N, input, result, FFTW_REDFT00, FFTW_ESTIMATE); + fftwf_plan_r2r_1d(N, data, result, FFTW_REDFT00, FFTW_ESTIMATE); fftwf_execute(plan); fftwf_destroy_plan(plan); - free(input); return XTRACT_SUCCESS; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2007-04-04 10:26:01
|
Revision: 77 http://libxtract.svn.sourceforge.net/libxtract/?rev=77&view=rev Author: danstowell Date: 2007-04-04 03:25:47 -0700 (Wed, 04 Apr 2007) Log Message: ----------- Small changes thanks to compiler warnings (no change to behaviour) Modified Paths: -------------- trunk/src/vector.c Modified: trunk/src/vector.c =================================================================== --- trunk/src/vector.c 2007-03-20 07:57:56 UTC (rev 76) +++ trunk/src/vector.c 2007-04-04 10:25:47 UTC (rev 77) @@ -182,7 +182,6 @@ int xtract_mfcc(const float *data, const int N, const void *argv, float *result){ xtract_mel_filter *f; - size_t bytes; int n, filter; f = (xtract_mel_filter *)argv; @@ -205,10 +204,9 @@ int xtract_dct(const float *data, const int N, const void *argv, float *result){ fftwf_plan plan; - size_t bytes; plan = - fftwf_plan_r2r_1d(N, data, result, FFTW_REDFT00, FFTW_ESTIMATE); + fftwf_plan_r2r_1d(N, (float *) data, result, FFTW_REDFT00, FFTW_ESTIMATE); fftwf_execute(plan); fftwf_destroy_plan(plan); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pos...@us...> - 2007-04-20 09:51:31
|
Revision: 79 http://libxtract.svn.sourceforge.net/libxtract/?rev=79&view=rev Author: postlude Date: 2007-04-20 02:51:28 -0700 (Fri, 20 Apr 2007) Log Message: ----------- Minor update to autocorrelation_fft() Modified Paths: -------------- trunk/src/vector.c Modified: trunk/src/vector.c =================================================================== --- trunk/src/vector.c 2007-04-20 08:49:49 UTC (rev 78) +++ trunk/src/vector.c 2007-04-20 09:51:28 UTC (rev 79) @@ -171,7 +171,7 @@ fftwf_execute(plan); - for(n = 1; n < M / 2; n++){ + for(n = 1; n < N; n++){ freq[n] = XTRACT_SQ(freq[n]) + XTRACT_SQ(freq[M - n]); freq[M - n] = 0.f; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2007-10-03 13:43:19
|
Revision: 99 http://libxtract.svn.sourceforge.net/libxtract/?rev=99&view=rev Author: danstowell Date: 2007-10-03 06:43:16 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Dan Stowell: Removed strange "zeroing" part of xtract_mfcc() which was zeroing a load of elements despite the fact that they're ignored by the DCT process called next, and never used for anything. This was writing to an assumed large result array (same size as number of FFT bins) despite the fact that only a small number of MFCCs (typically less than 50) are required, therefore either wasting memory or writing to memory it shouldn't do! Modified Paths: -------------- trunk/src/vector.c Modified: trunk/src/vector.c =================================================================== --- trunk/src/vector.c 2007-10-03 10:01:15 UTC (rev 98) +++ trunk/src/vector.c 2007-10-03 13:43:16 UTC (rev 99) @@ -221,8 +221,6 @@ result[filter] = log(result[filter] < XTRACT_LOG_LIMIT ? XTRACT_LOG_LIMIT : result[filter]); } - for(n = filter + 1; n < N; n++) result[n] = 0; - xtract_dct(result, f->n_filters, NULL, result); return XTRACT_SUCCESS; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |