Revision 22:6afcb5edd7ab BeatRootProcessor.h
| BeatRootProcessor.h | ||
|---|---|---|
| 117 | 117 |
protected: |
| 118 | 118 |
/** Allocates memory for arrays, based on parameter settings */ |
| 119 | 119 |
void init() {
|
| 120 |
#ifdef DEBUG_BEATROOT |
|
| 121 |
std::cerr << "BeatRootProcessor::init()" << std::endl; |
|
| 122 |
#endif |
|
| 120 | 123 |
makeFreqMap(fftSize, sampleRate); |
| 121 | 124 |
prevFrame.clear(); |
| 122 | 125 |
for (int i = 0; i <= fftSize/2; i++) prevFrame.push_back(0); |
| 123 | 126 |
spectralFlux.clear(); |
| 127 |
onsets.clear(); |
|
| 128 |
onsetList.clear(); |
|
| 124 | 129 |
} // init() |
| 125 | 130 |
|
| 126 | 131 |
/** Creates a map of FFT frequency bins to comparison bins. |
| ... | ... | |
| 137 | 142 |
int crossoverMidi = (int)lrint(log(crossoverBin*binWidth/440)/ |
| 138 | 143 |
log(2) * 12 + 69); |
| 139 | 144 |
int i = 0; |
| 140 |
while (i <= crossoverBin && i <= fftSize/2) |
|
| 141 |
freqMap[i++] = i; |
|
| 145 |
while (i <= crossoverBin && i <= fftSize/2) {
|
|
| 146 |
freqMap[i] = i; |
|
| 147 |
++i; |
|
| 148 |
} |
|
| 142 | 149 |
while (i <= fftSize/2) {
|
| 143 | 150 |
double midi = log(i*binWidth/440) / log(2) * 12 + 69; |
| 144 | 151 |
if (midi > 127) |
| 145 | 152 |
midi = 127; |
| 146 |
freqMap[i++] = crossoverBin + (int)lrint(midi) - crossoverMidi; |
|
| 153 |
freqMap[i] = crossoverBin + (int)lrint(midi) - crossoverMidi; |
|
| 154 |
++i; |
|
| 147 | 155 |
} |
| 148 | 156 |
freqMapSize = freqMap[i-1] + 1; |
| 149 | 157 |
} // makeFreqMap() |
Also available in: Unified diff