| 226 | } |
| 227 | |
| 228 | void 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 | } |
nothing calls this directly
no test coverage detected