mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-25 18:06:34 +06:00
Rotary encoder setting is revised to solve a malfunction. (#18227)
* Rotary encoder setting is revised to solve a mulfunction. UNUSED_PINS deleted. * Encoder map applied. * ENCODER_MAP_ENABLE moved to keymap level. * Settings in rules.mk moved to info.json. * picture sent to imgur. config.h streamlined.
This commit is contained in:
parent
e1e86cb1fb
commit
10005e9f39
|
@ -154,55 +154,3 @@ uint8_t shift_led_indicator_right(uint8_t scale_indicator_col){
|
||||||
}
|
}
|
||||||
return scale_indicator_col;
|
return scale_indicator_col;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ENCODER_ENABLE
|
|
||||||
# ifdef ENCODERS
|
|
||||||
static uint8_t encoder_state[ENCODERS] = {0};
|
|
||||||
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
|
|
||||||
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
|
|
||||||
# endif
|
|
||||||
|
|
||||||
void encoder_action_unregister(void) {
|
|
||||||
# ifdef ENCODERS
|
|
||||||
for (int index = 0; index < ENCODERS; ++index) {
|
|
||||||
if (encoder_state[index]) {
|
|
||||||
keyevent_t encoder_event = (keyevent_t) {
|
|
||||||
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
|
|
||||||
.pressed = false,
|
|
||||||
.time = (timer_read() | 1)
|
|
||||||
};
|
|
||||||
encoder_state[index] = 0;
|
|
||||||
action_exec(encoder_event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void encoder_action_register(uint8_t index, bool clockwise) {
|
|
||||||
# ifdef ENCODERS
|
|
||||||
keyevent_t encoder_event = (keyevent_t) {
|
|
||||||
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
|
|
||||||
.pressed = true,
|
|
||||||
.time = (timer_read() | 1)
|
|
||||||
};
|
|
||||||
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
|
|
||||||
# ifdef CONSOLE_ENABLE
|
|
||||||
uprintf("encoder_action_register index = %u, clockwise = %u, row = %u, col = %u\n", index, clockwise, encoder_event.key.row, encoder_event.key.col);
|
|
||||||
# endif
|
|
||||||
action_exec(encoder_event);
|
|
||||||
# endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void matrix_scan_kb(void) {
|
|
||||||
encoder_action_unregister();
|
|
||||||
matrix_scan_user();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
|
||||||
encoder_action_register(index, clockwise);
|
|
||||||
// don't return user actions, because they are in the keymap
|
|
||||||
// encoder_update_user(index, clockwise);
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -27,14 +27,14 @@
|
||||||
* represents the switch matrix.
|
* represents the switch matrix.
|
||||||
*/
|
*/
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
enc, sustain, ccw, cw, \
|
enc, sustain, \
|
||||||
up, \
|
up, \
|
||||||
left, right, k01, k03, k05, k07, k09, k11, k13, k15, k17, k19, k21, k23, k25, k27, k29, k31, k33, k35, k37, \
|
left, right, k01, k03, k05, k07, k09, k11, k13, k15, k17, k19, k21, k23, k25, k27, k29, k31, k33, k35, k37, \
|
||||||
down, k02, k04, k06, k08, k10, k12, k14, k16, k18, k20, k22, k24, k26, k28, k30, k32, k34, k36 \
|
down, k02, k04, k06, k08, k10, k12, k14, k16, k18, k20, k22, k24, k26, k28, k30, k32, k34, k36 \
|
||||||
) { \
|
) { \
|
||||||
{ enc, down, left, right, up, k01, k02, sustain }, \
|
{ enc, down, left, right, up, k01, k02, sustain }, \
|
||||||
{ k03, k04, k05, k06, k07, k08, k09, ccw }, \
|
{ k03, k04, k05, k06, k07, k08, k09, KC_NO }, \
|
||||||
{ k10, k11, k12, k13, k14, k15, k16, cw }, \
|
{ k10, k11, k12, k13, k14, k15, k16, KC_NO }, \
|
||||||
{ k17, k18, k19, k20, k21, k22, k23, KC_NO }, \
|
{ k17, k18, k19, k20, k21, k22, k23, KC_NO }, \
|
||||||
{ k24, k25, k26, k27, k28, k29, k30, KC_NO }, \
|
{ k24, k25, k26, k27, k28, k29, k30, KC_NO }, \
|
||||||
{ k31, k32, k33, k34, k35, k36, k37, KC_NO } \
|
{ k31, k32, k33, k34, k35, k36, k37, KC_NO } \
|
||||||
|
@ -117,6 +117,3 @@ extern MidiDevice midi_device;
|
||||||
uint8_t shift_led_indicator_left(uint8_t scale_indicator_col);
|
uint8_t shift_led_indicator_left(uint8_t scale_indicator_col);
|
||||||
uint8_t shift_led_indicator_right(uint8_t scale_indicator_col);
|
uint8_t shift_led_indicator_right(uint8_t scale_indicator_col);
|
||||||
|
|
||||||
void encoder_action_unregister(void);
|
|
||||||
|
|
||||||
void encoder_action_register(uint8_t index, bool clockwise);
|
|
||||||
|
|
|
@ -19,27 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* key matrix size */
|
|
||||||
#define MATRIX_ROWS 6
|
|
||||||
#define MATRIX_COLS 8
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Keyboard Matrix Assignments
|
|
||||||
*
|
|
||||||
* Change this to how you wired your keyboard
|
|
||||||
* COLS: AVR pins used for columns, left to right
|
|
||||||
* ROWS: AVR pins used for rows, top to bottom
|
|
||||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
|
||||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#define MATRIX_ROW_PINS { E6, D7, C6, D4, D0, D1 }
|
|
||||||
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 }
|
|
||||||
#define UNUSED_PINS
|
|
||||||
|
|
||||||
/* COL2ROW, ROW2COL */
|
|
||||||
#define DIODE_DIRECTION COL2ROW
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||||
*/
|
*/
|
||||||
|
@ -171,63 +150,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
# endif // CONSOLE_ENABLE
|
# endif // CONSOLE_ENABLE
|
||||||
#endif // RGB_MATRIX_ENABLE
|
#endif // RGB_MATRIX_ENABLE
|
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
|
||||||
#define DEBOUNCE 5
|
|
||||||
|
|
||||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
|
||||||
//#define MATRIX_HAS_GHOST
|
|
||||||
|
|
||||||
// /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
|
||||||
// #define LOCKING_SUPPORT_ENABLE
|
|
||||||
// /* Locking resynchronize hack */
|
|
||||||
// #define LOCKING_RESYNC_ENABLE
|
|
||||||
|
|
||||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
|
||||||
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
|
|
||||||
*/
|
|
||||||
//#define GRAVE_ESC_CTRL_OVERRIDE
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Force NKRO
|
|
||||||
*
|
|
||||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
|
||||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
|
||||||
* makefile for this to work.)
|
|
||||||
*
|
|
||||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
|
||||||
* until the next keyboard reset.
|
|
||||||
*
|
|
||||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
|
||||||
* fully operational during normal computer usage.
|
|
||||||
*
|
|
||||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
|
||||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
|
||||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
|
||||||
* power-up.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
//#define FORCE_NKRO
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Feature disable options
|
|
||||||
* These options are also useful to firmware size reduction.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* disable debug print */
|
|
||||||
//#define NO_DEBUG
|
|
||||||
|
|
||||||
/* disable print */
|
|
||||||
//#define NO_PRINT
|
|
||||||
|
|
||||||
/* disable action features */
|
|
||||||
//#define NO_ACTION_LAYER
|
|
||||||
//#define NO_ACTION_TAPPING
|
|
||||||
//#define NO_ACTION_ONESHOT
|
|
||||||
|
|
||||||
/* Bootmagic Lite key configuration */
|
|
||||||
//#define BOOTMAGIC_LITE_ROW 0
|
|
||||||
//#define BOOTMAGIC_LITE_COLUMN 0
|
|
||||||
|
|
||||||
/* Audio */
|
/* Audio */
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
# define AUDIO_PIN B6 // use PB6 = PIN10 as Audio output
|
# define AUDIO_PIN B6 // use PB6 = PIN10 as Audio output
|
||||||
|
@ -262,19 +184,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
# define MIDI_INITIAL_VELOCITY 117
|
# define MIDI_INITIAL_VELOCITY 117
|
||||||
#endif // MIDI_ENABLE
|
#endif // MIDI_ENABLE
|
||||||
|
|
||||||
/*
|
/* disable action features */
|
||||||
* Encoder options
|
//#define NO_ACTION_LAYER
|
||||||
*/
|
//#define NO_ACTION_TAPPING
|
||||||
#ifdef ENCODER_ENABLE
|
|
||||||
# define ENCODERS_PAD_A { B5 }
|
|
||||||
# define ENCODERS_PAD_B { B4 }
|
|
||||||
# define ENCODER_RESOLUTION 4
|
|
||||||
# define TAP_CODE_DELAY 10
|
|
||||||
|
|
||||||
#define ENCODERS 1
|
|
||||||
#define ENCODERS_CW_KEY { {7, 2} }
|
|
||||||
#define ENCODERS_CCW_KEY { {7, 1} }
|
|
||||||
#endif // ENCODER_ENABLE
|
|
||||||
|
|
||||||
/* 2021/01/22 added to shrink firmware size */
|
/* 2021/01/22 added to shrink firmware size */
|
||||||
// NO_ACTION_TAPPING -1964 bytes, however, this disables Layer mods...
|
// NO_ACTION_TAPPING -1964 bytes, however, this disables Layer mods...
|
||||||
|
|
|
@ -3,6 +3,26 @@
|
||||||
"manufacturer": "3araht",
|
"manufacturer": "3araht",
|
||||||
"url": "https://github.com/3araht/chromatonemini",
|
"url": "https://github.com/3araht/chromatonemini",
|
||||||
"maintainer": "3araht",
|
"maintainer": "3araht",
|
||||||
|
"bootloader": "caterina",
|
||||||
|
"processor": "atmega32u4",
|
||||||
|
"features": {
|
||||||
|
"midi": true,
|
||||||
|
"extrakey": true,
|
||||||
|
"encoder": true,
|
||||||
|
"via": true,
|
||||||
|
"bootmagic": false,
|
||||||
|
"console": false,
|
||||||
|
"mousekey": false,
|
||||||
|
"nkro": false,
|
||||||
|
"rgblight": false,
|
||||||
|
"audio": false
|
||||||
|
},
|
||||||
|
"diode_direction": "COL2ROW",
|
||||||
|
"matrix_pins": {
|
||||||
|
"cols": [ "F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6" ],
|
||||||
|
"rows": [ "E6", "D7", "C6", "D4", "D0", "D1" ]
|
||||||
|
},
|
||||||
|
"debounce": 5,
|
||||||
"usb": {
|
"usb": {
|
||||||
"vid": "0xFEED",
|
"vid": "0xFEED",
|
||||||
"pid": "0xF4B4",
|
"pid": "0xF4B4",
|
||||||
|
@ -13,8 +33,6 @@
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"enc", "x":0.5, "y":0},
|
{"label":"enc", "x":0.5, "y":0},
|
||||||
{"label":"sustain", "x":1.5, "y":0},
|
{"label":"sustain", "x":1.5, "y":0},
|
||||||
{"label":"ccw", "x":2.5, "y":0},
|
|
||||||
{"label":"cw", "x":3.5, "y":0},
|
|
||||||
{"label":"up", "x":0.5, "y":1.5},
|
{"label":"up", "x":0.5, "y":1.5},
|
||||||
{"label":"left", "x":0, "y":2.5},
|
{"label":"left", "x":0, "y":2.5},
|
||||||
{"label":"right", "x":1, "y":2.5},
|
{"label":"right", "x":1, "y":2.5},
|
||||||
|
@ -57,5 +75,10 @@
|
||||||
{"label":"k34", "x":19, "y":3.5},
|
{"label":"k34", "x":19, "y":3.5},
|
||||||
{"label":"k36", "x":20, "y":3.5}]
|
{"label":"k36", "x":20, "y":3.5}]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"encoder": {
|
||||||
|
"rotary": [
|
||||||
|
{ "pin_a": "B5", "pin_b": "B4", "resolution": 4 }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ extern midi_config_t midi_config;
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Base */
|
/* Base */
|
||||||
[_BASE] = LAYOUT(
|
[_BASE] = LAYOUT(
|
||||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
FN_MUTE, MI_SUS,
|
||||||
MI_BENDU,
|
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_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
|
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
|
||||||
|
@ -47,20 +47,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* RESERVE */
|
/* RESERVE */
|
||||||
[_RESERVE] = LAYOUT(
|
[_RESERVE] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN] = LAYOUT(
|
[_FN] = LAYOUT(
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX,
|
_______, XXXXXXX,
|
||||||
MI_VELU,
|
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_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
|
MI_VELD, L_RESERVE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, XXXXXXX, XXXXXXX
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(ENCODER_MAP_ENABLE)
|
||||||
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||||
|
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||||
|
[_RESERVE] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_FN] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
|
// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
|
||||||
void my_init(void){
|
void my_init(void){
|
||||||
// Set octave to MI_OCT_1
|
// Set octave to MI_OCT_1
|
||||||
|
|
1
keyboards/chromatonemini/keymaps/default/rules.mk
Normal file
1
keyboards/chromatonemini/keymaps/default/rules.mk
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
|
|
@ -215,7 +215,7 @@ static uint8_t key_separator_col = _KEY01; // (_KEY01 .. _KEY37). By defau
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Base */
|
/* Base */
|
||||||
[_BASE] = LAYOUT(
|
[_BASE] = LAYOUT(
|
||||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
FN_MUTE, MI_SUS,
|
||||||
MI_BENDU,
|
MI_BENDU,
|
||||||
SHIFT_L, SHIFT_R, 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,
|
SHIFT_L, SHIFT_R, 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
|
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
|
||||||
|
@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* 1 octave on the left side is ch2, others are ch1 (normal) */
|
/* 1 octave on the left side is ch2, others are ch1 (normal) */
|
||||||
[_SEPALEFTOCT] = LAYOUT(
|
[_SEPALEFTOCT] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_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,
|
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_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,
|
||||||
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_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
|
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_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
|
||||||
|
@ -231,7 +231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Half ch2, half ch1 (normal) */
|
/* Half ch2, half ch1 (normal) */
|
||||||
[_SEPAHALF] = LAYOUT(
|
[_SEPAHALF] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_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,
|
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_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,
|
||||||
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_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
|
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_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
|
||||||
|
@ -239,7 +239,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* 2 octave on the left side is ch2, others are ch1 (normal) */
|
/* 2 octave on the left side is ch2, others are ch1 (normal) */
|
||||||
[_SEPARIGHTOCT] = LAYOUT(
|
[_SEPARIGHTOCT] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
|
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
|
||||||
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, YM_G_3, YM_A_3, YM_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4
|
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, YM_G_3, YM_A_3, YM_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4
|
||||||
|
@ -247,7 +247,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* TRANS This layer must locate 1 layer below _FN layer. */
|
/* TRANS This layer must locate 1 layer below _FN layer. */
|
||||||
[_TRANS] = LAYOUT(
|
[_TRANS] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
@ -255,7 +255,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Flip Base SFIFTUP and SHIFT_L are swapped. */
|
/* Flip Base SFIFTUP and SHIFT_L are swapped. */
|
||||||
[_FLIPBASE] = LAYOUT(
|
[_FLIPBASE] = LAYOUT(
|
||||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
FN_MUTE, MI_SUS,
|
||||||
MI_BENDU,
|
MI_BENDU,
|
||||||
SHIFT_L, SHIFT_R, MI_C_5, MI_Bb_4, MI_Ab_4, MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3, MI_Bb_2, MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2,
|
SHIFT_L, SHIFT_R, MI_C_5, MI_Bb_4, MI_Ab_4, MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3, MI_Bb_2, MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2,
|
||||||
MI_BENDD, MI_B_4, MI_A_4, MI_G_4, MI_F_4, MI_Eb_4, MI_Db_4, MI_B_3, MI_A_3, MI_G_3, MI_F_3, MI_Eb_3, MI_Db_3, MI_B_2, MI_A_2, MI_G_2, MI_F_2, MI_Eb_2, MI_Db_2
|
MI_BENDD, MI_B_4, MI_A_4, MI_G_4, MI_F_4, MI_Eb_4, MI_Db_4, MI_B_3, MI_A_3, MI_G_3, MI_F_3, MI_Eb_3, MI_Db_3, MI_B_2, MI_A_2, MI_G_2, MI_F_2, MI_Eb_2, MI_Db_2
|
||||||
|
@ -263,20 +263,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Flip Trans This layer must locate 1 layer above _FLIPBASE layer. MI_TRNSU and MI_TRNSD are swapped. */
|
/* Flip Trans This layer must locate 1 layer above _FLIPBASE layer. MI_TRNSU and MI_TRNSD are swapped. */
|
||||||
[_FLIPTRANS] = LAYOUT(
|
[_FLIPTRANS] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN] = LAYOUT(
|
[_FN] = LAYOUT(
|
||||||
_______, XXXXXXX, RGB_RMOD, RGB_MOD,
|
_______, XXXXXXX,
|
||||||
MI_VELU,
|
MI_VELU,
|
||||||
MI_OCTD, MI_OCTU, B_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, B_LEFT, XXXXXXX, XXXXXXX, B_CENTER, XXXXXXX, XXXXXXX, B_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, B_FLIP,
|
MI_OCTD, MI_OCTU, B_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, B_LEFT, XXXXXXX, XXXXXXX, B_CENTER, XXXXXXX, XXXXXXX, B_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, B_FLIP,
|
||||||
MI_VELD, TGLINTR, TGLTRNS, TGLCHGR, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG
|
MI_VELD, TGLINTR, TGLTRNS, TGLCHGR, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(ENCODER_MAP_ENABLE)
|
||||||
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||||
|
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||||
|
[_SEPALEFTOCT] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_SEPAHALF] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_SEPARIGHTOCT] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_TRANS] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_FLIPBASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||||
|
[_FLIPTRANS] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
|
// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
|
||||||
void my_init(void){
|
void my_init(void){
|
||||||
// Set octave to MI_OCT_1
|
// Set octave to MI_OCT_1
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
|
RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
|
||||||
RGB_MATRIX_CUSTOM_KB = yes #
|
RGB_MATRIX_CUSTOM_KB = yes #
|
||||||
VIA_ENABLE = no # too many layers to use VIA...
|
VIA_ENABLE = no # too many layers to use VIA...
|
||||||
|
|
||||||
|
ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
|
||||||
|
|
|
@ -215,7 +215,7 @@ static uint8_t key_separator_col = _KEY01; // (_KEY01 .. _KEY37). By defau
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Base */
|
/* Base */
|
||||||
[_BASE] = LAYOUT(
|
[_BASE] = LAYOUT(
|
||||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
FN_MUTE, MI_SUS,
|
||||||
MI_BENDU,
|
MI_BENDU,
|
||||||
SHIFT_L, SHIFT_R, 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,
|
SHIFT_L, SHIFT_R, 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
|
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
|
||||||
|
@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* 1 octave on the left side is ch2, others are ch1 (normal) */
|
/* 1 octave on the left side is ch2, others are ch1 (normal) */
|
||||||
[_SEPALEFTOCT] = LAYOUT(
|
[_SEPALEFTOCT] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_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,
|
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_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,
|
||||||
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_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
|
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_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
|
||||||
|
@ -231,7 +231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Half ch2, half ch1 (normal) */
|
/* Half ch2, half ch1 (normal) */
|
||||||
[_SEPAHALF] = LAYOUT(
|
[_SEPAHALF] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_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,
|
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_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,
|
||||||
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_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
|
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_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
|
||||||
|
@ -239,7 +239,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* 2 octave on the left side is ch2, others are ch1 (normal) */
|
/* 2 octave on the left side is ch2, others are ch1 (normal) */
|
||||||
[_SEPARIGHTOCT] = LAYOUT(
|
[_SEPARIGHTOCT] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
|
SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5,
|
||||||
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, YM_G_3, YM_A_3, YM_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4
|
_______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, YM_G_3, YM_A_3, YM_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4
|
||||||
|
@ -247,7 +247,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* TRANS This layer must locate 1 layer below _FN layer. */
|
/* TRANS This layer must locate 1 layer below _FN layer. */
|
||||||
[_TRANS] = LAYOUT(
|
[_TRANS] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
@ -255,7 +255,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Flip Base SFIFTUP and SHIFT_L are swapped. */
|
/* Flip Base SFIFTUP and SHIFT_L are swapped. */
|
||||||
[_FLIPBASE] = LAYOUT(
|
[_FLIPBASE] = LAYOUT(
|
||||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
FN_MUTE, MI_SUS,
|
||||||
MI_BENDU,
|
MI_BENDU,
|
||||||
SHIFT_L, SHIFT_R, MI_C_5, MI_Bb_4, MI_Ab_4, MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3, MI_Bb_2, MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2,
|
SHIFT_L, SHIFT_R, MI_C_5, MI_Bb_4, MI_Ab_4, MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3, MI_Bb_2, MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2,
|
||||||
MI_BENDD, MI_B_4, MI_A_4, MI_G_4, MI_F_4, MI_Eb_4, MI_Db_4, MI_B_3, MI_A_3, MI_G_3, MI_F_3, MI_Eb_3, MI_Db_3, MI_B_2, MI_A_2, MI_G_2, MI_F_2, MI_Eb_2, MI_Db_2
|
MI_BENDD, MI_B_4, MI_A_4, MI_G_4, MI_F_4, MI_Eb_4, MI_Db_4, MI_B_3, MI_A_3, MI_G_3, MI_F_3, MI_Eb_3, MI_Db_3, MI_B_2, MI_A_2, MI_G_2, MI_F_2, MI_Eb_2, MI_Db_2
|
||||||
|
@ -263,20 +263,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Flip Trans This layer must locate 1 layer above _FLIPBASE layer. MI_TRNSU and MI_TRNSD are swapped. */
|
/* Flip Trans This layer must locate 1 layer above _FLIPBASE layer. MI_TRNSU and MI_TRNSD are swapped. */
|
||||||
[_FLIPTRANS] = LAYOUT(
|
[_FLIPTRANS] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN] = LAYOUT(
|
[_FN] = LAYOUT(
|
||||||
_______, XXXXXXX, RGB_RMOD, RGB_MOD,
|
_______, XXXXXXX,
|
||||||
MI_VELU,
|
MI_VELU,
|
||||||
MI_OCTD, MI_OCTU, B_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, B_LEFT, XXXXXXX, XXXXXXX, B_CENTER, XXXXXXX, XXXXXXX, B_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, B_FLIP,
|
MI_OCTD, MI_OCTU, B_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, B_LEFT, XXXXXXX, XXXXXXX, B_CENTER, XXXXXXX, XXXXXXX, B_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, B_FLIP,
|
||||||
MI_VELD, TGLINTR, TGLTRNS, TGLCHGR, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG
|
MI_VELD, TGLINTR, TGLTRNS, TGLCHGR, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(ENCODER_MAP_ENABLE)
|
||||||
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||||
|
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||||
|
[_SEPALEFTOCT] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_SEPAHALF] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_SEPARIGHTOCT] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_TRANS] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_FLIPBASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||||
|
[_FLIPTRANS] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
|
// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
|
||||||
void my_init(void){
|
void my_init(void){
|
||||||
// Set octave to MI_OCT_1
|
// Set octave to MI_OCT_1
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
|
RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
|
||||||
RGB_MATRIX_CUSTOM_KB = yes #
|
RGB_MATRIX_CUSTOM_KB = yes #
|
||||||
VIA_ENABLE = no # too many layers to use VIA...
|
VIA_ENABLE = no # too many layers to use VIA...
|
||||||
|
|
||||||
|
ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// How many layers to use with VIA / Remap.
|
|
||||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 4 // default:4
|
|
|
@ -61,7 +61,7 @@ static bool is_trans_mode = false; // By default, shift mode is chosen.
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Base */
|
/* Base */
|
||||||
[_BASE] = LAYOUT(
|
[_BASE] = LAYOUT(
|
||||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
FN_MUTE, MI_SUS,
|
||||||
MI_BENDU,
|
MI_BENDU,
|
||||||
SHIFT_L, SHIFT_R, 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,
|
SHIFT_L, SHIFT_R, 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
|
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
|
||||||
|
@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* TRANS This layer must locate 1 layer below _FN layer. */
|
/* TRANS This layer must locate 1 layer below _FN layer. */
|
||||||
[_TRANS] = LAYOUT(
|
[_TRANS] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
@ -77,20 +77,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* RESERVE */
|
/* RESERVE */
|
||||||
[_RESERVE] = LAYOUT(
|
[_RESERVE] = LAYOUT(
|
||||||
_______, _______, _______, _______,
|
_______, _______,
|
||||||
_______,
|
_______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FN] = LAYOUT(
|
[_FN] = LAYOUT(
|
||||||
_______, XXXXXXX, RGB_RMOD, RGB_MOD,
|
_______, XXXXXXX,
|
||||||
MI_VELU,
|
MI_VELU,
|
||||||
MI_OCTD, MI_OCTU, B_BASE, DF(_RESERVE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, XXXXXXX,
|
MI_OCTD, MI_OCTU, B_BASE, DF(_RESERVE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, XXXXXXX,
|
||||||
MI_VELD, TGLINTR, TGLTRNS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG
|
MI_VELD, TGLINTR, TGLTRNS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(ENCODER_MAP_ENABLE)
|
||||||
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||||
|
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||||
|
[_TRANS] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_RESERVE] = { ENCODER_CCW_CW(_______, _______) },
|
||||||
|
[_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
|
// commom codes called from eeconfig_init_user() and keyboard_post_init_user().
|
||||||
void my_init(void){
|
void my_init(void){
|
||||||
// Set octave to MI_OCT_1
|
// Set octave to MI_OCT_1
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
|
RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
|
||||||
RGB_MATRIX_CUSTOM_KB = yes #
|
RGB_MATRIX_CUSTOM_KB = yes #
|
||||||
VIA_ENABLE = yes
|
VIA_ENABLE = yes
|
||||||
|
|
||||||
|
ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# chromatonemini
|
# chromatonemini
|
||||||
|
|
||||||
![chromatonemini](https://github.com/3araht/chromatonemini/blob/main/pictures/chromatonemini_toppage.jpg)
|
![chromatonemini](https://i.imgur.com/SuXzf9Dh.jpg)
|
||||||
|
|
||||||
chromatonemini keyboard is a simple-design Chromatone mini MIDI keyboard that covers 3 octaves (37 notes).
|
chromatonemini keyboard is a simple-design Chromatone mini MIDI keyboard that covers 3 octaves (37 notes).
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,2 @@
|
||||||
# MCU name
|
|
||||||
MCU = atmega32u4
|
|
||||||
|
|
||||||
# Bootloader selection
|
|
||||||
BOOTLOADER = caterina
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# change yes to no to disable
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys
|
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
|
||||||
AUDIO_ENABLE = no # Audio output
|
|
||||||
MIDI_ENABLE = yes # MIDI support
|
|
||||||
ENCODER_ENABLE = yes # encoder on mute button
|
|
||||||
RGB_MATRIX_DRIVER = WS2812 #
|
RGB_MATRIX_DRIVER = WS2812 #
|
||||||
LTO_ENABLE = yes
|
LTO_ENABLE = yes
|
||||||
|
|
Loading…
Reference in New Issue
Block a user