MCPcopy Create free account
hub / github.com/BespokeSynth/BespokeSynth / SendScaleInfo

Method SendScaleInfo

Source/LinnstrumentControl.cpp:228–285  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

226}
227
228void LinnstrumentControl::SendScaleInfo()
229{
230 /*NRPN format:
231 send these 6 messages in a row:
232 1011nnnn 01100011 ( 99) 0vvvvvvv NRPN parameter number MSB CC
233 1011nnnn 01100010 ( 98) 0vvvvvvv NRPN parameter number LSB CC
234 1011nnnn 00000110 ( 6) 0vvvvvvv NRPN parameter value MSB CC
235 1011nnnn 00100110 ( 38) 0vvvvvvv NRPN parameter value LSB CC
236 1011nnnn 01100101 (101) 01111111 (127) RPN parameter number Reset MSB CC
237 1011nnnn 01100100 (100) 01111111 (127) RPN parameter number Reset LSB CC
238
239 Linnstrument NRPN scale messages:
240 203 0-1 Global Main Note Light C (0: Off, 1: On)
241 204 0-1 Global Main Note Light C# (0: Off, 1: On)
242 205 0-1 Global Main Note Light D (0: Off, 1: On)
243 206 0-1 Global Main Note Light D# (0: Off, 1: On)
244 207 0-1 Global Main Note Light E (0: Off, 1: On)
245 208 0-1 Global Main Note Light F (0: Off, 1: On)
246 209 0-1 Global Main Note Light F# (0: Off, 1: On)
247 210 0-1 Global Main Note Light G (0: Off, 1: On)
248 211 0-1 Global Main Note Light G# (0: Off, 1: On)
249 212 0-1 Global Main Note Light A (0: Off, 1: On)
250 213 0-1 Global Main Note Light A# (0: Off, 1: On)
251 214 0-1 Global Main Note Light B (0: Off, 1: On)
252 215 0-1 Global Accent Note Light C (0: Off, 1: On)
253 216 0-1 Global Accent Note Light C# (0: Off, 1: On)
254 217 0-1 Global Accent Note Light D (0: Off, 1: On)
255 218 0-1 Global Accent Note Light D# (0: Off, 1: On)
256 219 0-1 Global Accent Note Light E (0: Off, 1: On)
257 220 0-1 Global Accent Note Light F (0: Off, 1: On)
258 221 0-1 Global Accent Note Light F# (0: Off, 1: On)
259 222 0-1 Global Accent Note Light G (0: Off, 1: On)
260 223 0-1 Global Accent Note Light G# (0: Off, 1: On)
261 224 0-1 Global Accent Note Light A (0: Off, 1: On)
262 225 0-1 Global Accent Note Light A# (0: Off, 1: On)
263 226 0-1 Global Accent Note Light B (0: Off, 1: On)
264 */
265
266 const unsigned char setMainNoteBase = 203;
267 const unsigned char setAccentNoteBase = 215;
268 if (TheScale->GetPitchesPerOctave() == 12) //linnstrument only works with 12-tet
269 {
270 for (int pitch = 0; pitch < 12; ++pitch)
271 {
272 //set main note
273 int number = setMainNoteBase + pitch;
274 SendNRPN(number, TheScale->IsInScale(pitch));
275
276 std::this_thread::sleep_for(10ms);
277
278 //set accent note
279 number = setAccentNoteBase + pitch;
280 SendNRPN(number, TheScale->IsRoot(pitch));
281
282 std::this_thread::sleep_for(10ms);
283 }
284 }
285}

Callers

nothing calls this directly

Calls 3

GetPitchesPerOctaveMethod · 0.80
IsInScaleMethod · 0.80
IsRootMethod · 0.80

Tested by

no test coverage detected