summaryrefslogtreecommitdiff
path: root/keyboards/40percentclub/gherkin/keymaps/midi/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/40percentclub/gherkin/keymaps/midi/keymap.c')
-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..965652441a
--- /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_C_1, MI_F_1, MI_B_1, MI_E_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, MI_OCTD, MI_OCTU,
+ MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_B_2, MI_E_3, MI_A_3, MI_D_4, MI_TRNSD, MI_TRNSU,
+ MI_E_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_B_3, MI_E_4, MI_SUS, MENU
+ ),
+
+ [_DORIAN] = LAYOUT_ortho_3x10(
+ MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, _______, _______,
+ MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_A_3, MI_D_4, _______, _______,
+ MI_Ds_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______
+ ),
+
+ [_PHRYGIAN] = LAYOUT_ortho_3x10(
+ MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_Gs_2, MI_Cs_3, MI_G_3, MI_C_4, _______, _______,
+ MI_Cs_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_Gs_3, MI_Cs_4, _______, _______,
+ MI_Ds_1, MI_Gs_1, MI_Cs_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______
+ ),
+
+ [_LYDIAN] = LAYOUT_ortho_3x10(
+ MI_C_1, MI_Fs_1, MI_B_1, MI_E_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, _______, _______,
+ MI_D_1, MI_G_1, MI_C_2, MI_Fs_2, MI_B_2, MI_E_3, MI_A_3, MI_D_4, _______, _______,
+ MI_E_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_Fs_3, MI_B_3, MI_E_4, _______, _______
+ ),
+
+ [_MIXOLYDIAN] = LAYOUT_ortho_3x10(
+ MI_C_1, MI_F_1, MI_As_1, MI_E_2, MI_A_2, MI_D_3, MI_G_3, MI_C_4, _______, _______,
+ MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_E_3, MI_A_3, MI_D_4, _______, _______,
+ MI_E_1, MI_A_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_E_4, _______, _______
+ ),
+
+ [_AEOLIAN] = LAYOUT_ortho_3x10(
+ MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_Gs_2, MI_D_3, MI_G_3, MI_C_4, _______, _______,
+ MI_D_1, MI_G_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_Gs_3, MI_D_4, _______, _______,
+ MI_Ds_1, MI_Gs_1, MI_D_2, MI_G_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______
+ ),
+
+ [_LOCRIAN] = LAYOUT_ortho_3x10(
+ MI_C_1, MI_F_1, MI_As_1, MI_Ds_2, MI_Gs_2, MI_Cs_3, MI_Fs_3, MI_C_4, _______, _______,
+ MI_Cs_1, MI_Fs_1, MI_C_2, MI_F_2, MI_As_2, MI_Ds_3, MI_Gs_3, MI_Cs_4, _______, _______,
+ MI_Ds_1, MI_Gs_1, MI_Cs_2, MI_Fs_2, MI_C_3, MI_F_3, MI_As_3, MI_Ds_4, _______, _______
+ ),
+
+ [_MENU] = LAYOUT_ortho_3x10(
+ IONIAN, LYDIAN, LOCRIAN, _______, _______, _______, _______, _______, _______, _______,
+ DORIAN, MIXOLYDIAN, _______, _______, _______, _______, _______, _______, _______, _______,
+ PHRYGIAN, AEOLIAN, _______, _______, _______, _______, _______, _______, RESET, _______
+ )
+};
+
+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;
+}