diff --git a/examples/MidiKeyboard/MidiKeyboardExampleUI.cpp b/examples/MidiKeyboard/MidiKeyboardExampleUI.cpp index c61385ef..4191ec1b 100644 --- a/examples/MidiKeyboard/MidiKeyboardExampleUI.cpp +++ b/examples/MidiKeyboard/MidiKeyboardExampleUI.cpp @@ -17,6 +17,7 @@ #include "DistrhoUI.hpp" #include "Window.hpp" #include "KeyboardWidget.hpp" +#include "src/pugl/pugl.h" START_NAMESPACE_DISTRHO @@ -83,28 +84,67 @@ protected: // Offset from C4 int offset = -1; - const int keyjazzKeyCount = 26; - const uint keyjazzKeysQwerty[keyjazzKeyCount] = {'z', 's', 'x', 'd', 'c', 'v', 'g', 'b', 'h', 'n', 'j', 'm', ',', 'q', '2', 'w', '3', 'e', 'r', '5', 't', '6', 'y', '7', 'u', 'i'}; - - for (int i = 0; i < keyjazzKeyCount; ++i) - { - if (ev.key == keyjazzKeysQwerty[i]) + const int keyjazzKeyCount = 37; + + const PuglKeyCodes keyjazzKeys[keyjazzKeyCount] = { + PUGL_KC_Z, // C-0 + PUGL_KC_S, // C#0 + PUGL_KC_X, // D-0 + PUGL_KC_D, // D#0 + PUGL_KC_C, // E-0 + PUGL_KC_V, // F-0 + PUGL_KC_G, // F#0 + PUGL_KC_B, // G-0 + PUGL_KC_H, // G#0 + PUGL_KC_N, // A-0 + PUGL_KC_J, // A#0 + PUGL_KC_M, // B-0 + PUGL_KC_Comma, // C-1 + PUGL_KC_L, // C#1 + PUGL_KC_Period, // D-1 + PUGL_KC_Semicolon, // D#1 + PUGL_KC_Slash, // E-1 + PUGL_KC_Q, // C-1 + PUGL_KC_2, // C#1 + PUGL_KC_W, // D-1 + PUGL_KC_3, // D#1 + PUGL_KC_E, // E-1 + PUGL_KC_R, // F-1 + PUGL_KC_5, // F#1 + PUGL_KC_T, // G-1 + PUGL_KC_6, // G#1 + PUGL_KC_Y, // A-1 + PUGL_KC_7, // A#1 + PUGL_KC_U, // B-1 + PUGL_KC_I, // C-2 + PUGL_KC_9, // C#2 + PUGL_KC_O, // D-2 + PUGL_KC_0, // D#2 + PUGL_KC_P, // E-2 + PUGL_KC_LeftBracket, // F-2 + PUGL_KC_Equals, // F#2 + PUGL_KC_RightBracket // G-2 + }; + + for (int i = 0; i < keyjazzKeyCount; ++i) { - offset = i; - - // acknowledge duplicate C5 - if (i > 12) + if (ev.keycode == keyjazzKeys[i]) { - offset -= 1; - } + offset = i; + + // acknowledge 5 duplicate notes + if (i > 16) + { + offset -= 5; + } - break; - } + break; + } } if (offset == -1) { - return false; + return false; } fKeyboardWidget.setKeyPressed(offset, ev.press, true);