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@26
|
19
|
andrew@26
|
20
|
andrew@28
|
21 setDifferentMultitracks(4);//command to load this set of audio files - see below
|
andrew@26
|
22
|
andrew@26
|
23 printf("AFTER LOADING: \n");
|
andrew@1
|
24 printInfo();
|
andrew@7
|
25
|
andrew@1
|
26
|
andrew@7
|
27 numberOfAudioTracks = 3;
|
andrew@26
|
28
|
andrew@1
|
29
|
andrew@1
|
30 }
|
andrew@1
|
31
|
andrew@23
|
32 void RecordedMultitrackAudio::setDifferentMultitracks(const int& setToLoad){
|
andrew@23
|
33 const char *kickfilename ;//= "../../../data/sound/LiveDues/kick_liveDues.wav";
|
andrew@23
|
34 const char *bassfilename ;//"../../../data/sound/LiveDues/bass_upsideLive.wav";
|
andrew@23
|
35 const char *snarefilename ;
|
andrew@23
|
36
|
andrew@23
|
37 switch (setToLoad) {
|
andrew@23
|
38 case 0:
|
andrew@23
|
39 kickfilename = "../../../data/sound/LiveDues/kick_liveDues.wav";
|
andrew@23
|
40 bassfilename = "../../../data/sound/LiveDues/bass_upsideLive.wav";
|
andrew@23
|
41 snarefilename = "../../../data/sound/LiveDues/snare_liveDues.wav";
|
andrew@23
|
42 break;
|
andrew@23
|
43 case 1:
|
andrew@23
|
44 kickfilename = "../../../data/sound/DiamondMatch1/kick_bip.wav";
|
andrew@23
|
45 bassfilename = "../../../data/sound/DiamondMatch1/bass_bip.wav";
|
andrew@23
|
46 snarefilename = "../../../data/sound/DiamondMatch1/snare_bip.wav";
|
andrew@26
|
47 break;
|
andrew@23
|
48 case 2:
|
andrew@23
|
49 kickfilename = "../../../data/sound/LiveIdiot2/02kick_bip.wav";
|
andrew@23
|
50 bassfilename = "../../../data/sound/LiveIdiot2/01bass_bip.wav";
|
andrew@23
|
51 snarefilename = "../../../data/sound/LiveIdiot2/03snare_bip.wav";
|
andrew@23
|
52 break;
|
andrew@23
|
53 case 3:
|
andrew@23
|
54 kickfilename = "../../../data/sound/UistLive1/02kick_bip.wav";
|
andrew@23
|
55 bassfilename = "../../../data/sound/UistLive1/01bass_bip.wav";
|
andrew@23
|
56 snarefilename = "../../../data/sound/UistLive1/03snare_bip.wav";
|
andrew@23
|
57 break;
|
andrew@28
|
58
|
andrew@28
|
59 case 4:
|
andrew@28
|
60 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/kick d112_bip.wav";
|
andrew@28
|
61 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/bass di_bip.wav";
|
andrew@28
|
62 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/snare_bip.wav";
|
andrew@28
|
63 break;
|
andrew@23
|
64 }
|
andrew@23
|
65 loadAudioTrack(kickfilename, 0);
|
andrew@23
|
66 loadAudioTrack(bassfilename, 1);
|
andrew@23
|
67 loadAudioTrack(snarefilename, 2);
|
andrew@23
|
68
|
andrew@23
|
69 }
|
andrew@23
|
70
|
andrew@23
|
71 void RecordedMultitrackAudio::loadAudioTrack(std::string name, const int& channel){
|
andrew@23
|
72 //kick - track type 0
|
andrew@23
|
73 //bass - type 1
|
andrew@23
|
74 //snare type 2
|
andrew@23
|
75 if (channel >= 0 && channel <= 4){
|
andrew@23
|
76 loadedAudioPtr = new LoadedAudioHolder;
|
andrew@23
|
77 loadedAudioPtr->loadAudioFile(name);
|
andrew@23
|
78 loadedAudioFiles[channel] = *loadedAudioPtr;
|
andrew@23
|
79 loadedAudioFiles[channel].fileLoader.onsetDetect.window.setToRelativeSize(0, trackScreenHeight*channel, 1, trackScreenHeight);
|
andrew@23
|
80 loadedAudioFiles[channel].setTrackType(channel);
|
andrew@23
|
81 }
|
andrew@23
|
82 }
|
andrew@23
|
83
|
andrew@1
|
84
|
andrew@1
|
85
|
andrew@1
|
86 void RecordedMultitrackAudio::drawTracks(){
|
andrew@1
|
87
|
andrew@1
|
88 for (int i = 0;i < numberOfAudioTracks;i++){
|
andrew@1
|
89 loadedAudioFiles[i].draw();
|
andrew@1
|
90 }
|
andrew@1
|
91 }
|
andrew@1
|
92
|
andrew@1
|
93
|
andrew@1
|
94 void RecordedMultitrackAudio::updatePosition(){
|
andrew@1
|
95 for (int i = 0;i < numberOfAudioTracks;i++)
|
andrew@1
|
96 loadedAudioFiles[i].updateToPlayPosition();
|
andrew@1
|
97 }
|
andrew@1
|
98
|
andrew@9
|
99 void RecordedMultitrackAudio::updatePositionToMillis(const double& millis){
|
andrew@9
|
100 for (int i = 0;i < numberOfAudioTracks;i++)
|
andrew@9
|
101 loadedAudioFiles[i].updateToMillisPosition(millis);
|
andrew@9
|
102 }
|
andrew@2
|
103
|
andrew@1
|
104 void RecordedMultitrackAudio::switchScreens(){
|
andrew@1
|
105 for (int i = 0;i < numberOfAudioTracks;i++)
|
andrew@1
|
106 loadedAudioFiles[i].switchScreens();
|
andrew@1
|
107 }
|
andrew@1
|
108
|
andrew@1
|
109
|
andrew@1
|
110 void RecordedMultitrackAudio::togglePlay(){
|
andrew@1
|
111 for (int i = 0;i < numberOfAudioTracks;i++)
|
andrew@1
|
112 loadedAudioFiles[i].togglePlay();
|
andrew@1
|
113 }
|
andrew@1
|
114
|
andrew@1
|
115 void RecordedMultitrackAudio::stop(){
|
andrew@1
|
116 for (int i = 0;i < numberOfAudioTracks;i++)
|
andrew@1
|
117 loadedAudioFiles[i].stop();
|
andrew@1
|
118 }
|
andrew@1
|
119
|
andrew@1
|
120
|
andrew@1
|
121 void RecordedMultitrackAudio::printInfo(){
|
andrew@1
|
122 loadedAudioFiles[0].fileLoader.onsetDetect.printChromaInfo();
|
andrew@1
|
123 loadedAudioFiles[0].printEvents();
|
andrew@1
|
124 }
|
andrew@1
|
125
|
andrew@1
|
126 void RecordedMultitrackAudio::windowResized(const int& w, const int& h){
|
andrew@1
|
127 for (int i = 0;i < numberOfAudioTracks;i++)
|
andrew@1
|
128 loadedAudioFiles[i].windowResized(w, h);
|
andrew@1
|
129 }
|
andrew@1
|
130
|
andrew@1
|
131 void RecordedMultitrackAudio::zoomIn(){
|
andrew@1
|
132 for (int i = 0;i < numberOfAudioTracks;i++)
|
andrew@1
|
133 loadedAudioFiles[i].fileLoader.zoomIn();
|
andrew@1
|
134 }
|
andrew@1
|
135
|
andrew@1
|
136 void RecordedMultitrackAudio::zoomOut(){
|
andrew@1
|
137 for (int i = 0;i < numberOfAudioTracks;i++)
|
andrew@1
|
138 loadedAudioFiles[i].fileLoader.zoomOut();
|
andrew@1
|
139 }
|
andrew@1
|
140
|
andrew@1
|
141
|