From 1038ade342606f155b2ed0bee6542a24580fe6b9 Mon Sep 17 00:00:00 2001 From: 3araht <69518343+3araht@users.noreply.github.com> Date: Thu, 11 Aug 2022 10:38:32 +0900 Subject: [Keyboard] add chromatonemini keyboard (#13516) --- keyboards/chromatonemini/keymaps/default/keymap.c | 106 +++++++++++++++++++++ keyboards/chromatonemini/keymaps/default/readme.md | 1 + 2 files changed, 107 insertions(+) create mode 100644 keyboards/chromatonemini/keymaps/default/keymap.c create mode 100644 keyboards/chromatonemini/keymaps/default/readme.md (limited to 'keyboards/chromatonemini/keymaps/default') diff --git a/keyboards/chromatonemini/keymaps/default/keymap.c b/keyboards/chromatonemini/keymaps/default/keymap.c new file mode 100644 index 0000000000..102aba930a --- /dev/null +++ b/keyboards/chromatonemini/keymaps/default/keymap.c @@ -0,0 +1,106 @@ +/* Copyright 2021 3araht + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "version.h" + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _RESERVE, + _FN +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + L_BASE = SAFE_RANGE, + L_RESERVE, + VERSION +}; + +// Long press: go to _FN layer, tap: MUTE +#define FN_MUTE LT(_FN, KC_MUTE) + +// Used to set octave to MI_OCT_0 +extern midi_config_t midi_config; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + MI_BENDU, + MI_TRNSD, MI_TRNSU, MI_C_2, MI_D_2, MI_E_2, MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, + MI_BENDD, MI_Db_2, MI_Eb_2, MI_F_2, MI_G_2, MI_A_2, MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 + ), + + /* RESERVE */ + [_RESERVE] = LAYOUT( + _______, _______, _______, _______, + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, + MI_VELU, + MI_OCTD, MI_OCTU, L_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, XXXXXXX, + MI_VELD, L_RESERVE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, XXXXXXX, XXXXXXX + ) +}; + +// commom codes called from eeconfig_init_user() and keyboard_post_init_user(). +void my_init(void){ + // Set octave to MI_OCT_1 + midi_config.octave = MI_OCT_0 - MIDI_OCTAVE_MIN; + // avoid using 127 since it is used as a special number in some sound sources. + midi_config.velocity = MIDI_INITIAL_VELOCITY; + default_layer_set(1UL << _BASE); +} + +void eeconfig_init_user(void) { // EEPROM is getting reset! + midi_init(); + my_init(); // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). +} + +void keyboard_post_init_user(void) { + my_init(); // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). +}; + +void reset_scale_indicator(void) { + // reset transpose value and scale_indicator_col to default. + midi_config.transpose = 0; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case VERSION: // Output firmware info. + if (record->event.pressed) { + SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " @ " QMK_VERSION " | " QMK_BUILDDATE); + } + break; + + case L_BASE: + reset_scale_indicator(); + default_layer_set(1UL << _BASE); + break; + + case L_RESERVE: + reset_scale_indicator(); + default_layer_set(1UL << _RESERVE); + break; + } + return true; +} diff --git a/keyboards/chromatonemini/keymaps/default/readme.md b/keyboards/chromatonemini/keymaps/default/readme.md new file mode 100644 index 0000000000..4a18250f97 --- /dev/null +++ b/keyboards/chromatonemini/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for chromatonemini -- cgit v1.2.3