aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/scalar.c9
-rw-r--r--src/vector.c8
2 files changed, 10 insertions, 7 deletions
diff --git a/src/scalar.c b/src/scalar.c
index 612fa3c..49c4408 100644
--- a/src/scalar.c
+++ b/src/scalar.c
@@ -291,14 +291,17 @@ int xtract_rolloff(const float *data, const int N, const void *argv, float *resu
int xtract_loudness(const float *data, const int N, const void *argv, float *result){
- int n = BARK_BANDS;
+ int n = N, rv;
- /*if(n != N) return BAD_VECTOR_SIZE; */
+ if(n > BARK_BANDS)
+ rv = BAD_VECTOR_SIZE;
+ else
+ rv = SUCCESS;
while(n--)
*result += pow(data[n], 0.23);
- return SUCCESS;
+ return rv;
}
int xtract_flatness(const float *data, const int N, const void *argv, float *result){
diff --git a/src/vector.c b/src/vector.c
index 739004e..bc7140b 100644
--- a/src/vector.c
+++ b/src/vector.c
@@ -51,12 +51,12 @@ int xtract_magnitude_spectrum(const float *data, const int N, const void *argv,
fftwf_execute(plan);
for(n = 1; n < M; n++){
- result[n] = sqrt(SQ(temp[n]) + SQ(temp[N - n])) / N;
- result[M + n] = n * q;
+ result[M + n] = sqrt(SQ(temp[n]) + SQ(temp[N - n])) / N;
+ result[n] = n * q;
}
- result[0] = fabs(temp[0]) / N;
- result[M] = q * .5;
+ result[M] = fabs(temp[0]) / N;
+ result[0] = q * .5;
fftwf_destroy_plan(plan);
fftwf_free(temp);