Mercurial > hg > decimation
comparison qm-dsp-decimate/decimate.cpp @ 17:f8efad075df0
Better output, to match resample
author | Chris Cannam |
---|---|
date | Fri, 18 Oct 2013 15:47:08 +0100 |
parents | e35d83f7b4f0 |
children | 69ee50c19c0c |
comparison
equal
deleted
inserted
replaced
16:66abf86c864d | 17:f8efad075df0 |
---|---|
89 } | 89 } |
90 | 90 |
91 int sourceRate = sfinfo.samplerate; | 91 int sourceRate = sfinfo.samplerate; |
92 int targetRate = sourceRate / factor; | 92 int targetRate = sourceRate / factor; |
93 | 93 |
94 cerr << "Decimating by factor " << factor << ", from " << sourceRate | |
95 << " to " << targetRate << " Hz" << endl; | |
96 | |
94 if (sourceRate % factor != 0) { | 97 if (sourceRate % factor != 0) { |
95 cerr << "WARNING: Decimation factor " << factor << " from source rate " | 98 cerr << "WARNING: Decimation factor " << factor << " from source rate " |
96 << sourceRate << " gives non-integral target rate (not supported " | 99 << sourceRate << " gives non-integral target rate (not supported " |
97 << "by output file format), recording as " << targetRate << endl; | 100 << "by output file format), recording as " << targetRate << endl; |
98 } | 101 } |
188 etv.tv_sec -= 1; | 191 etv.tv_sec -= 1; |
189 } | 192 } |
190 etv.tv_usec -= tv.tv_usec; | 193 etv.tv_usec -= tv.tv_usec; |
191 | 194 |
192 double sec = double(etv.tv_sec) + (double(etv.tv_usec) / 1000000.0); | 195 double sec = double(etv.tv_sec) + (double(etv.tv_usec) / 1000000.0); |
193 cerr << "elapsed time: " << sec << " sec, in frames/sec: " << sfinfo.frames/sec << ", out frames/sec: " << n/sec << endl; | 196 cerr << sfinfo.frames << " frames in, " << n << " frames out" |
197 << ", nominal factor " << (1.0/factor) | |
198 << ", actual " << double(n)/double(sfinfo.frames) | |
199 << endl << "Elapsed time: " << sec << " sec, in frames/sec: " | |
200 << int(sfinfo.frames/sec) << ", out frames/sec: " << int(n/sec) << endl; | |
194 | 201 |
195 return 0; | 202 return 0; |
196 } | 203 } |
197 | 204 |
198 | 205 |