annotate src/RecordedMultitrackAudio.cpp @ 1:852173ca8365

Added class to hold recorded mulitracks
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Tue, 31 Jan 2012 17:35:30 +0000
parents
children 179c09199b3c
rev   line source
andrew@1 1 /*
andrew@1 2 * RecordedMultitrackAudio.cpp
andrew@1 3 * MultipleAudioMathcher
andrew@1 4 *
andrew@1 5 * Created by Andrew on 31/01/2012.
andrew@1 6 * Copyright 2012 QMUL. All rights reserved.
andrew@1 7 *
andrew@1 8 */
andrew@1 9
andrew@1 10 #include "RecordedMultitrackAudio.h"
andrew@1 11
andrew@1 12
andrew@1 13 void RecordedMultitrackAudio::loadTestAudio(){
andrew@1 14
andrew@1 15
andrew@1 16 const char *infilename = "../../../data/sound/bach4_short1.wav";
andrew@1 17
andrew@1 18 //LoadedAudioHolder lah;
andrew@1 19 // lah.loadAudioFile(infilename);
andrew@1 20 // loadedAudioFiles.push_back(lah);
andrew@1 21
andrew@1 22 //Take care here - we need a pointer to create new instance
andrew@1 23 //but not then delete the instance before the vector of all audio tracks has been used
andrew@1 24 //the above code using lah has problem that it deletes objects once out of the scope of testApp.setup()
andrew@1 25 //when lah is in theory no longer used - something like that possible? - at least pointers to onset detection seem deleted
andrew@1 26 loadedAudioPtr = new LoadedAudioHolder;
andrew@1 27 loadedAudioPtr->loadAudioFile(infilename);
andrew@1 28 // loadedAudioFiles.push_back(*loadedAudioPtr);
andrew@1 29 loadedAudioFiles[0] = *loadedAudioPtr;
andrew@1 30
andrew@1 31 loadedAudioFiles[0].fileLoader.onsetDetect.window.setToRelativeSize(0, 0.0, 1, 0.25);
andrew@1 32
andrew@1 33 // printf("Loaded audio %i\n", (int)numberOfAudioTracks);
andrew@1 34 printf("loaded max val is %f\n", loadedAudioFiles[0].fileLoader.onsetDetect.onsetDetector.maximumDetectionValue);
andrew@1 35
andrew@1 36 printf("BEFORE LOADING 1\n");
andrew@1 37 printInfo();
andrew@1 38
andrew@1 39 loadedAudioPtr = new LoadedAudioHolder;
andrew@1 40 loadedAudioPtr->loadAudioFile(infilename);
andrew@1 41 // loadedAudioFiles.push_back(*loadedAudioPtr);
andrew@1 42 loadedAudioFiles[1] = *loadedAudioPtr;
andrew@1 43 loadedAudioFiles[1].fileLoader.onsetDetect.window.setToRelativeSize(0, 0.3, 1, 0.25);
andrew@1 44
andrew@1 45 printf("AFTER LOADING 1\n");
andrew@1 46 printInfo();
andrew@1 47
andrew@1 48 numberOfAudioTracks = 2;
andrew@1 49
andrew@1 50
andrew@1 51 }
andrew@1 52
andrew@1 53
andrew@1 54
andrew@1 55 void RecordedMultitrackAudio::drawTracks(){
andrew@1 56
andrew@1 57 for (int i = 0;i < numberOfAudioTracks;i++){
andrew@1 58 loadedAudioFiles[i].draw();
andrew@1 59 }
andrew@1 60 }
andrew@1 61
andrew@1 62
andrew@1 63 void RecordedMultitrackAudio::updatePosition(){
andrew@1 64 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 65 loadedAudioFiles[i].updateToPlayPosition();
andrew@1 66 }
andrew@1 67
andrew@1 68
andrew@1 69 void RecordedMultitrackAudio::switchScreens(){
andrew@1 70 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 71 loadedAudioFiles[i].switchScreens();
andrew@1 72 }
andrew@1 73
andrew@1 74
andrew@1 75 void RecordedMultitrackAudio::togglePlay(){
andrew@1 76 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 77 loadedAudioFiles[i].togglePlay();
andrew@1 78 }
andrew@1 79
andrew@1 80 void RecordedMultitrackAudio::stop(){
andrew@1 81 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 82 loadedAudioFiles[i].stop();
andrew@1 83 }
andrew@1 84
andrew@1 85
andrew@1 86 void RecordedMultitrackAudio::printInfo(){
andrew@1 87 loadedAudioFiles[0].fileLoader.onsetDetect.printChromaInfo();
andrew@1 88 loadedAudioFiles[0].printEvents();
andrew@1 89 }
andrew@1 90
andrew@1 91 void RecordedMultitrackAudio::windowResized(const int& w, const int& h){
andrew@1 92 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 93 loadedAudioFiles[i].windowResized(w, h);
andrew@1 94 }
andrew@1 95
andrew@1 96 void RecordedMultitrackAudio::zoomIn(){
andrew@1 97 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 98 loadedAudioFiles[i].fileLoader.zoomIn();
andrew@1 99 }
andrew@1 100
andrew@1 101 void RecordedMultitrackAudio::zoomOut(){
andrew@1 102 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 103 loadedAudioFiles[i].fileLoader.zoomOut();
andrew@1 104 }
andrew@1 105
andrew@1 106