comparison 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
comparison
equal deleted inserted replaced
49:8df911733fdc 50:93d21c20cfbc
14 14
15 trackScreenHeight = 0.15; 15 trackScreenHeight = 0.15;
16 16
17 printf("loaded max val is %f\n", loadedAudioFiles[0].fileLoader.onsetDetect.onsetDetector.maximumDetectionValue); 17 printf("loaded max val is %f\n", loadedAudioFiles[0].fileLoader.onsetDetect.onsetDetector.maximumDetectionValue);
18 18
19 int multitrackToLoad = 23; 19 int multitrackToLoad = 27;
20 setDifferentMultitracks(multitrackToLoad);//command to load this set of audio files - see below 20 setDifferentMultitracks(multitrackToLoad);//command to load this set of audio files - see below
21 21
22 //number 7 is problematic with memory 22 //number 7 is problematic with memory
23 23
24 printf("AFTER LOADING: \n"); 24 printf("AFTER LOADING: \n");
27 27
28 numberOfAudioTracks = 4; 28 numberOfAudioTracks = 4;
29 29
30 30
31 } 31 }
32 32 #pragma mark -loadingPrerecordedTracks
33 void RecordedMultitrackAudio::setDifferentMultitracks(const int& setToLoad){ 33 void RecordedMultitrackAudio::setDifferentMultitracks(const int& setToLoad){
34 const char *kickfilename ;//= "../../../data/sound/LiveDues/kick_liveDues.wav"; 34 const char *kickfilename ;//= "../../../data/sound/LiveDues/kick_liveDues.wav";
35 const char *bassfilename ;//"../../../data/sound/LiveDues/bass_upsideLive.wav"; 35 const char *bassfilename ;//"../../../data/sound/LiveDues/bass_upsideLive.wav";
36 const char *snarefilename ; 36 const char *snarefilename ;
37 const char *guitarfilename ; 37 const char *guitarfilename ;
64 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/02kick_bip.wav"; 64 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/02kick_bip.wav";
65 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/01bass_bip.wav"; 65 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/01bass_bip.wav";
66 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/03snare_bip.wav"; 66 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/03snare_bip.wav";
67 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/04guitar di_bip.wav"; 67 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/04guitar di_bip.wav";
68 break; 68 break;
69 case 5: 69
70 //LEWES multitracks?
71 /* case 5:
70 kickfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/02kick_bip.wav"; 72 kickfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/02kick_bip.wav";
71 bassfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/01bass_bip.wav"; 73 bassfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/01bass_bip.wav";
72 snarefilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/03snare_bip.wav"; 74 snarefilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/03snare_bip.wav";
73 guitarfilename ="/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/04elec_bip.wav"; 75 guitarfilename ="/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/Take12/04elec_bip.wav";
74 break; 76 break;
95 case 9: 97 case 9:
96 kickfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine5/02kick.wav"; 98 kickfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine5/02kick.wav";
97 bassfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine5/01bass.wav"; 99 bassfilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine5/01bass.wav";
98 snarefilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine5/03snare.wav"; 100 snarefilename = "/Users/andrew/Documents/work/Alignment/MultitrackMatch/tractorsAlign/DownLine5/03snare.wav";
99 break; 101 break;
100 102 */
101 case 10: 103 case 10:
102 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/02Kick_bip.wav"; 104 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/02Kick_bip.wav";
103 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/01Bass.wav"; 105 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/01Bass.wav";
104 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/03Snare_bip.wav"; 106 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/03Snare_bip.wav";
105 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/04Elec_SM57_bip.wav"; 107 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take2/04Elec_SM57_bip.wav";
125 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take6/03Snare_bip.wav"; 127 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take6/03Snare_bip.wav";
126 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take6/04Elec_SM57_bip.wav"; 128 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/MarbleArchMultitracks/Take6/04Elec_SM57_bip.wav";
127 break; 129 break;
128 130
129 131
130 case 14: 132 /*case 14:
131 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/02Kick_bip.wav"; 133 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/02Kick_bip.wav";
132 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/01Bass.wav"; 134 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/01Bass.wav";
133 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/03Snare_bip.wav"; 135 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/03Snare_bip.wav";
134 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/04Elec_SM57_bip.wav"; 136 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeOneShorter/04Elec_SM57_bip.wav";
135 break; 137 break;
138 */
139 case 14:
140 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoFull/02Kick_bip.wav";
141 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoFull/01Bass.wav";
142 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoFull/03Snare_bip.wav";
143 guitarfilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoFull/Ac D.I.wav";
144 break;
145
136 146
137 case 15: 147 case 15:
138 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/02Kick_bip.wav"; 148 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/02Kick_bip.wav";
139 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/01Bass.wav"; 149 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/01Bass.wav";
140 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/03Snare_bip.wav"; 150 snarefilename ="/Volumes/Supersaurus/Gronk/Gronkn/Bounces/StationGateMultitracks/TakeTwoShorter/03Snare_bip.wav";
197 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/Kick re20_bip.wav"; 207 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/Kick re20_bip.wav";
198 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/Snare sm578_bip.wav"; 208 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/Snare sm578_bip.wav";
199 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/guitar DI_bip.wav"; 209 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/TractorsMotorcade/Motorcade/Bounces/MotorcadeMulittracks/Motorcade_Take_57/guitar DI_bip.wav";
200 break; 210 break;
201 211
212 case 24:
213 bassfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Festival_Multitracks/TakeThree_23/bass D.I.wav";
214 kickfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Festival_Multitracks/TakeThree_23/Kick_bip.wav";
215 snarefilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Festival_Multitracks/TakeThree_23/Snare_bip.wav";
216 guitarfilename = "/Volumes/Supersaurus/Gronk/Gronkn/Bounces/Festival_Multitracks/TakeThree_23/Elec SM57_bip.wav";
217 break;
218 case 25:
219 bassfilename = "/Volumes/G-FORCE X/WorkBackup/Truck/Stones 1.0/Bounces/Stones_Multitracks/TakeThree_21/Bass DI_bip.wav";
220 kickfilename = "/Volumes/G-FORCE X/WorkBackup/Truck/Stones 1.0/Bounces/Stones_Multitracks/TakeThree_21/BD_bip.wav";
221 snarefilename = "/Volumes/G-FORCE X/WorkBackup/Truck/Stones 1.0/Bounces/Stones_Multitracks/TakeThree_21/Snr T_bip.wav";
222 guitarfilename = "/Volumes/G-FORCE X/WorkBackup/Truck/Stones 1.0/Bounces/Stones_Multitracks/TakeThree_21/Guit 57_bip.wav";
223 break;
224
225 case 26:
226 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/PennyArcade_Multitracks/TakeTwo_5/bass di_bip.wav";
227 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/PennyArcade_Multitracks/TakeTwo_5/kick_bip.wav";
228 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/PennyArcade_Multitracks/TakeTwo_5/snare_bip.wav";
229 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/PennyArcade_Multitracks/TakeTwo_5/guitar_bip.wav";
230 break;
231
232 case 27:
233 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesStudioFinal/bass_DI_bip.wav";
234 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesStudioFinal/kick_bip.wav";
235 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesStudioFinal/snare_bip.wav";
236 guitarfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsDemo/Bounces/LewesStudioFinal/guitar sm57_bip.wav";
237 break;
202 238
203 239
204 } 240 }
205 if (kickfilename != NULL) 241 if (kickfilename != NULL)
206 loadAudioTrack(kickfilename, 0); 242 loadAudioTrack(kickfilename, 0);
207 243
208 if (bassfilename != NULL){ 244 if (bassfilename != NULL){
209 printf("BASSfilename: %s\n", bassfilename); 245 printf("BASSfilename: %s\n", bassfilename);
210 loadAudioTrack(bassfilename, 1); 246 loadAudioTrack(bassfilename, 1);
211 } 247 }
212 248
213 if (snarefilename != NULL) 249 if (snarefilename != NULL)
242 for (int i = 0;i < numberOfAudioTracks;i++){ 278 for (int i = 0;i < numberOfAudioTracks;i++){
243 loadedAudioFiles[i].draw(); 279 loadedAudioFiles[i].draw();
244 } 280 }
245 } 281 }
246 282
247 283 #pragma mark -update
248 void RecordedMultitrackAudio::updatePosition(){ 284 void RecordedMultitrackAudio::updatePosition(){
249 for (int i = 0;i < numberOfAudioTracks;i++) 285 for (int i = 0;i < numberOfAudioTracks;i++)
250 loadedAudioFiles[i].updateToPlayPosition(); 286 loadedAudioFiles[i].updateToPlayPosition();
251 } 287 }
252 288
253 void RecordedMultitrackAudio::updatePositionToMillis(const double& millis){ 289 void RecordedMultitrackAudio::updatePositionToMillis(const double& millis){
254 for (int i = 0;i < numberOfAudioTracks;i++) 290 for (int i = 0;i < numberOfAudioTracks;i++)
255 loadedAudioFiles[i].updateToMillisPosition(millis); 291 loadedAudioFiles[i].updateToMillisPosition(millis);
292 }
293
294 void RecordedMultitrackAudio::updatePlaybackPositionToMillis(const double& millis){
295 for (int i = 0;i < numberOfAudioTracks;i++)
296 loadedAudioFiles[i].updatePlaybackPositionToMillis(millis);
256 } 297 }
257 298
258 void RecordedMultitrackAudio::switchScreens(){ 299 void RecordedMultitrackAudio::switchScreens(){
259 for (int i = 0;i < numberOfAudioTracks;i++) 300 for (int i = 0;i < numberOfAudioTracks;i++)
260 loadedAudioFiles[i].switchScreens(); 301 loadedAudioFiles[i].switchScreens();
281 for (int i = 0;i < numberOfAudioTracks;i++) 322 for (int i = 0;i < numberOfAudioTracks;i++)
282 loadedAudioFiles[i].windowResized(w, h); 323 loadedAudioFiles[i].windowResized(w, h);
283 } 324 }
284 325
285 void RecordedMultitrackAudio::zoomIn(){ 326 void RecordedMultitrackAudio::zoomIn(){
327 printf("zoom in\n");
286 for (int i = 0;i < numberOfAudioTracks;i++) 328 for (int i = 0;i < numberOfAudioTracks;i++)
287 loadedAudioFiles[i].fileLoader.zoomIn(); 329 loadedAudioFiles[i].fileLoader.zoomIn();
288 } 330 }
289 331
290 void RecordedMultitrackAudio::zoomOut(){ 332 void RecordedMultitrackAudio::zoomOut(){
333 printf("zoom out\n");
291 for (int i = 0;i < numberOfAudioTracks;i++) 334 for (int i = 0;i < numberOfAudioTracks;i++)
292 loadedAudioFiles[i].fileLoader.zoomOut(); 335 loadedAudioFiles[i].fileLoader.zoomOut();
293 } 336 }
294 337
295 338