annotate src/RecordedMultitrackAudio.cpp @ 50:93d21c20cfbc

Added Markers and the ability to switch to these points in the file when playing
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Thu, 14 Jun 2012 20:04:49 +0100
parents 8df911733fdc
children e359b9bad811
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@26 14
andrew@7 15 trackScreenHeight = 0.15;
andrew@26 16
andrew@1 17 printf("loaded max val is %f\n", loadedAudioFiles[0].fileLoader.onsetDetect.onsetDetector.maximumDetectionValue);
andrew@1 18
andrew@50 19 int multitrackToLoad = 27;
andrew@36 20 setDifferentMultitracks(multitrackToLoad);//command to load this set of audio files - see below
andrew@26 21
andrew@31 22 //number 7 is problematic with memory
andrew@26 23
andrew@26 24 printf("AFTER LOADING: \n");
andrew@1 25 printInfo();
andrew@7 26
andrew@1 27
andrew@31 28 numberOfAudioTracks = 4;
andrew@26 29
andrew@1 30
andrew@1 31 }
andrew@50 32 #pragma mark -loadingPrerecordedTracks
andrew@23 33 void RecordedMultitrackAudio::setDifferentMultitracks(const int& setToLoad){
andrew@23 34 const char *kickfilename ;//= "../../../data/sound/LiveDues/kick_liveDues.wav";
andrew@23 35 const char *bassfilename ;//"../../../data/sound/LiveDues/bass_upsideLive.wav";
andrew@23 36 const char *snarefilename ;
andrew@31 37 const char *guitarfilename ;
andrew@23 38
andrew@23 39 switch (setToLoad) {
andrew@23 40 case 0:
andrew@23 41 kickfilename = "../../../data/sound/LiveDues/kick_liveDues.wav";
andrew@23 42 bassfilename = "../../../data/sound/LiveDues/bass_upsideLive.wav";
andrew@23 43 snarefilename = "../../../data/sound/LiveDues/snare_liveDues.wav";
andrew@43 44 guitarfilename = "../../../data/sound/LiveDues/elec_upsideLive.wav";
andrew@23 45 break;
andrew@23 46 case 1:
andrew@43 47 //USE THE 18 AT BOTTOM
andrew@23 48 kickfilename = "../../../data/sound/DiamondMatch1/kick_bip.wav";
andrew@23 49 bassfilename = "../../../data/sound/DiamondMatch1/bass_bip.wav";
andrew@23 50 snarefilename = "../../../data/sound/DiamondMatch1/snare_bip.wav";
andrew@26 51 break;
andrew@23 52 case 2:
andrew@23 53 kickfilename = "../../../data/sound/LiveIdiot2/02kick_bip.wav";
andrew@23 54 bassfilename = "../../../data/sound/LiveIdiot2/01bass_bip.wav";
andrew@23 55 snarefilename = "../../../data/sound/LiveIdiot2/03snare_bip.wav";
andrew@23 56 break;
andrew@23 57 case 3:
andrew@23 58 kickfilename = "../../../data/sound/UistLive1/02kick_bip.wav";
andrew@23 59 bassfilename = "../../../data/sound/UistLive1/01bass_bip.wav";
andrew@23 60 snarefilename = "../../../data/sound/UistLive1/03snare_bip.wav";
andrew@23 61 break;
andrew@28 62
andrew@28 63 case 4:
andrew@39 64 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/02kick_bip.wav";
andrew@39 65 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/01bass_bip.wav";
andrew@39 66 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/03snare_bip.wav";
andrew@39 67 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/04guitar di_bip.wav";
andrew@28 68 break;
andrew@50 69
andrew@50 70 //LEWES multitracks?
andrew@50 71 /* case 5:
andrew@31 72 kickfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/02kick_bip.wav";
andrew@31 73 bassfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/01bass_bip.wav";
andrew@31 74 snarefilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/03snare_bip.wav";
andrew@32 75 guitarfilename ="/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/04elec_bip.wav";
andrew@29 76 break;
andrew@31 77 case 6:
andrew@31 78 kickfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take13/02kick_bip.wav";
andrew@31 79 bassfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take13/01bass_bip.wav";
andrew@31 80 snarefilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take13/03snare_bip.wav";
andrew@32 81 guitarfilename ="/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take13/04elec_bip.wav";
andrew@31 82 break;
andrew@31 83
andrew@31 84 case 7:
andrew@31 85 kickfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take14/02kick_bip.wav";
andrew@31 86 bassfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take14/01bass_bip.wav";
andrew@31 87 snarefilename ="/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take14/03snare_bip.wav";
andrew@31 88 guitarfilename ="/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take14/04elec_bip.wav";
andrew@31 89 break;
andrew@31 90
andrew@31 91 case 8:
andrew@31 92 kickfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine4/02kick_bip.wav";
andrew@31 93 bassfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine4/01bass_bip.wav";
andrew@31 94 snarefilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine4/03snare_bip.wav";
andrew@31 95 break;
andrew@31 96
andrew@31 97 case 9:
andrew@31 98 kickfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine5/02kick.wav";
andrew@31 99 bassfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine5/01bass.wav";
andrew@31 100 snarefilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine5/03snare.wav";
andrew@31 101 break;
andrew@50 102 */
andrew@33 103 case 10:
andrew@33 104 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/02Kick_bip.wav";
andrew@33 105 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/01Bass.wav";
andrew@33 106 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/03Snare_bip.wav";
andrew@33 107 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/04Elec_SM57_bip.wav";
andrew@33 108 break;
andrew@29 109
andrew@33 110 case 11:
andrew@33 111 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take3/02Kick_bip.wav";
andrew@33 112 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take3/01Bass.wav";
andrew@33 113 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take3/03Snare_bip.wav";
andrew@33 114 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take3/04Elec_SM57_bip.wav";
andrew@33 115 break;
andrew@33 116
andrew@33 117 case 12:
andrew@33 118 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take4/02Kick_bip.wav";
andrew@33 119 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take4/01Bass.wav";
andrew@33 120 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take4/03Snare_bip.wav";
andrew@33 121 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take4/04Elec_SM57_bip.wav";
andrew@33 122 break;
andrew@33 123
andrew@33 124 case 13:
andrew@33 125 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take6/02Kick_bip.wav";
andrew@33 126 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take6/01Bass.wav";
andrew@33 127 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take6/03Snare_bip.wav";
andrew@36 128 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take6/04Elec_SM57_bip.wav";
andrew@33 129 break;
andrew@34 130
andrew@34 131
andrew@50 132 /*case 14:
andrew@35 133 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/02Kick_bip.wav";
andrew@35 134 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/01Bass.wav";
andrew@35 135 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/03Snare_bip.wav";
andrew@35 136 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/04Elec_SM57_bip.wav";
andrew@50 137 break;
andrew@50 138 */
andrew@50 139 case 14:
andrew@50 140 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoFull/02Kick_bip.wav";
andrew@50 141 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoFull/01Bass.wav";
andrew@50 142 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoFull/03Snare_bip.wav";
andrew@50 143 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoFull/Ac D.I.wav";
andrew@50 144 break;
andrew@50 145
andrew@34 146
andrew@34 147 case 15:
andrew@35 148 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/02Kick_bip.wav";
andrew@35 149 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/01Bass.wav";
andrew@35 150 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/03Snare_bip.wav";
andrew@35 151 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/04Elec_SM57_bip.wav";
andrew@36 152 break;
andrew@36 153
andrew@36 154 case 16:
andrew@36 155 kickfilename = "/Volumes/Supersaurus/SonOfMan/FollowYourLeaders/FollowYourLeaders/Bounces/FollowMultitracks/Follow_023_D/02Kick_D112_bip.wav";
andrew@39 156 // bassfilename = "/Volumes/Supersaurus/SonOfMan/FollowYourLeaders/FollowYourLeaders/Bounces/FollowMultitracks/Follow_023_D/01Bass.wav";
andrew@39 157 snarefilename = "/Volumes/Supersaurus/SonOfMan/FollowYourLeaders/FollowYourLeaders/Bounces/FollowMultitracks/Follow_023_D/03Snare_Top_bip.wav";
andrew@39 158 guitarfilename = "/Volumes/Supersaurus/SonOfMan/FollowYourLeaders/FollowYourLeaders/Bounces/FollowMultitracks/Follow_023_D/04Elec_SM57_bip.wav";
andrew@39 159
andrew@36 160 break;
andrew@36 161
andrew@39 162 case 17:
andrew@39 163 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeThree/02kick_bip.wav";
andrew@39 164 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeThree/01bass_bip.wav";
andrew@39 165 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeThree/03snare_bip.wav";
andrew@39 166 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeThree/04guitar di_bip.wav";
andrew@39 167 break;
andrew@36 168
andrew@41 169 case 18:
andrew@42 170 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDiamondWhite/tractorsDiamondWhite/Bounces/diamondWhiteMultiTakeTwo/01bass di_bip.wav";
andrew@42 171 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDiamondWhite/tractorsDiamondWhite/Bounces/diamondWhiteMultiTakeTwo/02kick_bip.wav";
andrew@42 172 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDiamondWhite/tractorsDiamondWhite/Bounces/diamondWhiteMultiTakeTwo/03snare bottom_bip.wav";
andrew@41 173 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDiamondWhite/tractorsDiamondWhite/Bounces/diamondWhiteMultiTakeTwo/04guitar di_bip.wav";
andrew@42 174 break;
andrew@42 175
andrew@43 176 case 19:
andrew@47 177 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesMultitracks/LewesTake13_ProperStructure/bass di_bip_1.wav";
andrew@47 178 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesMultitracks/LewesTake13_ProperStructure/kick_bip_1.wav";
andrew@47 179 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesMultitracks/LewesTake13_ProperStructure/snare_bip_1.wav";
andrew@47 180 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesMultitracks/LewesTake13_ProperStructure/guitar di_bip_1.wav";
andrew@43 181 break;
andrew@43 182
andrew@43 183 case 20:
andrew@43 184 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/WanderlustMulitracks/Wanderlust_Take16/Bass D.I.wav";
andrew@43 185 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/WanderlustMulitracks/Wanderlust_Take16/Kick_bip.wav";
andrew@43 186 snarefilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/WanderlustMulitracks/Wanderlust_Take16/Snare_bip.wav";
andrew@43 187 guitarfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/WanderlustMulitracks/Wanderlust_Take16/Elec SM57_bip.wav";
andrew@43 188 break;
andrew@43 189
andrew@43 190
andrew@43 191 case 21:
andrew@43 192 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Windowsill_Multitracks/Windowsill_Take12/Bass D.I.wav";
andrew@43 193 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Windowsill_Multitracks/Windowsill_Take12/Kick_bip.wav";
andrew@43 194 snarefilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Windowsill_Multitracks/Windowsill_Take12/Snare_bip.wav";
andrew@43 195 guitarfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Windowsill_Multitracks/Windowsill_Take12/Elec SM57_bip.wav";
andrew@43 196 break;
andrew@43 197
andrew@43 198 case 22:
andrew@43 199 bassfilename = "/Users/andrew/Music/Logic/SonOfMan/SonOfManMultitracks/SonOfMan_TakeThree/Bass_bip.wav";
andrew@43 200 kickfilename = "/Users/andrew/Music/Logic/SonOfMan/SonOfManMultitracks/SonOfMan_TakeThree/Kik RE20_bip.wav";
andrew@43 201 snarefilename = "/Users/andrew/Music/Logic/SonOfMan/SonOfManMultitracks/SonOfMan_TakeThree/Snare Top_bip.wav";
andrew@43 202 guitarfilename = "/Users/andrew/Music/Logic/SonOfMan/SonOfManMultitracks/SonOfMan_TakeThree/Electric di_bip.wav";
andrew@43 203 break;
andrew@43 204
andrew@48 205 case 23:
andrew@48 206 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/bass DI_bip.wav";
andrew@48 207 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/Kick re20_bip.wav";
andrew@48 208 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/Snare sm578_bip.wav";
andrew@48 209 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/guitar DI_bip.wav";
andrew@48 210 break;
andrew@48 211
andrew@50 212 case 24:
andrew@50 213 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Festival_Multitracks/TakeThree_23/bass D.I.wav";
andrew@50 214 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Festival_Multitracks/TakeThree_23/Kick_bip.wav";
andrew@50 215 snarefilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Festival_Multitracks/TakeThree_23/Snare_bip.wav";
andrew@50 216 guitarfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Festival_Multitracks/TakeThree_23/Elec SM57_bip.wav";
andrew@50 217 break;
andrew@50 218 case 25:
andrew@50 219 bassfilename = "/Volumes/G-FORCE X/WorkBackup/Truck/Stones 1.0/Bounces/Stones_Multitracks/TakeThree_21/Bass DI_bip.wav";
andrew@50 220 kickfilename = "/Volumes/G-FORCE X/WorkBackup/Truck/Stones 1.0/Bounces/Stones_Multitracks/TakeThree_21/BD_bip.wav";
andrew@50 221 snarefilename = "/Volumes/G-FORCE X/WorkBackup/Truck/Stones 1.0/Bounces/Stones_Multitracks/TakeThree_21/Snr T_bip.wav";
andrew@50 222 guitarfilename = "/Volumes/G-FORCE X/WorkBackup/Truck/Stones 1.0/Bounces/Stones_Multitracks/TakeThree_21/Guit 57_bip.wav";
andrew@50 223 break;
andrew@50 224
andrew@50 225 case 26:
andrew@50 226 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/PennyArcade_Multitracks/TakeTwo_5/bass di_bip.wav";
andrew@50 227 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/PennyArcade_Multitracks/TakeTwo_5/kick_bip.wav";
andrew@50 228 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/PennyArcade_Multitracks/TakeTwo_5/snare_bip.wav";
andrew@50 229 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/PennyArcade_Multitracks/TakeTwo_5/guitar_bip.wav";
andrew@50 230 break;
andrew@50 231
andrew@50 232 case 27:
andrew@50 233 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesStudioFinal/bass_DI_bip.wav";
andrew@50 234 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesStudioFinal/kick_bip.wav";
andrew@50 235 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesStudioFinal/snare_bip.wav";
andrew@50 236 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesStudioFinal/guitar sm57_bip.wav";
andrew@50 237 break;
andrew@36 238
andrew@29 239
andrew@23 240 }
andrew@39 241 if (kickfilename != NULL)
andrew@23 242 loadAudioTrack(kickfilename, 0);
andrew@39 243
andrew@50 244 if (bassfilename != NULL){
andrew@39 245 printf("BASSfilename: %s\n", bassfilename);
andrew@39 246 loadAudioTrack(bassfilename, 1);
andrew@39 247 }
andrew@39 248
andrew@39 249 if (snarefilename != NULL)
andrew@23 250 loadAudioTrack(snarefilename, 2);
andrew@31 251
andrew@31 252 if (guitarfilename != NULL)
andrew@31 253 loadAudioTrack(guitarfilename, 3);
andrew@23 254
andrew@23 255 }
andrew@23 256
andrew@23 257 void RecordedMultitrackAudio::loadAudioTrack(std::string name, const int& channel){
andrew@23 258 //kick - track type 0
andrew@23 259 //bass - type 1
andrew@23 260 //snare type 2
andrew@23 261 if (channel >= 0 && channel <= 4){
andrew@23 262 loadedAudioPtr = new LoadedAudioHolder;
andrew@38 263 //set tracktype before we do analysis
andrew@38 264 //so we dont do unnecessary chroma and pitch calculations
andrew@38 265 loadedAudioPtr->setTrackType(channel);
andrew@23 266 loadedAudioPtr->loadAudioFile(name);
andrew@38 267
andrew@23 268 loadedAudioFiles[channel] = *loadedAudioPtr;
andrew@23 269 loadedAudioFiles[channel].fileLoader.onsetDetect.window.setToRelativeSize(0, trackScreenHeight*channel, 1, trackScreenHeight);
andrew@38 270 //loadedAudioFiles[channel].setTrackType(channel);
andrew@23 271 }
andrew@23 272 }
andrew@23 273
andrew@1 274
andrew@1 275
andrew@1 276 void RecordedMultitrackAudio::drawTracks(){
andrew@1 277
andrew@1 278 for (int i = 0;i < numberOfAudioTracks;i++){
andrew@1 279 loadedAudioFiles[i].draw();
andrew@1 280 }
andrew@1 281 }
andrew@1 282
andrew@50 283 #pragma mark -update
andrew@1 284 void RecordedMultitrackAudio::updatePosition(){
andrew@1 285 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 286 loadedAudioFiles[i].updateToPlayPosition();
andrew@1 287 }
andrew@1 288
andrew@9 289 void RecordedMultitrackAudio::updatePositionToMillis(const double& millis){
andrew@9 290 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@9 291 loadedAudioFiles[i].updateToMillisPosition(millis);
andrew@9 292 }
andrew@2 293
andrew@50 294 void RecordedMultitrackAudio::updatePlaybackPositionToMillis(const double& millis){
andrew@50 295 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@50 296 loadedAudioFiles[i].updatePlaybackPositionToMillis(millis);
andrew@50 297 }
andrew@50 298
andrew@1 299 void RecordedMultitrackAudio::switchScreens(){
andrew@1 300 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 301 loadedAudioFiles[i].switchScreens();
andrew@1 302 }
andrew@1 303
andrew@1 304
andrew@1 305 void RecordedMultitrackAudio::togglePlay(){
andrew@1 306 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 307 loadedAudioFiles[i].togglePlay();
andrew@1 308 }
andrew@1 309
andrew@1 310 void RecordedMultitrackAudio::stop(){
andrew@1 311 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 312 loadedAudioFiles[i].stop();
andrew@1 313 }
andrew@1 314
andrew@1 315
andrew@1 316 void RecordedMultitrackAudio::printInfo(){
andrew@1 317 loadedAudioFiles[0].fileLoader.onsetDetect.printChromaInfo();
andrew@1 318 loadedAudioFiles[0].printEvents();
andrew@1 319 }
andrew@1 320
andrew@1 321 void RecordedMultitrackAudio::windowResized(const int& w, const int& h){
andrew@1 322 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 323 loadedAudioFiles[i].windowResized(w, h);
andrew@1 324 }
andrew@1 325
andrew@1 326 void RecordedMultitrackAudio::zoomIn(){
andrew@50 327 printf("zoom in\n");
andrew@1 328 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 329 loadedAudioFiles[i].fileLoader.zoomIn();
andrew@1 330 }
andrew@1 331
andrew@1 332 void RecordedMultitrackAudio::zoomOut(){
andrew@50 333 printf("zoom out\n");
andrew@1 334 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 335 loadedAudioFiles[i].fileLoader.zoomOut();
andrew@1 336 }
andrew@1 337
andrew@1 338