summaryrefslogtreecommitdiffstats
path: root/keyboards/40percentclub/gherkin/keymaps/midi
diff options
context:
space:
mode:
authorlokher <lokher@gmail.com>2022-12-06 17:04:10 +0800
committerlokher <lokher@gmail.com>2022-12-06 17:04:10 +0800
commit27fc28fd2ff52e079a5bc58d6aaea4c752420615 (patch)
tree7ac943fb1ba4f430a7220efd18f66f6a77205c30 /keyboards/40percentclub/gherkin/keymaps/midi
parente736133392fe6427cfb995da0787337189828272 (diff)
parent2709b6ed616f8012ff4cfd3ee69a822a8d188351 (diff)
Merge upstream master
Diffstat (limited to 'keyboards/40percentclub/gherkin/keymaps/midi')
-rw-r--r--keyboards/40percentclub/gherkin/keymaps/midi/keymap.c115
1 files changed, 115 insertions, 0 deletions
diff --git a/keyboards/40percentclub/gherkin/keymaps/midi/keymap.c b/keyboards/40percentclub/gherkin/keymaps/midi/keymap.c
new file mode 100644
index 0000000000..b1ded193fe
--- /dev/null
+++ b/keyboards/40percentclub/gherkin/keymaps/midi/keymap.c
@@ -0,0 +1,115 @@
+#include QMK_KEYBOARD_H
+
+enum layer_number {
+ _IONIAN = 0,
+ _DORIAN,
+ _PHRYGIAN,
+ _LYDIAN,
+ _MIXOLYDIAN,
+ _AEOLIAN,
+ _LOCRIAN,
+ _MENU
+};
+
+enum custom_keycodes {
+ IONIAN = SAFE_RANGE,
+ DORIAN,
+ PHRYGIAN,
+ LYDIAN,
+ MIXOLYDIAN,
+ AEOLIAN,
+ LOCRIAN,
+};
+
+#define MENU MO(_MENU)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_IONIAN] = LAYOUT_ortho_3x10(
+ MI_C1, MI_F1, MI_B1, MI_E2, MI_A2, MI_D3, MI_G3, MI_C4, MI_OCTD, MI_OCTU,
+ MI_D1, MI_G1, MI_C2, MI_F2, MI_B2, MI_E3, MI_A3, MI_D4, MI_TRSD, MI_TRSU,
+ MI_E1, MI_A1, MI_D2, MI_G2, MI_C3, MI_F3, MI_B3, MI_E4, MI_SUST, MENU
+ ),
+
+ [_DORIAN] = LAYOUT_ortho_3x10(
+ MI_C1, MI_F1, MI_As1, MI_Ds2, MI_A2, MI_D3, MI_G3, MI_C4, _______, _______,
+ MI_D1, MI_G1, MI_C2, MI_F2, MI_As2, MI_Ds3, MI_A3, MI_D4, _______, _______,
+ MI_Ds1, MI_A1, MI_D2, MI_G2, MI_C3, MI_F3, MI_As3, MI_Ds4, _______, _______
+ ),
+
+ [_PHRYGIAN] = LAYOUT_ortho_3x10(
+ MI_C1, MI_F1, MI_As1, MI_Ds2, MI_Gs2, MI_Cs3, MI_G3, MI_C4, _______, _______,
+ MI_Cs1, MI_G1, MI_C2, MI_F2, MI_As2, MI_Ds3, MI_Gs3, MI_Cs4, _______, _______,
+ MI_Ds1, MI_Gs1, MI_Cs2, MI_G2, MI_C3, MI_F3, MI_As3, MI_Ds4, _______, _______
+ ),
+
+ [_LYDIAN] = LAYOUT_ortho_3x10(
+ MI_C1, MI_Fs1, MI_B1, MI_E2, MI_A2, MI_D3, MI_G3, MI_C4, _______, _______,
+ MI_D1, MI_G1, MI_C2, MI_Fs2, MI_B2, MI_E3, MI_A3, MI_D4, _______, _______,
+ MI_E1, MI_A1, MI_D2, MI_G2, MI_C3, MI_Fs3, MI_B3, MI_E4, _______, _______
+ ),
+
+ [_MIXOLYDIAN] = LAYOUT_ortho_3x10(
+ MI_C1, MI_F1, MI_As1, MI_E2, MI_A2, MI_D3, MI_G3, MI_C4, _______, _______,
+ MI_D1, MI_G1, MI_C2, MI_F2, MI_As2, MI_E3, MI_A3, MI_D4, _______, _______,
+ MI_E1, MI_A1, MI_D2, MI_G2, MI_C3, MI_F3, MI_As3, MI_E4, _______, _______
+ ),
+
+ [_AEOLIAN] = LAYOUT_ortho_3x10(
+ MI_C1, MI_F1, MI_As1, MI_Ds2, MI_Gs2, MI_D3, MI_G3, MI_C4, _______, _______,
+ MI_D1, MI_G1, MI_C2, MI_F2, MI_As2, MI_Ds3, MI_Gs3, MI_D4, _______, _______,
+ MI_Ds1, MI_Gs1, MI_D2, MI_G2, MI_C3, MI_F3, MI_As3, MI_Ds4, _______, _______
+ ),
+
+ [_LOCRIAN] = LAYOUT_ortho_3x10(
+ MI_C1, MI_F1, MI_As1, MI_Ds2, MI_Gs2, MI_Cs3, MI_Fs3, MI_C4, _______, _______,
+ MI_Cs1, MI_Fs1, MI_C2, MI_F2, MI_As2, MI_Ds3, MI_Gs3, MI_Cs4, _______, _______,
+ MI_Ds1, MI_Gs1, MI_Cs2, MI_Fs2, MI_C3, MI_F3, MI_As3, MI_Ds4, _______, _______
+ ),
+
+ [_MENU] = LAYOUT_ortho_3x10(
+ IONIAN, LYDIAN, LOCRIAN, _______, _______, _______, _______, _______, _______, _______,
+ DORIAN, MIXOLYDIAN, _______, _______, _______, _______, _______, _______, _______, _______,
+ PHRYGIAN, AEOLIAN, _______, _______, _______, _______, _______, _______, QK_BOOT, _______
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case IONIAN:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_IONIAN);
+ }
+ break;
+ case DORIAN:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DORIAN);
+ }
+ break;
+ case PHRYGIAN:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_PHRYGIAN);
+ }
+ break;
+ case LYDIAN:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_LYDIAN);
+ }
+ break;
+ case MIXOLYDIAN:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_MIXOLYDIAN);
+ }
+ break;
+ case AEOLIAN:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_AEOLIAN);
+ }
+ break;
+ case LOCRIAN:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_LOCRIAN);
+ }
+ break;
+ }
+ return true;
+}