Mercurial > hg > drum-timing-analyser
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); + } +}