annotate src/RecordedMultitrackAudio.cpp @ 23:bc113cd60a2f

tmp mistake
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Mon, 13 Feb 2012 14:58:53 +0000
parents 24c413f0f2c5
children 9df5449077bb
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@23 15
andrew@1 16
andrew@6 17 //"../../../data/sound/basicClavScale.wav";
andrew@1 18
andrew@1 19 //LoadedAudioHolder lah;
andrew@1 20 // lah.loadAudioFile(infilename);
andrew@1 21 // loadedAudioFiles.push_back(lah);
andrew@1 22
andrew@7 23 trackScreenHeight = 0.15;
andrew@1 24 //Take care here - we need a pointer to create new instance
andrew@1 25 //but not then delete the instance before the vector of all audio tracks has been used
andrew@1 26 //the above code using lah has problem that it deletes objects once out of the scope of testApp.setup()
andrew@1 27 //when lah is in theory no longer used - something like that possible? - at least pointers to onset detection seem deleted
andrew@23 28 /*
andrew@2 29 loadedAudioPtr = new LoadedAudioHolder();
andrew@10 30 loadedAudioPtr->loadAudioFile(kickfilename);
andrew@1 31 loadedAudioFiles[0] = *loadedAudioPtr;
andrew@7 32 loadedAudioFiles[0].fileLoader.onsetDetect.window.setToRelativeSize(0, 0.0, 1, trackScreenHeight);
andrew@2 33 loadedAudioFiles[0].setTrackType(0);// fileLoader.onsetDetect.trackType = 0;
andrew@23 34 */
andrew@1 35 // printf("Loaded audio %i\n", (int)numberOfAudioTracks);
andrew@1 36 printf("loaded max val is %f\n", loadedAudioFiles[0].fileLoader.onsetDetect.onsetDetector.maximumDetectionValue);
andrew@1 37
andrew@1 38 printf("BEFORE LOADING 1\n");
andrew@1 39 printInfo();
andrew@1 40
andrew@23 41 setDifferentMultitracks(1);
andrew@7 42
andrew@1 43 printf("AFTER LOADING 1\n");
andrew@1 44 printInfo();
andrew@1 45
andrew@7 46 numberOfAudioTracks = 3;
andrew@1 47
andrew@1 48
andrew@1 49 }
andrew@1 50
andrew@23 51 void RecordedMultitrackAudio::setDifferentMultitracks(const int& setToLoad){
andrew@23 52 const char *kickfilename ;//= "../../../data/sound/LiveDues/kick_liveDues.wav";
andrew@23 53 const char *bassfilename ;//"../../../data/sound/LiveDues/bass_upsideLive.wav";
andrew@23 54 const char *snarefilename ;
andrew@23 55
andrew@23 56 switch (setToLoad) {
andrew@23 57 case 0:
andrew@23 58
andrew@23 59 kickfilename = "../../../data/sound/LiveDues/kick_liveDues.wav";
andrew@23 60 bassfilename = "../../../data/sound/LiveDues/bass_upsideLive.wav";
andrew@23 61 snarefilename = "../../../data/sound/LiveDues/snare_liveDues.wav";
andrew@23 62
andrew@23 63
andrew@23 64
andrew@23 65 break;
andrew@23 66 case 1:
andrew@23 67
andrew@23 68 kickfilename = "../../../data/sound/DiamondMatch1/kick_bip.wav";
andrew@23 69 bassfilename = "../../../data/sound/DiamondMatch1/bass_bip.wav";
andrew@23 70 snarefilename = "../../../data/sound/DiamondMatch1/snare_bip.wav";
andrew@23 71
andrew@23 72
andrew@23 73 case 2:
andrew@23 74 kickfilename = "../../../data/sound/LiveIdiot2/02kick_bip.wav";
andrew@23 75 bassfilename = "../../../data/sound/LiveIdiot2/01bass_bip.wav";
andrew@23 76 snarefilename = "../../../data/sound/LiveIdiot2/03snare_bip.wav";
andrew@23 77
andrew@23 78 break;
andrew@23 79 case 3:
andrew@23 80
andrew@23 81 kickfilename = "../../../data/sound/UistLive1/02kick_bip.wav";
andrew@23 82 bassfilename = "../../../data/sound/UistLive1/01bass_bip.wav";
andrew@23 83 snarefilename = "../../../data/sound/UistLive1/03snare_bip.wav";
andrew@23 84
andrew@23 85 break;
andrew@23 86 }
andrew@23 87 loadAudioTrack(kickfilename, 0);
andrew@23 88 loadAudioTrack(bassfilename, 1);
andrew@23 89 loadAudioTrack(snarefilename, 2);
andrew@23 90
andrew@23 91
andrew@23 92 }
andrew@23 93
andrew@23 94 void RecordedMultitrackAudio::loadAudioTrack(std::string name, const int& channel){
andrew@23 95 //kick - track type 0
andrew@23 96 //bass - type 1
andrew@23 97 //snare type 2
andrew@23 98 if (channel >= 0 && channel <= 4){
andrew@23 99 loadedAudioPtr = new LoadedAudioHolder;
andrew@23 100 loadedAudioPtr->loadAudioFile(name);
andrew@23 101 loadedAudioFiles[channel] = *loadedAudioPtr;
andrew@23 102 loadedAudioFiles[channel].fileLoader.onsetDetect.window.setToRelativeSize(0, trackScreenHeight*channel, 1, trackScreenHeight);
andrew@23 103 loadedAudioFiles[channel].setTrackType(channel);
andrew@23 104 }
andrew@23 105 }
andrew@23 106
andrew@1 107
andrew@1 108
andrew@1 109 void RecordedMultitrackAudio::drawTracks(){
andrew@1 110
andrew@1 111 for (int i = 0;i < numberOfAudioTracks;i++){
andrew@1 112 loadedAudioFiles[i].draw();
andrew@1 113 }
andrew@1 114 }
andrew@1 115
andrew@1 116
andrew@1 117 void RecordedMultitrackAudio::updatePosition(){
andrew@1 118 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 119 loadedAudioFiles[i].updateToPlayPosition();
andrew@1 120 }
andrew@1 121
andrew@9 122 void RecordedMultitrackAudio::updatePositionToMillis(const double& millis){
andrew@9 123 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@9 124 loadedAudioFiles[i].updateToMillisPosition(millis);
andrew@9 125 }
andrew@2 126
andrew@1 127 void RecordedMultitrackAudio::switchScreens(){
andrew@1 128 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 129 loadedAudioFiles[i].switchScreens();
andrew@1 130 }
andrew@1 131
andrew@1 132
andrew@1 133 void RecordedMultitrackAudio::togglePlay(){
andrew@1 134 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 135 loadedAudioFiles[i].togglePlay();
andrew@1 136 }
andrew@1 137
andrew@1 138 void RecordedMultitrackAudio::stop(){
andrew@1 139 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 140 loadedAudioFiles[i].stop();
andrew@1 141 }
andrew@1 142
andrew@1 143
andrew@1 144 void RecordedMultitrackAudio::printInfo(){
andrew@1 145 loadedAudioFiles[0].fileLoader.onsetDetect.printChromaInfo();
andrew@1 146 loadedAudioFiles[0].printEvents();
andrew@1 147 }
andrew@1 148
andrew@1 149 void RecordedMultitrackAudio::windowResized(const int& w, const int& h){
andrew@1 150 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 151 loadedAudioFiles[i].windowResized(w, h);
andrew@1 152 }
andrew@1 153
andrew@1 154 void RecordedMultitrackAudio::zoomIn(){
andrew@1 155 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 156 loadedAudioFiles[i].fileLoader.zoomIn();
andrew@1 157 }
andrew@1 158
andrew@1 159 void RecordedMultitrackAudio::zoomOut(){
andrew@1 160 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 161 loadedAudioFiles[i].fileLoader.zoomOut();
andrew@1 162 }
andrew@1 163
andrew@1 164