00001
00005 #include <bpm/bpm_messages.h>
00006 #include <bpm/bpm_process.h>
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 int freq_to_sample( double fs, int ns, double f, int *iS ) {
00022
00023 double fi;
00024 int i;
00025
00026 if ( f < 0. ) {
00027 *iS = 0;
00028 return BPM_SUCCESS;
00029 }
00030
00031 for ( i=0; i<ns; i++ ) {
00032
00033 fi = ( (double) i + 0.5 ) / ( (double) ns ) * fs;
00034 if ( ABS( f - fi ) < ( fs / (double) ns ) ) break;
00035 }
00036
00037 *iS = i;
00038
00039
00040 return BPM_SUCCESS;
00041 }