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;
|
||||
}
|
||||
|
||||
#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.
|
||||
*/
|
||||
#define LAYOUT( \
|
||||
enc, sustain, ccw, cw, \
|
||||
enc, sustain, \
|
||||
up, \
|
||||
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 \
|
||||
) { \
|
||||
{ enc, down, left, right, up, k01, k02, sustain }, \
|
||||
{ k03, k04, k05, k06, k07, k08, k09, ccw }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, cw }, \
|
||||
{ k03, k04, k05, k06, k07, k08, k09, KC_NO }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, KC_NO }, \
|
||||
{ k17, k18, k19, k20, k21, k22, k23, KC_NO }, \
|
||||
{ k24, k25, k26, k27, k28, k29, k30, 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_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"
|
||||
|
||||
/* 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.
|
||||
*/
|
||||
@ -171,63 +150,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# endif // CONSOLE_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 */
|
||||
#ifdef AUDIO_ENABLE
|
||||
# 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
|
||||
#endif // MIDI_ENABLE
|
||||
|
||||
/*
|
||||
* Encoder options
|
||||
*/
|
||||
#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
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
|
||||
/* 2021/01/22 added to shrink firmware size */
|
||||
// NO_ACTION_TAPPING -1964 bytes, however, this disables Layer mods...
|
||||
|
@ -3,6 +3,26 @@
|
||||
"manufacturer": "3araht",
|
||||
"url": "https://github.com/3araht/chromatonemini",
|
||||
"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": {
|
||||
"vid": "0xFEED",
|
||||
"pid": "0xF4B4",
|
||||
@ -13,8 +33,6 @@
|
||||
"layout": [
|
||||
{"label":"enc", "x":0.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":"left", "x":0, "y":2.5},
|
||||
{"label":"right", "x":1, "y":2.5},
|
||||
@ -57,5 +75,10 @@
|
||||
{"label":"k34", "x":19, "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] = {
|
||||
/* Base */
|
||||
[_BASE] = LAYOUT(
|
||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
||||
FN_MUTE, MI_SUS,
|
||||
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
|
||||
@ -47,20 +47,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* RESERVE */
|
||||
[_RESERVE] = LAYOUT(
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT(
|
||||
_______, XXXXXXX, 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
|
||||
)
|
||||
};
|
||||
|
||||
#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().
|
||||
void my_init(void){
|
||||
// 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] = {
|
||||
/* Base */
|
||||
[_BASE] = LAYOUT(
|
||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
||||
FN_MUTE, MI_SUS,
|
||||
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,
|
||||
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) */
|
||||
[_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,
|
||||
_______, 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) */
|
||||
[_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,
|
||||
_______, 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) */
|
||||
[_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,
|
||||
_______, 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] = LAYOUT(
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______,
|
||||
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. */
|
||||
[_FLIPBASE] = LAYOUT(
|
||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
||||
FN_MUTE, MI_SUS,
|
||||
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,
|
||||
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. */
|
||||
[_FLIPTRANS] = LAYOUT(
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______,
|
||||
MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT(
|
||||
_______, XXXXXXX, RGB_RMOD, RGB_MOD,
|
||||
_______, XXXXXXX,
|
||||
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_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().
|
||||
void my_init(void){
|
||||
// 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_CUSTOM_KB = yes #
|
||||
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] = {
|
||||
/* Base */
|
||||
[_BASE] = LAYOUT(
|
||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
||||
FN_MUTE, MI_SUS,
|
||||
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,
|
||||
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) */
|
||||
[_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,
|
||||
_______, 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) */
|
||||
[_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,
|
||||
_______, 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) */
|
||||
[_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,
|
||||
_______, 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] = LAYOUT(
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______,
|
||||
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. */
|
||||
[_FLIPBASE] = LAYOUT(
|
||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
||||
FN_MUTE, MI_SUS,
|
||||
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,
|
||||
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. */
|
||||
[_FLIPTRANS] = LAYOUT(
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______,
|
||||
MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT(
|
||||
_______, XXXXXXX, RGB_RMOD, RGB_MOD,
|
||||
_______, XXXXXXX,
|
||||
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_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().
|
||||
void my_init(void){
|
||||
// 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_CUSTOM_KB = yes #
|
||||
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] = {
|
||||
/* Base */
|
||||
[_BASE] = LAYOUT(
|
||||
FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU,
|
||||
FN_MUTE, MI_SUS,
|
||||
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,
|
||||
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] = LAYOUT(
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______,
|
||||
MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
@ -77,20 +77,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* RESERVE */
|
||||
[_RESERVE] = LAYOUT(
|
||||
_______, _______, _______, _______,
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT(
|
||||
_______, XXXXXXX, RGB_RMOD, RGB_MOD,
|
||||
_______, XXXXXXX,
|
||||
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_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().
|
||||
void my_init(void){
|
||||
// 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_CUSTOM_KB = 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](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).
|
||||
|
||||
|
@ -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 #
|
||||
LTO_ENABLE = yes
|
||||
|
Loading…
Reference in New Issue
Block a user