|
|
@ -35,6 +35,9 @@ |
|
|
|
#include <unistd.h> |
|
|
|
#include <unistd.h> |
|
|
|
#include <limits.h> |
|
|
|
#include <limits.h> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern uint8_t bank; |
|
|
|
|
|
|
|
extern bool load_sysex(uint8_t bank, uint8_t voice_number); |
|
|
|
|
|
|
|
|
|
|
|
Dexed::Dexed(int rate) |
|
|
|
Dexed::Dexed(int rate) |
|
|
|
{ |
|
|
|
{ |
|
|
|
uint8_t i; |
|
|
|
uint8_t i; |
|
|
@ -169,6 +172,8 @@ bool Dexed::processMidiMessage(uint8_t type, uint8_t data1, uint8_t data2) |
|
|
|
uint8_t value = data2; |
|
|
|
uint8_t value = data2; |
|
|
|
|
|
|
|
|
|
|
|
switch (ctrl) { |
|
|
|
switch (ctrl) { |
|
|
|
|
|
|
|
case 0: // BankSelect MSB
|
|
|
|
|
|
|
|
break; |
|
|
|
case 1: |
|
|
|
case 1: |
|
|
|
controllers.modwheel_cc = value; |
|
|
|
controllers.modwheel_cc = value; |
|
|
|
controllers.refresh(); |
|
|
|
controllers.refresh(); |
|
|
@ -181,6 +186,9 @@ bool Dexed::processMidiMessage(uint8_t type, uint8_t data1, uint8_t data2) |
|
|
|
controllers.foot_cc = value; |
|
|
|
controllers.foot_cc = value; |
|
|
|
controllers.refresh(); |
|
|
|
controllers.refresh(); |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
case 32: // BankSelect LSB
|
|
|
|
|
|
|
|
bank=data2; |
|
|
|
|
|
|
|
break; |
|
|
|
case 64: |
|
|
|
case 64: |
|
|
|
sustain = value > 63; |
|
|
|
sustain = value > 63; |
|
|
|
if (!sustain) { |
|
|
|
if (!sustain) { |
|
|
@ -204,9 +212,9 @@ bool Dexed::processMidiMessage(uint8_t type, uint8_t data1, uint8_t data2) |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// case 0xc0 :
|
|
|
|
case 0xc0 : // ProgramChange
|
|
|
|
// setCurrentProgram(data1);
|
|
|
|
load_sysex(bank, data1); |
|
|
|
// break;
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
// channel aftertouch
|
|
|
|
// channel aftertouch
|
|
|
|
case 0xd0 : |
|
|
|
case 0xd0 : |
|
|
|