diff options
| -rw-r--r-- | muse/muse/midievent.cpp | 12 | ||||
| -rw-r--r-- | muse/muse/midioutport.cpp | 27 | 
2 files changed, 19 insertions, 20 deletions
| diff --git a/muse/muse/midievent.cpp b/muse/muse/midievent.cpp index 573302c0..8dbf4dc2 100644 --- a/muse/muse/midievent.cpp +++ b/muse/muse/midievent.cpp @@ -79,11 +79,11 @@ MidiEvent::MidiEvent(unsigned tick, int channel, const Event& e)  void MidiEvent::dump() const        {        printf("chan:%d ", _channel+1); -      if (_type == 0x90) {   // NoteOn +      if (_type == ME_NOTEON) {   // NoteOn              QString s = pitch2string(_a);              printf("NoteOn %3s(0x%02x) %3d\n", s.toLatin1().data(), _a, _b);             } -      else if (_type == 0xf0) { +      else if (_type == ME_SYSEX) {              printf("SysEx  len %d ", len());              int n = len() < 7 ? len() : 7;              unsigned char* p = data(); @@ -91,12 +91,14 @@ void MidiEvent::dump() const                    printf("%02x ", *p++);              printf("\n");              } -      else if (_type == 0xb0) +      else if (_type == ME_CONTROLLER)              printf("Ctrl   %d(0x%02x) %d(0x%02x)\n", _a, _a, _b, _b); -      else if (_type == 0xc0) +      else if (_type == ME_PROGRAM)              printf("Prog   %d(0x%02x)\n", _a, _a); -      else if (_type == 0xd0) +      else if (_type == ME_AFTERTOUCH)              printf("Aftertouch %d\n", _a); +      else if (_type == ME_PITCHBEND) +            printf("PitchBend %d\n", _a);        else              printf("type:0x%02x a=%d(0x%02x) b=%d(0x%02x)\n", _type, _a, _a, _b, _b);        } diff --git a/muse/muse/midioutport.cpp b/muse/muse/midioutport.cpp index 720256b5..c3fc16fc 100644 --- a/muse/muse/midioutport.cpp +++ b/muse/muse/midioutport.cpp @@ -132,8 +132,8 @@ void MidiOutPort::routeEvent(const MidiEvent& event)              int chn = event.channel();              if (chn == 255) {                    // port controller -                  if (hwCtrlState(a) == event.dataB()) { -//                        printf(" controller change optimized away 1\n"); +                  if (hwCtrlState(a) == b) { +// printf(" controller change optimized away 1\n");                          return;                          }                    setHwCtrlState(a, b); @@ -143,8 +143,8 @@ void MidiOutPort::routeEvent(const MidiEvent& event)                    //                    //  optimize controller settings                    // -                  if (mc->hwCtrlState(a) == event.dataB()) { -//                        printf(" controller change optimized away 2\n"); +                  if (mc->hwCtrlState(a) == b) { +// printf(" controller %02x change optimized away: value %02x\n", a, b);                          return;                          }                    mc->setHwCtrlState(a, b); @@ -185,17 +185,14 @@ void MidiOutPort::queueAlsaEvent(const MidiEvent& ev)                    AO(MidiEvent(t, chn, ME_PITCHBEND, b, 0));                    }              else if (a == CTRL_PROGRAM) { -                  // don't output program changes for GM drum channel -//                  if (!(song->mtype() == MT_GM && chn == 9)) { -                        int hb = (b >> 16) & 0xff; -                        int lb = (b >> 8) & 0xff; -                        int pr = b & 0x7f; -                        if (hb != 0xff) -                              AO(MidiEvent(t, chn, ME_CONTROLLER, CTRL_HBANK, hb)); -                        if (lb != 0xff) -                              AO(MidiEvent(t+1, chn, ME_CONTROLLER, CTRL_LBANK, lb)); -                        AO(MidiEvent(t+2, chn, ME_PROGRAM, pr, 0)); -//                      } +                  int hb = (b >> 16) & 0xff; +                  int lb = (b >> 8) & 0xff; +                  int pr = b & 0x7f; +                  if (hb != 0xff) +                        AO(MidiEvent(t, chn, ME_CONTROLLER, CTRL_HBANK, hb)); +                  if (lb != 0xff) +                        AO(MidiEvent(t+1, chn, ME_CONTROLLER, CTRL_LBANK, lb)); +                  AO(MidiEvent(t+2, chn, ME_PROGRAM, pr, 0));                    }              else if (a == CTRL_MASTER_VOLUME) {                    unsigned char sysex[] = { | 
