Пример #1
0
void ofxFFTBase::drawLogarithmic(int x, int y, int w, int h)
{
	vector<float> &fftLogNormData = logData.dataNorm;
	vector<float> &fftLogPeakData = logData.dataPeak;
	vector<int> &fftLogCutData = logData.dataCut;
	
	ofPushMatrix();
	ofTranslate(x, y);
	
		drawBg(fftData, w, h);
	
		int renderSingleBandWidth = w / (float)fftLogNormData.size();
		int bx, by; // border.
		bx = by = renderBorder;
	
		// draw cut data
		ofPushStyle();
			ofFill();
			ofSetColor(200);
			for(int i=0; i<fftLogCutData.size(); i++) {
				ofDrawRectangle(i * renderSingleBandWidth + bx,
												h + by,
												renderSingleBandWidth,
												-fftLogCutData[i] * h);
			}
		ofPopStyle();
	
		//draw normalized data
		ofPushStyle();
		for(int i=0; i<fftLogNormData.size(); i++) {
			ofFill();
			ofSetColor(100);
			if (logData.dataBeats[i]) ofSetColor(10, 200, 255);
			ofDrawRectangle(i * renderSingleBandWidth + bx, h + by, renderSingleBandWidth, -fftLogNormData[i] * h);
			
			ofNoFill();
			ofSetColor(232);
			ofDrawRectangle(i * renderSingleBandWidth + bx, h + by, renderSingleBandWidth, -fftLogNormData[i] * h);
		}
		ofPopStyle();
	
		//draw peak data
		ofPushStyle();
			ofFill();
			ofSetColor(0);
			for(int i=0; i<fftLogPeakData.size(); i++)
			{
				float p = fftLogPeakData[i];
				ofDrawRectangle(i * renderSingleBandWidth + bx, (1 - p) * (h - 2) + by, renderSingleBandWidth - 1, 2);
			}
		ofPopStyle();
	
	
	drawBorder(w, h);
	drawThresholdLine(fftData, w, h);
	ofPopMatrix();
	
	//drawThresholdLine(audioData, width, height);
	
}
Пример #2
0
void ofxFFTBase::drawData(const ofxFFTData & audioData, int width, int height) {
    drawBg(audioData, width, height);
    drawGlitchData(audioData, width, height);
//    drawFftData(audioData, width, height);   // this is audio data before its been normalised, good for debugging.
    drawFftNormData(audioData, width, height);
    drawFftPeakData(audioData, width, height);
    drawThresholdLine(audioData, width, height);
    drawBorder(width, height);
}