Mercurial > hg > midi-score-follower
comparison jnmr/testApp.cpp @ 48:803edc47e825
Adding files, possibly some minor code changes
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Tue, 06 Mar 2012 17:11:46 +0000 |
parents | 43edc8abe2a7 |
children | 3ce6dadd8167 |
comparison
equal
deleted
inserted
replaced
47:1726189a6317 | 48:803edc47e825 |
---|---|
3 | 3 |
4 testApp::testApp(ofxArgs* args){ | 4 testApp::testApp(ofxArgs* args){ |
5 this->args = args; | 5 this->args = args; |
6 } | 6 } |
7 | 7 |
8 | |
8 //-------------------------------------------------------------- | 9 //-------------------------------------------------------------- |
9 void testApp::setup(){ | 10 void testApp::setup(){ |
10 | 11 |
11 | 12 |
12 | 13 |
15 | 16 |
16 myfile.open("../../../data/FilesOut/exampletest2.txt"); | 17 myfile.open("../../../data/FilesOut/exampletest2.txt"); |
17 | 18 |
18 | 19 |
19 | 20 |
20 // diffFile.open("../../../data/FilesOut/diffTest.txt"); | 21 // diffFile.open("../../../data/FilesOut/diffTest.txt"); |
21 | 22 |
22 midiEvents.fileOutput = &myfile; | 23 midiEvents.fileOutput = &myfile; |
23 midiEvents.differenceOutput = &diffFile; | 24 midiEvents.differenceOutput = &diffFile; |
24 | 25 |
25 | 26 |
100 void testApp::update(){ | 101 void testApp::update(){ |
101 if (playing){ | 102 if (playing){ |
102 midiEvents.updatePlayPosition();//this fn calls midiEvents.bayesStruct.updateBestEstimate(); | 103 midiEvents.updatePlayPosition();//this fn calls midiEvents.bayesStruct.updateBestEstimate(); |
103 } | 104 } |
104 // drawer.tickLocation+=20; | 105 // drawer.tickLocation+=20; |
106 checkOSCmessages(); | |
107 | |
108 if (midiEvents.recordedEventTimes.size() > 0) | |
109 checkNewScoreNote(); | |
110 | |
111 } | |
112 | |
113 void testApp::checkOSCmessages(){ | |
105 | 114 |
106 // check for waiting messages | 115 // check for waiting messages |
107 while( receiver.hasWaitingMessages() ) | 116 while( receiver.hasWaitingMessages() ) |
108 { | 117 { |
109 ofxOscMessage m; | 118 ofxOscMessage m; |
118 if (velocity != 0){ | 127 if (velocity != 0){ |
119 if (readyToStart){ | 128 if (readyToStart){ |
120 startPlaying(); | 129 startPlaying(); |
121 printf("starting to PLAY!!!"); | 130 printf("starting to PLAY!!!"); |
122 } | 131 } |
123 // printf("MIDI NOTE %i \n", newMidiOnPitch); | 132 // printf("MIDI NOTE %i \n", newMidiOnPitch); |
124 midiEvents.newNoteOnEvent(newMidiOnPitch, velocity, time); | 133 midiEvents.newNoteOnEvent(newMidiOnPitch, velocity, time); |
125 noteInStream.newNoteCounted(newMidiOnPitch);//counts notes for an overall score | 134 noteInStream.newNoteCounted(newMidiOnPitch);//counts notes for an overall score |
126 } | 135 } |
127 | 136 |
128 } | 137 } |
129 | 138 |
130 if ( m.getAddress() == "/setSpeedPrior" ) | 139 if ( m.getAddress() == "/setSpeedPrior" ) |
131 { | 140 { |
132 float speedPrior = m.getArgAsFloat(0); | 141 float speedPrior = m.getArgAsFloat(0); |
135 //midiEvents.bayesStruct.speedPriorValue = speedPrior; | 144 //midiEvents.bayesStruct.speedPriorValue = speedPrior; |
136 } | 145 } |
137 | 146 |
138 if ( m.getAddress() == "/startplaying" ) | 147 if ( m.getAddress() == "/startplaying" ) |
139 { | 148 { |
140 // prepareToStartOnNextNote(); | 149 // prepareToStartOnNextNote(); |
141 startPlaying(); | 150 startPlaying(); |
142 } | 151 } |
143 | 152 |
144 if ( m.getAddress() == "/stopplaying" ) | 153 if ( m.getAddress() == "/stopplaying" ) |
145 { | 154 { |
149 | 158 |
150 if ( m.getAddress() == "/integratedEstimate" ) | 159 if ( m.getAddress() == "/integratedEstimate" ) |
151 { | 160 { |
152 midiEvents.bayesStruct.usingIntegratedTempoEstimate = true; | 161 midiEvents.bayesStruct.usingIntegratedTempoEstimate = true; |
153 } | 162 } |
154 | 163 |
155 if ( m.getAddress() == "/MAPestimate" ) | 164 if ( m.getAddress() == "/MAPestimate" ) |
156 { | 165 { |
157 midiEvents.bayesStruct.usingIntegratedTempoEstimate = false; | 166 midiEvents.bayesStruct.usingIntegratedTempoEstimate = false; |
158 } | 167 } |
159 | 168 |
169 midiEvents.runningInRealTime = false; | 178 midiEvents.runningInRealTime = false; |
170 } | 179 } |
171 | 180 |
172 if ( m.getAddress() == "/minimumSpeedRatio" ) | 181 if ( m.getAddress() == "/minimumSpeedRatio" ) |
173 { | 182 { |
174 | 183 |
175 float minSpeed = m.getArgAsFloat(0); | 184 float minSpeed = m.getArgAsFloat(0); |
176 //printf("minimum speed received is %f and max is %f\n", minSpeed, midiEvents.bayesStruct.relativeSpeedLikelihood.getIndexInRealTerms(midiEvents.bayesStruct.relativeSpeedLikelihood.length-1)); | 185 //printf("minimum speed received is %f and max is %f\n", minSpeed, midiEvents.bayesStruct.relativeSpeedLikelihood.getIndexInRealTerms(midiEvents.bayesStruct.relativeSpeedLikelihood.length-1)); |
177 if (minSpeed > 0 && minSpeed < midiEvents.bayesStruct.relativeSpeedLikelihood.getIndexInRealTerms(midiEvents.bayesStruct.relativeSpeedLikelihood.length-1)){ | 186 if (minSpeed > 0 && minSpeed < midiEvents.bayesStruct.relativeSpeedLikelihood.getIndexInRealTerms(midiEvents.bayesStruct.relativeSpeedLikelihood.length-1)){ |
178 printf("minimum speed accepted is %f\n", minSpeed); | 187 printf("minimum speed accepted is %f\n", minSpeed); |
179 midiEvents.minimumMatchSpeed = minSpeed; | 188 midiEvents.minimumMatchSpeed = minSpeed; |
180 } | 189 } |
181 } | 190 } |
182 | 191 |
183 if ( m.getAddress() == "/maximumSpeedRatio" ) | 192 if ( m.getAddress() == "/maximumSpeedRatio" ) |
184 { | 193 { |
185 | 194 |
186 float maxSpeed = m.getArgAsFloat(0); | 195 float maxSpeed = m.getArgAsFloat(0); |
187 //printf("minimum speed received is %f and max is %f\n", minSpeed, midiEvents.bayesStruct.relativeSpeedLikelihood.getIndexInRealTerms(midiEvents.bayesStruct.relativeSpeedLikelihood.length-1)); | 196 //printf("minimum speed received is %f and max is %f\n", minSpeed, midiEvents.bayesStruct.relativeSpeedLikelihood.getIndexInRealTerms(midiEvents.bayesStruct.relativeSpeedLikelihood.length-1)); |
198 | 207 |
199 if (ratio > 0.001 && ratio < 0.6){ | 208 if (ratio > 0.001 && ratio < 0.6){ |
200 midiEvents.likelihoodToNoiseRatio = ratio; | 209 midiEvents.likelihoodToNoiseRatio = ratio; |
201 printf("likelihood for events relative to noise uses ratio %f\n", ratio); | 210 printf("likelihood for events relative to noise uses ratio %f\n", ratio); |
202 } | 211 } |
203 | 212 |
204 } | 213 } |
205 | 214 |
206 if ( m.getAddress() == "/duration" ) | 215 if ( m.getAddress() == "/duration" ) |
207 { | 216 { |
208 | 217 |
220 loadAnnotation(m.getArgAsInt32(0)); | 229 loadAnnotation(m.getArgAsInt32(0)); |
221 } | 230 } |
222 | 231 |
223 | 232 |
224 }//end while osc | 233 }//end while osc |
225 | |
226 if (midiEvents.recordedEventTimes.size() > 0) | |
227 checkNewScoreNote(); | |
228 | 234 |
229 } | 235 } |
230 | 236 |
231 | 237 |
232 void testApp::checkNewScoreNote(){ | 238 void testApp::checkNewScoreNote(){ |