andrew@1: /* andrew@1: * RecordedMultitrackAudio.cpp andrew@1: * MultipleAudioMathcher andrew@1: * andrew@1: * Created by Andrew on 31/01/2012. andrew@1: * Copyright 2012 QMUL. All rights reserved. andrew@1: * andrew@1: */ andrew@1: andrew@1: #include "RecordedMultitrackAudio.h" andrew@1: andrew@1: andrew@1: void RecordedMultitrackAudio::loadTestAudio(){ andrew@1: andrew@1: andrew@1: const char *infilename = "../../../data/sound/bach4_short1.wav"; andrew@1: andrew@1: //LoadedAudioHolder lah; andrew@1: // lah.loadAudioFile(infilename); andrew@1: // loadedAudioFiles.push_back(lah); andrew@1: andrew@1: //Take care here - we need a pointer to create new instance andrew@1: //but not then delete the instance before the vector of all audio tracks has been used andrew@1: //the above code using lah has problem that it deletes objects once out of the scope of testApp.setup() andrew@1: //when lah is in theory no longer used - something like that possible? - at least pointers to onset detection seem deleted andrew@1: loadedAudioPtr = new LoadedAudioHolder; andrew@1: loadedAudioPtr->loadAudioFile(infilename); andrew@1: // loadedAudioFiles.push_back(*loadedAudioPtr); andrew@1: loadedAudioFiles[0] = *loadedAudioPtr; andrew@1: andrew@1: loadedAudioFiles[0].fileLoader.onsetDetect.window.setToRelativeSize(0, 0.0, 1, 0.25); andrew@1: andrew@1: // printf("Loaded audio %i\n", (int)numberOfAudioTracks); andrew@1: printf("loaded max val is %f\n", loadedAudioFiles[0].fileLoader.onsetDetect.onsetDetector.maximumDetectionValue); andrew@1: andrew@1: printf("BEFORE LOADING 1\n"); andrew@1: printInfo(); andrew@1: andrew@1: loadedAudioPtr = new LoadedAudioHolder; andrew@1: loadedAudioPtr->loadAudioFile(infilename); andrew@1: // loadedAudioFiles.push_back(*loadedAudioPtr); andrew@1: loadedAudioFiles[1] = *loadedAudioPtr; andrew@1: loadedAudioFiles[1].fileLoader.onsetDetect.window.setToRelativeSize(0, 0.3, 1, 0.25); andrew@1: andrew@1: printf("AFTER LOADING 1\n"); andrew@1: printInfo(); andrew@1: andrew@1: numberOfAudioTracks = 2; andrew@1: andrew@1: andrew@1: } andrew@1: andrew@1: andrew@1: andrew@1: void RecordedMultitrackAudio::drawTracks(){ andrew@1: andrew@1: for (int i = 0;i < numberOfAudioTracks;i++){ andrew@1: loadedAudioFiles[i].draw(); andrew@1: } andrew@1: } andrew@1: andrew@1: andrew@1: void RecordedMultitrackAudio::updatePosition(){ andrew@1: for (int i = 0;i < numberOfAudioTracks;i++) andrew@1: loadedAudioFiles[i].updateToPlayPosition(); andrew@1: } andrew@1: andrew@1: andrew@1: void RecordedMultitrackAudio::switchScreens(){ andrew@1: for (int i = 0;i < numberOfAudioTracks;i++) andrew@1: loadedAudioFiles[i].switchScreens(); andrew@1: } andrew@1: andrew@1: andrew@1: void RecordedMultitrackAudio::togglePlay(){ andrew@1: for (int i = 0;i < numberOfAudioTracks;i++) andrew@1: loadedAudioFiles[i].togglePlay(); andrew@1: } andrew@1: andrew@1: void RecordedMultitrackAudio::stop(){ andrew@1: for (int i = 0;i < numberOfAudioTracks;i++) andrew@1: loadedAudioFiles[i].stop(); andrew@1: } andrew@1: andrew@1: andrew@1: void RecordedMultitrackAudio::printInfo(){ andrew@1: loadedAudioFiles[0].fileLoader.onsetDetect.printChromaInfo(); andrew@1: loadedAudioFiles[0].printEvents(); andrew@1: } andrew@1: andrew@1: void RecordedMultitrackAudio::windowResized(const int& w, const int& h){ andrew@1: for (int i = 0;i < numberOfAudioTracks;i++) andrew@1: loadedAudioFiles[i].windowResized(w, h); andrew@1: } andrew@1: andrew@1: void RecordedMultitrackAudio::zoomIn(){ andrew@1: for (int i = 0;i < numberOfAudioTracks;i++) andrew@1: loadedAudioFiles[i].fileLoader.zoomIn(); andrew@1: } andrew@1: andrew@1: void RecordedMultitrackAudio::zoomOut(){ andrew@1: for (int i = 0;i < numberOfAudioTracks;i++) andrew@1: loadedAudioFiles[i].fileLoader.zoomOut(); andrew@1: } andrew@1: andrew@1: