Mercurial > hg > multitrack-audio-matcher
view src/RecordedMultitrackAudio.cpp @ 17:c96b18dd0f48
adjusting sync parameters
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Mon, 06 Feb 2012 13:38:19 +0000 |
parents | 680ba08e9925 |
children | 4ded82fe318d |
line wrap: on
line source
/* * RecordedMultitrackAudio.cpp * MultipleAudioMathcher * * Created by Andrew on 31/01/2012. * Copyright 2012 QMUL. All rights reserved. * */ #include "RecordedMultitrackAudio.h" void RecordedMultitrackAudio::loadTestAudio(){ // const char *kickfilename = "../../../data/sound/LiveDues/kick_liveDues.wav"; // const char *bassfilename = "../../../data/sound/LiveDues/bass_upsideLive.wav"; // const char *snarefilename = "../../../data/sound/LiveDues/snare_liveDues.wav"; // const char *kickfilename = "../../../data/sound/DiamondMatch1/kick_bip.wav"; // const char *bassfilename = "../../../data/sound/DiamondMatch1/bass_bip.wav"; // const char *snarefilename = "../../../data/sound/DiamondMatch1/snare_bip.wav"; const char *kickfilename = "../../../data/sound/LiveIdiot2/02kick_bip.wav"; const char *bassfilename = "../../../data/sound/LiveIdiot2/01bass_bip.wav"; const char *snarefilename = "../../../data/sound/LiveIdiot2/03snare_bip.wav"; /* const char *kickfilename = "../../../data/sound/UistLive1/02kick_bip.wav"; const char *bassfilename = "../../../data/sound/UistLive1/01bass_bip.wav"; const char *snarefilename = "../../../data/sound/UistLive1/03snare_bip.wav"; */ //"../../../data/sound/basicClavScale.wav"; //LoadedAudioHolder lah; // lah.loadAudioFile(infilename); // loadedAudioFiles.push_back(lah); trackScreenHeight = 0.15; //Take care here - we need a pointer to create new instance //but not then delete the instance before the vector of all audio tracks has been used //the above code using lah has problem that it deletes objects once out of the scope of testApp.setup() //when lah is in theory no longer used - something like that possible? - at least pointers to onset detection seem deleted loadedAudioPtr = new LoadedAudioHolder(); loadedAudioPtr->loadAudioFile(kickfilename); // loadedAudioFiles.push_back(*loadedAudioPtr); loadedAudioFiles[0] = *loadedAudioPtr; loadedAudioFiles[0].fileLoader.onsetDetect.window.setToRelativeSize(0, 0.0, 1, trackScreenHeight); loadedAudioFiles[0].setTrackType(0);// fileLoader.onsetDetect.trackType = 0; // printf("Loaded audio %i\n", (int)numberOfAudioTracks); printf("loaded max val is %f\n", loadedAudioFiles[0].fileLoader.onsetDetect.onsetDetector.maximumDetectionValue); printf("BEFORE LOADING 1\n"); printInfo(); loadedAudioPtr = new LoadedAudioHolder; loadedAudioPtr->loadAudioFile(bassfilename); // loadedAudioFiles.push_back(*loadedAudioPtr); loadedAudioFiles[1] = *loadedAudioPtr; loadedAudioFiles[1].fileLoader.onsetDetect.window.setToRelativeSize(0, trackScreenHeight, 1, trackScreenHeight); loadedAudioFiles[1].setTrackType(1); loadedAudioPtr = new LoadedAudioHolder; loadedAudioPtr->loadAudioFile(snarefilename); // loadedAudioFiles.push_back(*loadedAudioPtr); loadedAudioFiles[2] = *loadedAudioPtr; loadedAudioFiles[2].fileLoader.onsetDetect.window.setToRelativeSize(0, trackScreenHeight*2, 1, trackScreenHeight); loadedAudioFiles[2].setTrackType(2); printf("AFTER LOADING 1\n"); printInfo(); numberOfAudioTracks = 3; } void RecordedMultitrackAudio::drawTracks(){ for (int i = 0;i < numberOfAudioTracks;i++){ loadedAudioFiles[i].draw(); } } void RecordedMultitrackAudio::updatePosition(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].updateToPlayPosition(); } void RecordedMultitrackAudio::updatePositionToMillis(const double& millis){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].updateToMillisPosition(millis); } void RecordedMultitrackAudio::switchScreens(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].switchScreens(); } void RecordedMultitrackAudio::togglePlay(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].togglePlay(); } void RecordedMultitrackAudio::stop(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].stop(); } void RecordedMultitrackAudio::printInfo(){ loadedAudioFiles[0].fileLoader.onsetDetect.printChromaInfo(); loadedAudioFiles[0].printEvents(); } void RecordedMultitrackAudio::windowResized(const int& w, const int& h){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].windowResized(w, h); } void RecordedMultitrackAudio::zoomIn(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].fileLoader.zoomIn(); } void RecordedMultitrackAudio::zoomOut(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].fileLoader.zoomOut(); }