andrew@0: /* andrew@0: * LoadedAudioHolder.cpp andrew@0: * fileLoaderAndOnsetDetection andrew@0: * andrew@0: * Created by Andrew on 28/01/2012. andrew@0: * Copyright 2012 QMUL. All rights reserved. andrew@0: * andrew@0: */ andrew@0: andrew@0: #include "LoadedAudioHolder.h" andrew@0: andrew@0: LoadedAudioHolder::LoadedAudioHolder(){ andrew@0: audioPaused = true; andrew@0: audioPlaying = false; andrew@0: trackType = 0; andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::updateToPlayPosition(){ andrew@0: fileLoader.updateToAudioPosition(loadedAudio.getPosition()); andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::updateToMillisPosition(const double& millis){ andrew@0: fileLoader.updateToMillisPosition(millis); andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::updatePlaybackPositionToMillis(const double& millis){ andrew@0: printf("updatePlay %f", millis * 44.1 / (double) fileLoader.totalNumberOfSamples ); andrew@0: andrew@0: loadedAudio.setPosition(millis * 44.1 / (double) fileLoader.totalNumberOfSamples ); andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::draw(){ andrew@0: fileLoader.drawFile(); andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::loadAudioFile(string soundFileName){ andrew@0: loadedAudio.loadSound(soundFileName); andrew@0: fileLoader.loadNewAudio(soundFileName); andrew@0: audioPlaying = false; andrew@0: loadedFileName = soundFileName; andrew@0: copyOnsetTimes(); andrew@0: andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::copyOnsetTimes(){ andrew@0: andrew@0: onsetTimesMillis.clear(); andrew@0: andrew@0: for (int i = 0;i < fileLoader.onsetDetect.chromaOnsets.size();i++) andrew@0: onsetTimesMillis.push_back(fileLoader.onsetDetect.chromaOnsets[i].millisTime); andrew@0: andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::setTrackType(const int& i){ andrew@0: fileLoader.onsetDetect.trackType = i; andrew@0: trackType = i; andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::togglePlay(){ andrew@0: if (!audioPlaying) { andrew@0: loadedAudio.play(); andrew@0: loadedAudio.setPaused(false); andrew@0: audioPlaying = true; andrew@0: audioPaused = false; andrew@0: printf("playing %s\n", loadedFileName.c_str()); andrew@0: } andrew@0: else{ andrew@0: audioPaused = !audioPaused; andrew@0: loadedAudio.setPaused(audioPaused); andrew@0: } andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::stop(){ andrew@0: audioPlaying = false; andrew@0: loadedAudio.setPaused(true); andrew@0: loadedAudio.setPosition(0.0); andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::switchScreens(){ andrew@0: fileLoader.screenToDraw = 1 - fileLoader.screenToDraw; andrew@0: } andrew@0: andrew@0: void LoadedAudioHolder::windowResized(const int& w, const int& h){ andrew@0: fileLoader.onsetDetect.windowResized(w, h); andrew@0: } andrew@0: andrew@0: andrew@0: void LoadedAudioHolder::printEvents(){ andrew@0: for (int i = 0;i < fileLoader.onsetDetect.chromaOnsets.size();i++){ andrew@0: printf("Event time %f millis %i frames pitch %f\n", fileLoader.onsetDetect.chromaOnsets[i].millisTime, andrew@0: fileLoader.onsetDetect.chromaOnsets[i].frameTime, fileLoader.onsetDetect.chromaOnsets[i].aubioPitch); andrew@0: } andrew@0: }