diff options
| -rw-r--r-- | keyboard/planck/Makefile | 4 | ||||
| -rw-r--r-- | keyboard/planck/keymaps/default/keymap.c | 183 | ||||
| -rw-r--r-- | quantum/audio.c | 5 | ||||
| -rw-r--r-- | quantum/keymap_common.c | 8 |
4 files changed, 130 insertions, 70 deletions
diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 83b8303b0..01d9e3ce9 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile | |||
| @@ -139,10 +139,10 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 | |||
| 139 | # change to "no" to disable the options, or define them in the makefile.mk in | 139 | # change to "no" to disable the options, or define them in the makefile.mk in |
| 140 | # the appropriate keymap folder that will get included automatically | 140 | # the appropriate keymap folder that will get included automatically |
| 141 | # | 141 | # |
| 142 | BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) | 142 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) |
| 143 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | 143 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) |
| 144 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | 144 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) |
| 145 | CONSOLE_ENABLE = yes # Console for debug(+400) | 145 | CONSOLE_ENABLE = no # Console for debug(+400) |
| 146 | COMMAND_ENABLE = yes # Commands for debug and configuration | 146 | COMMAND_ENABLE = yes # Commands for debug and configuration |
| 147 | NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | 147 | NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work |
| 148 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | 148 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality |
diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 207af2a1d..aecddec4a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c | |||
| @@ -11,24 +11,27 @@ | |||
| 11 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | 11 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. |
| 12 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | 12 | // Layer names don't all need to be of the same length, obviously, and you can also skip them |
| 13 | // entirely and just use numbers. | 13 | // entirely and just use numbers. |
| 14 | #define _QW 0 | 14 | #define _QWERTY 0 |
| 15 | #define _CM 1 | 15 | #define _COLEMAK 1 |
| 16 | #define _DV 2 | 16 | #define _DVORAK 2 |
| 17 | #define _LW 3 | 17 | #define _LOWER 3 |
| 18 | #define _RS 4 | 18 | #define _RAISE 4 |
| 19 | #define _AD 5 | 19 | #define _ADJUST 5 |
| 20 | #define _MUSIC 6 | ||
| 20 | 21 | ||
| 21 | // Macro name shortcuts | 22 | // Macro name shortcuts |
| 22 | #define QWERTY M(_QW) | 23 | #define QWERTY M(_QWERTY) |
| 23 | #define COLEMAK M(_CM) | 24 | #define COLEMAK M(_COLEMAK) |
| 24 | #define DVORAK M(_DV) | 25 | #define DVORAK M(_DVORAK) |
| 25 | #define LOWER M(_LW) | 26 | #define LOWER M(_LOWER) |
| 26 | #define RAISE M(_RS) | 27 | #define RAISE M(_RAISE) |
| 27 | #define M_BL 5 | 28 | #define M_BL 5 |
| 28 | #ifdef AUDIO_ENABLE | 29 | #ifdef AUDIO_ENABLE |
| 29 | #define AUD_OFF M(6) | 30 | #define AUD_OFF M(6) |
| 30 | #define AUD_ON M(7) | 31 | #define AUD_ON M(7) |
| 31 | #endif | 32 | #endif |
| 33 | #define MUS_OFF M(8) | ||
| 34 | #define MUS_ON M(9) | ||
| 32 | 35 | ||
| 33 | // Fillers to make layering more clear | 36 | // Fillers to make layering more clear |
| 34 | #define _______ KC_TRNS | 37 | #define _______ KC_TRNS |
| @@ -47,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 47 | * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | 50 | * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
| 48 | * `-----------------------------------------------------------------------------------' | 51 | * `-----------------------------------------------------------------------------------' |
| 49 | */ | 52 | */ |
| 50 | [_QW] = { | 53 | [_QWERTY] = { |
| 51 | {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | 54 | {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, |
| 52 | {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | 55 | {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, |
| 53 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, | 56 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, |
| @@ -65,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 65 | * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | 68 | * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
| 66 | * `-----------------------------------------------------------------------------------' | 69 | * `-----------------------------------------------------------------------------------' |
| 67 | */ | 70 | */ |
| 68 | [_CM] = { | 71 | [_COLEMAK] = { |
| 69 | {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, | 72 | {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, |
| 70 | {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, | 73 | {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, |
| 71 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, | 74 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, |
| @@ -83,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 83 | * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | 86 | * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
| 84 | * `-----------------------------------------------------------------------------------' | 87 | * `-----------------------------------------------------------------------------------' |
| 85 | */ | 88 | */ |
| 86 | [_DV] = { | 89 | [_DVORAK] = { |
| 87 | {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, | 90 | {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, |
| 88 | {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, | 91 | {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, |
| 89 | {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, | 92 | {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, |
| @@ -101,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 101 | * | | | | | | | | Next | Vol- | Vol+ | Play | | 104 | * | | | | | | | | Next | Vol- | Vol+ | Play | |
| 102 | * `-----------------------------------------------------------------------------------' | 105 | * `-----------------------------------------------------------------------------------' |
| 103 | */ | 106 | */ |
| 104 | [_LW] = { | 107 | [_LOWER] = { |
| 105 | {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, | 108 | {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, |
| 106 | {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, | 109 | {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, |
| 107 | {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, | 110 | {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, |
| @@ -119,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 119 | * | | | | | | | | Next | Vol- | Vol+ | Play | | 122 | * | | | | | | | | Next | Vol- | Vol+ | Play | |
| 120 | * `-----------------------------------------------------------------------------------' | 123 | * `-----------------------------------------------------------------------------------' |
| 121 | */ | 124 | */ |
| 122 | [_RS] = { | 125 | [_RAISE] = { |
| 123 | {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, | 126 | {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, |
| 124 | {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, | 127 | {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, |
| 125 | {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, | 128 | {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, |
| @@ -130,16 +133,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 130 | * ,-----------------------------------------------------------------------------------. | 133 | * ,-----------------------------------------------------------------------------------. |
| 131 | * | | Reset| | | | | | | | | | Del | | 134 | * | | Reset| | | | | | | | | | Del | |
| 132 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 135 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 133 | * | | | |Aud on|Audoff| | |Qwerty|Colemk|Dvorak| | | | 136 | * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | |
| 134 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 137 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 135 | * | | | | | | | | | | | | | | 138 | * | | | | | | | | | | | | | |
| 136 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 139 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 137 | * | | | | | | | | | | | | | 140 | * | | | | | | | | | | | | |
| 138 | * `-----------------------------------------------------------------------------------' | 141 | * `-----------------------------------------------------------------------------------' |
| 139 | */ | 142 | */ |
| 140 | [_AD] = { | 143 | [_ADJUST] = { |
| 141 | {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, | 144 | {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, |
| 142 | {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, | 145 | {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, |
| 146 | {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, | ||
| 147 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | ||
| 148 | }, | ||
| 149 | |||
| 150 | /* Music (reserved for process_action_user) | ||
| 151 | * | ||
| 152 | */ | ||
| 153 | [_MUSIC] = { | ||
| 154 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 155 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 143 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | 156 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, |
| 144 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | 157 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} |
| 145 | } | 158 | } |
| @@ -150,87 +163,102 @@ const uint16_t PROGMEM fn_actions[] = { | |||
| 150 | }; | 163 | }; |
| 151 | 164 | ||
| 152 | #ifdef AUDIO_ENABLE | 165 | #ifdef AUDIO_ENABLE |
| 153 | float start_up[][2] = { | 166 | float tone_startup[][2] = { |
| 154 | {440.0*pow(2.0,(67)/12.0), 12}, | 167 | {440.0*pow(2.0,(31)/12.0), 12}, |
| 155 | {440.0*pow(2.0,(64)/12.0), 8}, | 168 | {440.0*pow(2.0,(28)/12.0), 8}, |
| 156 | {440.0*pow(2.0,(55)/12.0), 8}, | 169 | {440.0*pow(2.0,(19)/12.0), 8}, |
| 157 | {440.0*pow(2.0,(60)/12.0), 8}, | 170 | {440.0*pow(2.0,(24)/12.0), 8}, |
| 158 | {440.0*pow(2.0,(64)/12.0), 20} | 171 | {440.0*pow(2.0,(28)/12.0), 20} |
| 159 | }; | 172 | }; |
| 160 | 173 | ||
| 161 | float tone_qw[][2] = { | 174 | float tone_qwerty[][2] = { |
| 162 | {440.0*pow(2.0,(59)/12.0), 8}, | 175 | {440.0*pow(2.0,(23)/12.0), 8}, |
| 163 | {440.0*pow(2.0,(60)/12.0), 8}, | 176 | {440.0*pow(2.0,(24)/12.0), 8}, |
| 164 | {0, 4}, | 177 | {0, 4}, |
| 165 | {440.0*pow(2.0,(67)/12.0), 16} | 178 | {440.0*pow(2.0,(31)/12.0), 16} |
| 166 | }; | 179 | }; |
| 167 | 180 | ||
| 168 | float tone_cm[][2] = { | 181 | float tone_colemak[][2] = { |
| 169 | {440.0*pow(2.0,(59)/12.0), 8}, | 182 | {440.0*pow(2.0,(23)/12.0), 8}, |
| 170 | {440.0*pow(2.0,(60)/12.0), 8}, | 183 | {440.0*pow(2.0,(24)/12.0), 8}, |
| 171 | {0, 4}, | 184 | {0, 4}, |
| 172 | {440.0*pow(2.0,(67)/12.0), 12}, | 185 | {440.0*pow(2.0,(31)/12.0), 12}, |
| 173 | {0, 4}, | 186 | {0, 4}, |
| 174 | {440.0*pow(2.0,(71)/12.0), 12} | 187 | {440.0*pow(2.0,(35)/12.0), 12} |
| 175 | }; | 188 | }; |
| 176 | 189 | ||
| 177 | float tone_dv[][2] = { | 190 | float tone_dvorak[][2] = { |
| 178 | {440.0*pow(2.0,(59)/12.0), 8}, | 191 | {440.0*pow(2.0,(23)/12.0), 8}, |
| 179 | {440.0*pow(2.0,(60)/12.0), 8}, | 192 | {440.0*pow(2.0,(24)/12.0), 8}, |
| 180 | {0, 4}, | 193 | {0, 4}, |
| 181 | {440.0*pow(2.0,(67)/12.0), 8}, | 194 | {440.0*pow(2.0,(31)/12.0), 8}, |
| 182 | {0, 4}, | 195 | {0, 4}, |
| 183 | {440.0*pow(2.0,(69)/12.0), 8}, | 196 | {440.0*pow(2.0,(33)/12.0), 8}, |
| 184 | {0, 4}, | 197 | {0, 4}, |
| 185 | {440.0*pow(2.0,(67)/12.0), 8} | 198 | {440.0*pow(2.0,(31)/12.0), 8} |
| 199 | }; | ||
| 200 | |||
| 201 | float tone_music[][2] = { | ||
| 202 | {440.0*pow(2.0,(12)/12.0), 8}, | ||
| 203 | {440.0*pow(2.0,(14)/12.0), 8}, | ||
| 204 | {440.0*pow(2.0,(16)/12.0), 8}, | ||
| 205 | {440.0*pow(2.0,(17)/12.0), 8}, | ||
| 206 | {440.0*pow(2.0,(19)/12.0), 8}, | ||
| 207 | {440.0*pow(2.0,(21)/12.0), 8}, | ||
| 208 | {440.0*pow(2.0,(23)/12.0), 8}, | ||
| 209 | {440.0*pow(2.0,(24)/12.0), 8} | ||
| 186 | }; | 210 | }; |
| 187 | #endif | 211 | #endif |
| 188 | 212 | ||
| 189 | 213 | ||
| 214 | void persistant_default_layer_set(uint16_t default_layer) { | ||
| 215 | eeconfig_write_default_layer(default_layer); | ||
| 216 | default_layer_set(default_layer); | ||
| 217 | } | ||
| 218 | |||
| 190 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | 219 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) |
| 191 | { | 220 | { |
| 192 | // MACRODOWN only works in this function | ||
| 193 | switch(id) { | 221 | switch(id) { |
| 194 | case _QW: | 222 | case _QWERTY: |
| 195 | if (record->event.pressed) { | 223 | if (record->event.pressed) { |
| 196 | #ifdef AUDIO_ENABLE | 224 | #ifdef AUDIO_ENABLE |
| 197 | PLAY_NOTE_ARRAY(tone_qw, false, 0); | 225 | PLAY_NOTE_ARRAY(tone_qwerty, false, 0); |
| 198 | #endif | 226 | #endif |
| 199 | default_layer_set(1UL<<_QW); | 227 | persistant_default_layer_set(1UL<<_QWERTY); |
| 200 | } | 228 | } |
| 201 | break; | 229 | break; |
| 202 | case _CM: | 230 | case _COLEMAK: |
| 203 | if (record->event.pressed) { | 231 | if (record->event.pressed) { |
| 204 | #ifdef AUDIO_ENABLE | 232 | #ifdef AUDIO_ENABLE |
| 205 | PLAY_NOTE_ARRAY(tone_cm, false, 0); | 233 | PLAY_NOTE_ARRAY(tone_colemak, false, 0); |
| 206 | #endif | 234 | #endif |
| 207 | default_layer_set(1UL<<_CM); | 235 | persistant_default_layer_set(1UL<<_COLEMAK); |
| 208 | } | 236 | } |
| 209 | break; | 237 | break; |
| 210 | case _DV: | 238 | case _DVORAK: |
| 211 | if (record->event.pressed) { | 239 | if (record->event.pressed) { |
| 212 | #ifdef AUDIO_ENABLE | 240 | #ifdef AUDIO_ENABLE |
| 213 | PLAY_NOTE_ARRAY(tone_dv, false, 0); | 241 | PLAY_NOTE_ARRAY(tone_dvorak, false, 0); |
| 214 | #endif | 242 | #endif |
| 215 | default_layer_set(1UL<<_DV); | 243 | persistant_default_layer_set(1UL<<_DVORAK); |
| 216 | } | 244 | } |
| 217 | break; | 245 | break; |
| 218 | case _LW: | 246 | case _LOWER: |
| 219 | if (record->event.pressed) { | 247 | if (record->event.pressed) { |
| 220 | layer_on(_LW); | 248 | layer_on(_LOWER); |
| 221 | update_tri_layer(_LW, _RS, _AD); | 249 | update_tri_layer(_LOWER, _RAISE, _ADJUST); |
| 222 | } else { | 250 | } else { |
| 223 | layer_off(_LW); | 251 | layer_off(_LOWER); |
| 224 | update_tri_layer(_LW, _RS, _AD); | 252 | update_tri_layer(_LOWER, _RAISE, _ADJUST); |
| 225 | } | 253 | } |
| 226 | break; | 254 | break; |
| 227 | case _RS: | 255 | case _RAISE: |
| 228 | if (record->event.pressed) { | 256 | if (record->event.pressed) { |
| 229 | layer_on(_RS); | 257 | layer_on(_RAISE); |
| 230 | update_tri_layer(_LW, _RS, _AD); | 258 | update_tri_layer(_LOWER, _RAISE, _ADJUST); |
| 231 | } else { | 259 | } else { |
| 232 | layer_off(_RS); | 260 | layer_off(_RAISE); |
| 233 | update_tri_layer(_LW, _RS, _AD); | 261 | update_tri_layer(_LOWER, _RAISE, _ADJUST); |
| 234 | } | 262 | } |
| 235 | break; | 263 | break; |
| 236 | case M_BL: | 264 | case M_BL: |
| @@ -254,7 +282,23 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 254 | if (record->event.pressed) { | 282 | if (record->event.pressed) { |
| 255 | #ifdef AUDIO_ENABLE | 283 | #ifdef AUDIO_ENABLE |
| 256 | audio_on(); | 284 | audio_on(); |
| 257 | PLAY_NOTE_ARRAY(start_up, false, 0); | 285 | PLAY_NOTE_ARRAY(tone_startup, false, 0); |
| 286 | #endif | ||
| 287 | } | ||
| 288 | break; | ||
| 289 | case 8: | ||
| 290 | if (record->event.pressed) { | ||
| 291 | #ifdef AUDIO_ENABLE | ||
| 292 | layer_off(_MUSIC); | ||
| 293 | stop_all_notes(); | ||
| 294 | #endif | ||
| 295 | } | ||
| 296 | break; | ||
| 297 | case 9: | ||
| 298 | if (record->event.pressed) { | ||
| 299 | #ifdef AUDIO_ENABLE | ||
| 300 | PLAY_NOTE_ARRAY(tone_music, false, 0); | ||
| 301 | layer_on(_MUSIC); | ||
| 258 | #endif | 302 | #endif |
| 259 | } | 303 | } |
| 260 | break; | 304 | break; |
| @@ -262,9 +306,24 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 262 | return MACRO_NONE; | 306 | return MACRO_NONE; |
| 263 | }; | 307 | }; |
| 264 | 308 | ||
| 309 | uint8_t starting_note = 0x0C; | ||
| 310 | int offset = 7; | ||
| 311 | |||
| 312 | void process_action_user(keyrecord_t *record) { | ||
| 313 | |||
| 314 | if (IS_LAYER_ON(_MUSIC)) { | ||
| 315 | if (record->event.pressed) { | ||
| 316 | play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); | ||
| 317 | } else { | ||
| 318 | stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); | ||
| 319 | } | ||
| 320 | } | ||
| 321 | |||
| 322 | } | ||
| 323 | |||
| 265 | void matrix_init_user(void) { | 324 | void matrix_init_user(void) { |
| 266 | #ifdef AUDIO_ENABLE | 325 | #ifdef AUDIO_ENABLE |
| 267 | init_notes(); | 326 | init_notes(); |
| 268 | PLAY_NOTE_ARRAY(start_up, false, 0); | 327 | PLAY_NOTE_ARRAY(tone_startup, false, 0); |
| 269 | #endif | 328 | #endif |
| 270 | } | 329 | } |
diff --git a/quantum/audio.c b/quantum/audio.c index 90f3c5a13..6bd6532a3 100644 --- a/quantum/audio.c +++ b/quantum/audio.c | |||
| @@ -350,7 +350,6 @@ if (audio_config.enable) { | |||
| 350 | 350 | ||
| 351 | if (note) | 351 | if (note) |
| 352 | stop_all_notes(); | 352 | stop_all_notes(); |
| 353 | notes = true; | ||
| 354 | 353 | ||
| 355 | notes_pointer = np; | 354 | notes_pointer = np; |
| 356 | notes_length = n_length; | 355 | notes_length = n_length; |
| @@ -375,6 +374,8 @@ if (audio_config.enable) { | |||
| 375 | TIMSK3 |= _BV(OCIE3A); | 374 | TIMSK3 |= _BV(OCIE3A); |
| 376 | TCCR3A |= _BV(COM3A1); | 375 | TCCR3A |= _BV(COM3A1); |
| 377 | #endif | 376 | #endif |
| 377 | |||
| 378 | notes = true; | ||
| 378 | } | 379 | } |
| 379 | 380 | ||
| 380 | } | 381 | } |
| @@ -404,7 +405,6 @@ if (audio_config.enable && voices < 8) { | |||
| 404 | 405 | ||
| 405 | if (notes) | 406 | if (notes) |
| 406 | stop_all_notes(); | 407 | stop_all_notes(); |
| 407 | note = true; | ||
| 408 | #ifdef PWM_AUDIO | 408 | #ifdef PWM_AUDIO |
| 409 | freq = freq / SAMPLE_RATE; | 409 | freq = freq / SAMPLE_RATE; |
| 410 | #endif | 410 | #endif |
| @@ -436,6 +436,7 @@ if (audio_config.enable && voices < 8) { | |||
| 436 | TCCR3A |= _BV(COM3A1); | 436 | TCCR3A |= _BV(COM3A1); |
| 437 | #endif | 437 | #endif |
| 438 | 438 | ||
| 439 | note = true; | ||
| 439 | } | 440 | } |
| 440 | 441 | ||
| 441 | } \ No newline at end of file | 442 | } \ No newline at end of file |
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 02d3c74be..d38e6fdb2 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c | |||
| @@ -33,14 +33,14 @@ extern keymap_config_t keymap_config; | |||
| 33 | #include <inttypes.h> | 33 | #include <inttypes.h> |
| 34 | #ifdef AUDIO_ENABLE | 34 | #ifdef AUDIO_ENABLE |
| 35 | #include "audio.h" | 35 | #include "audio.h" |
| 36 | #ifndef GOODBYE_TUNE | 36 | #ifndef TONE_GOODBYE |
| 37 | #define GOODBYE_TUNE { \ | 37 | #define TONE_GOODBYE { \ |
| 38 | {440.0*pow(2.0,(31)/12.0), 8}, \ | 38 | {440.0*pow(2.0,(31)/12.0), 8}, \ |
| 39 | {440.0*pow(2.0,(24)/12.0), 8}, \ | 39 | {440.0*pow(2.0,(24)/12.0), 8}, \ |
| 40 | {440.0*pow(2.0,(19)/12.0), 12}, \ | 40 | {440.0*pow(2.0,(19)/12.0), 12}, \ |
| 41 | } | 41 | } |
| 42 | #endif | 42 | #endif |
| 43 | float goodbye_tune[][2] = GOODBYE_TUNE; | 43 | float tone_goodbye[][2] = TONE_GOODBYE; |
| 44 | #endif | 44 | #endif |
| 45 | 45 | ||
| 46 | static action_t keycode_to_action(uint16_t keycode); | 46 | static action_t keycode_to_action(uint16_t keycode); |
| @@ -191,7 +191,7 @@ static action_t keycode_to_action(uint16_t keycode) | |||
| 191 | case RESET: ; // RESET is 0x5000, which is why this is here | 191 | case RESET: ; // RESET is 0x5000, which is why this is here |
| 192 | clear_keyboard(); | 192 | clear_keyboard(); |
| 193 | #ifdef AUDIO_ENABLE | 193 | #ifdef AUDIO_ENABLE |
| 194 | PLAY_NOTE_ARRAY(goodbye_tune, false, 0); | 194 | PLAY_NOTE_ARRAY(tone_goodbye, false, 0); |
| 195 | #endif | 195 | #endif |
| 196 | _delay_ms(250); | 196 | _delay_ms(250); |
| 197 | #ifdef ATREUS_ASTAR | 197 | #ifdef ATREUS_ASTAR |
