Mercurial > hg > multitrack-audio-matcher
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 |