diff DrumTimingLoader_OF/ofxAudioFileLoader/LoadedAudioHolder.cpp @ 0:82352cfc0b23

Added files from ISMIR groove drum timing work
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Mon, 01 Oct 2012 22:24:32 +0100
parents
children 50ba55abea8c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DrumTimingLoader_OF/ofxAudioFileLoader/LoadedAudioHolder.cpp	Mon Oct 01 22:24:32 2012 +0100
@@ -0,0 +1,93 @@
+/*
+ *  LoadedAudioHolder.cpp
+ *  fileLoaderAndOnsetDetection
+ *
+ *  Created by Andrew on 28/01/2012.
+ *  Copyright 2012 QMUL. All rights reserved.
+ *
+ */
+
+#include "LoadedAudioHolder.h"
+
+LoadedAudioHolder::LoadedAudioHolder(){
+	audioPaused = true;
+	audioPlaying = false;
+	trackType = 0;
+}
+
+void LoadedAudioHolder::updateToPlayPosition(){
+	fileLoader.updateToAudioPosition(loadedAudio.getPosition());
+}
+
+void LoadedAudioHolder::updateToMillisPosition(const double& millis){	
+	fileLoader.updateToMillisPosition(millis);
+}
+
+void LoadedAudioHolder::updatePlaybackPositionToMillis(const double& millis){
+	printf("updatePlay %f", millis * 44.1 / (double) fileLoader.totalNumberOfSamples );
+	
+	loadedAudio.setPosition(millis * 44.1 / (double) fileLoader.totalNumberOfSamples );
+}
+
+void LoadedAudioHolder::draw(){
+	fileLoader.drawFile();
+}
+
+void LoadedAudioHolder::loadAudioFile(string soundFileName){
+	loadedAudio.loadSound(soundFileName);
+	fileLoader.loadNewAudio(soundFileName);
+	audioPlaying = false;
+	loadedFileName = soundFileName;
+	copyOnsetTimes();
+	
+}
+
+void LoadedAudioHolder::copyOnsetTimes(){
+
+	onsetTimesMillis.clear();
+	
+	for (int i = 0;i < fileLoader.onsetDetect.chromaOnsets.size();i++)
+		onsetTimesMillis.push_back(fileLoader.onsetDetect.chromaOnsets[i].millisTime);
+	
+}
+
+void LoadedAudioHolder::setTrackType(const int& i){
+	fileLoader.onsetDetect.trackType = i;
+	trackType = i;
+}
+
+void LoadedAudioHolder::togglePlay(){
+	if (!audioPlaying) {
+		loadedAudio.play();
+		loadedAudio.setPaused(false);
+		audioPlaying = true;
+		audioPaused = false;
+		printf("playing %s\n", loadedFileName.c_str());
+	}
+	else{
+		audioPaused = !audioPaused;
+		loadedAudio.setPaused(audioPaused);
+	}
+}
+
+void LoadedAudioHolder::stop(){
+	audioPlaying = false;
+	loadedAudio.setPaused(true);
+	loadedAudio.setPosition(0.0);
+}
+
+void LoadedAudioHolder::switchScreens(){
+	fileLoader.screenToDraw = 1 - fileLoader.screenToDraw;
+}
+
+void LoadedAudioHolder::windowResized(const int& w, const int& h){
+	fileLoader.onsetDetect.windowResized(w, h);
+}
+
+
+void LoadedAudioHolder::printEvents(){
+	for (int i = 0;i < fileLoader.onsetDetect.chromaOnsets.size();i++){
+		printf("Event time %f millis %i frames pitch %f\n", fileLoader.onsetDetect.chromaOnsets[i].millisTime, 
+			   fileLoader.onsetDetect.chromaOnsets[i].frameTime, fileLoader.onsetDetect.chromaOnsets[i].aubioPitch);
+	}
+}