diff options
Diffstat (limited to 'keyboard/atomic/keymaps/pvc/keymap.c')
| -rw-r--r-- | keyboard/atomic/keymaps/pvc/keymap.c | 373 |
1 files changed, 189 insertions, 184 deletions
diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index c2081f525..aaef6b041 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | #ifdef AUDIO_ENABLE | 4 | #ifdef AUDIO_ENABLE |
| 5 | #include "audio.h" | 5 | #include "audio.h" |
| 6 | #include "musical_notes.h" | 6 | #include "song_list.h" |
| 7 | #endif | 7 | #endif |
| 8 | 8 | ||
| 9 | 9 | ||
| @@ -17,6 +17,13 @@ | |||
| 17 | #define M_LW 1 | 17 | #define M_LW 1 |
| 18 | #define M_RS 2 | 18 | #define M_RS 2 |
| 19 | #define M_FN 3 | 19 | #define M_FN 3 |
| 20 | #define M_T1 4 | ||
| 21 | #define M_T2 5 | ||
| 22 | #define M_T3 6 | ||
| 23 | #define M_T4 7 | ||
| 24 | #define M_TU 8 | ||
| 25 | #define M_TD 9 | ||
| 26 | #define M_DF 10 | ||
| 20 | 27 | ||
| 21 | 28 | ||
| 22 | #define _______ KC_TRNS | 29 | #define _______ KC_TRNS |
| @@ -63,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 63 | { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, | 70 | { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, |
| 64 | { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, | 71 | { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, |
| 65 | { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, | 72 | { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, |
| 66 | { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, | 73 | { _______, M(M_T1), M(M_T2), M(M_T3), M(M_T4), M(M_TU), M(M_TD), M(M_DF), _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, |
| 67 | { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, | 74 | { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, |
| 68 | }, | 75 | }, |
| 69 | [_AD] = { /* ADJUST */ | 76 | [_AD] = { /* ADJUST */ |
| @@ -76,139 +83,124 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 76 | }; | 83 | }; |
| 77 | 84 | ||
| 78 | 85 | ||
| 86 | |||
| 79 | #ifdef AUDIO_ENABLE | 87 | #ifdef AUDIO_ENABLE |
| 80 | 88 | ||
| 89 | float start_up[][2] = SONG(ODE_TO_JOY); | ||
| 81 | 90 | ||
| 91 | float tone_lw[][2] = { | ||
| 82 | 92 | ||
| 93 | Q__NOTE(_C4 ) , | ||
| 94 | Q__NOTE(_CS4 ) , | ||
| 95 | Q__NOTE(_D4 ) , | ||
| 96 | Q__NOTE(_DS4 ) , | ||
| 97 | Q__NOTE(_E4 ) , | ||
| 98 | Q__NOTE(_F4 ) , | ||
| 99 | Q__NOTE(_FS4 ) , | ||
| 100 | Q__NOTE(_G4 ) , | ||
| 101 | Q__NOTE(_GS4 ) , | ||
| 102 | Q__NOTE(_A4 ) , | ||
| 103 | Q__NOTE(_AS4 ) , | ||
| 83 | 104 | ||
| 84 | float tone_lw[][2] = { | 105 | Q__NOTE(_B1 ) , |
| 85 | /* | ||
| 86 | Q_NOTE(_C1 ) , | ||
| 87 | Q_NOTE(_CS1 ) , | ||
| 88 | Q_NOTE(_D1 ) , | ||
| 89 | Q_NOTE(_DS1 ) , | ||
| 90 | Q_NOTE(_E1 ) , | ||
| 91 | Q_NOTE(_F1 ) , | ||
| 92 | Q_NOTE(_FS1 ) , | ||
| 93 | Q_NOTE(_G1 ) , | ||
| 94 | Q_NOTE(_GS1 ) , | ||
| 95 | Q_NOTE(_A1 ) , | ||
| 96 | Q_NOTE(_AS1 ) , | ||
| 97 | Q_NOTE(_B1 ) , | ||
| 98 | */ | ||
| 99 | |||
| 100 | Q_NOTE(_C4 ) , | ||
| 101 | Q_NOTE(_CS4 ) , | ||
| 102 | Q_NOTE(_D4 ) , | ||
| 103 | Q_NOTE(_DS4 ) , | ||
| 104 | Q_NOTE(_E4 ) , | ||
| 105 | Q_NOTE(_F4 ) , | ||
| 106 | Q_NOTE(_FS4 ) , | ||
| 107 | Q_NOTE(_G4 ) , | ||
| 108 | Q_NOTE(_GS4 ) , | ||
| 109 | Q_NOTE(_A4 ) , | ||
| 110 | Q_NOTE(_AS4 ) , | ||
| 111 | Q_NOTE(_B1 ) , | ||
| 112 | |||
| 113 | |||
| 114 | Q_NOTE(_C2 ) , | ||
| 115 | Q_NOTE(_CS2 ) , | ||
| 116 | Q_NOTE(_D2 ) , | ||
| 117 | Q_NOTE(_DS2 ) , | ||
| 118 | Q_NOTE(_E2 ) , | ||
| 119 | Q_NOTE(_F2 ) , | ||
| 120 | Q_NOTE(_FS2 ) , | ||
| 121 | Q_NOTE(_G2 ) , | ||
| 122 | Q_NOTE(_GS2 ) , | ||
| 123 | Q_NOTE(_A2 ) , | ||
| 124 | Q_NOTE(_AS2 ) , | ||
| 125 | Q_NOTE(_B2 ) , | ||
| 126 | Q_NOTE(_C3 ) , | ||
| 127 | Q_NOTE(_CS3 ) , | ||
| 128 | Q_NOTE(_D3 ) , | ||
| 129 | Q_NOTE(_DS3 ) , | ||
| 130 | Q_NOTE(_E3 ) , | ||
| 131 | Q_NOTE(_F3 ) , | ||
| 132 | Q_NOTE(_FS3 ) , | ||
| 133 | Q_NOTE(_G3 ) , | ||
| 134 | Q_NOTE(_GS3 ) , | ||
| 135 | Q_NOTE(_A3 ) , | ||
| 136 | Q_NOTE(_AS3 ) , | ||
| 137 | Q_NOTE(_B3 ) , | ||
| 138 | Q_NOTE(_C4 ) , | ||
| 139 | Q_NOTE(_CS4 ) , | ||
| 140 | Q_NOTE(_D4 ) , | ||
| 141 | Q_NOTE(_DS4 ) , | ||
| 142 | Q_NOTE(_E4 ) , | ||
| 143 | Q_NOTE(_F4 ) , | ||
| 144 | Q_NOTE(_FS4 ) , | ||
| 145 | Q_NOTE(_G4 ) , | ||
| 146 | Q_NOTE(_GS4 ) , | ||
| 147 | Q_NOTE(_A4 ) , | ||
| 148 | Q_NOTE(_AS4 ) , | ||
| 149 | Q_NOTE(_B4 ) , | ||
| 150 | Q_NOTE(_C5 ) , | ||
| 151 | Q_NOTE(_CS5 ) , | ||
| 152 | Q_NOTE(_D5 ) , | ||
| 153 | Q_NOTE(_DS5 ) , | ||
| 154 | Q_NOTE(_E5 ) , | ||
| 155 | Q_NOTE(_F5 ) , | ||
| 156 | Q_NOTE(_FS5 ) , | ||
| 157 | Q_NOTE(_G5 ) , | ||
| 158 | Q_NOTE(_GS5 ) , | ||
| 159 | Q_NOTE(_A5 ) , | ||
| 160 | Q_NOTE(_AS5 ) , | ||
| 161 | Q_NOTE(_B5 ) , | ||
| 162 | Q_NOTE(_C6 ) , | ||
| 163 | Q_NOTE(_CS6 ) , | ||
| 164 | Q_NOTE(_D6 ) , | ||
| 165 | Q_NOTE(_DS6 ) , | ||
| 166 | Q_NOTE(_E6 ) , | ||
| 167 | Q_NOTE(_F6 ) , | ||
| 168 | Q_NOTE(_FS6 ) , | ||
| 169 | Q_NOTE(_G6 ) , | ||
| 170 | Q_NOTE(_GS6 ) , | ||
| 171 | Q_NOTE(_A6 ) , | ||
| 172 | Q_NOTE(_AS6 ) , | ||
| 173 | Q_NOTE(_B6 ) , | ||
| 174 | Q_NOTE(_C7 ) , | ||
| 175 | Q_NOTE(_CS7 ) , | ||
| 176 | Q_NOTE(_D7 ) , | ||
| 177 | Q_NOTE(_DS7 ) , | ||
| 178 | Q_NOTE(_E7 ) , | ||
| 179 | Q_NOTE(_F7 ) , | ||
| 180 | Q_NOTE(_FS7 ) , | ||
| 181 | Q_NOTE(_G7 ) , | ||
| 182 | Q_NOTE(_GS7 ) , | ||
| 183 | Q_NOTE(_A7 ) , | ||
| 184 | Q_NOTE(_AS7 ) , | ||
| 185 | Q_NOTE(_B7 ) , | ||
| 186 | Q_NOTE(_C8 ) , | ||
| 187 | Q_NOTE(_CS8 ) , | ||
| 188 | Q_NOTE(_D8 ) , | ||
| 189 | Q_NOTE(_DS8 ) , | ||
| 190 | Q_NOTE(_E8 ) , | ||
| 191 | Q_NOTE(_F8 ) , | ||
| 192 | Q_NOTE(_FS8 ) , | ||
| 193 | Q_NOTE(_G8 ) , | ||
| 194 | Q_NOTE(_GS8 ) , | ||
| 195 | Q_NOTE(_A8 ) , | ||
| 196 | Q_NOTE(_AS8 ) , | ||
| 197 | Q_NOTE(_B8 ) , | ||
| 198 | 106 | ||
| 107 | Q__NOTE(_C2 ) , | ||
| 108 | Q__NOTE(_CS2 ) , | ||
| 109 | Q__NOTE(_D2 ) , | ||
| 110 | Q__NOTE(_DS2 ) , | ||
| 111 | Q__NOTE(_E2 ) , | ||
| 112 | Q__NOTE(_F2 ) , | ||
| 113 | Q__NOTE(_FS2 ) , | ||
| 114 | Q__NOTE(_G2 ) , | ||
| 115 | Q__NOTE(_GS2 ) , | ||
| 116 | Q__NOTE(_A2 ) , | ||
| 117 | Q__NOTE(_AS2 ) , | ||
| 118 | Q__NOTE(_B2 ) , | ||
| 119 | Q__NOTE(_C3 ) , | ||
| 120 | Q__NOTE(_CS3 ) , | ||
| 121 | Q__NOTE(_D3 ) , | ||
| 122 | Q__NOTE(_DS3 ) , | ||
| 123 | Q__NOTE(_E3 ) , | ||
| 124 | Q__NOTE(_F3 ) , | ||
| 125 | Q__NOTE(_FS3 ) , | ||
| 126 | Q__NOTE(_G3 ) , | ||
| 127 | Q__NOTE(_GS3 ) , | ||
| 128 | Q__NOTE(_A3 ) , | ||
| 129 | Q__NOTE(_AS3 ) , | ||
| 130 | Q__NOTE(_B3 ) , | ||
| 131 | Q__NOTE(_C4 ) , | ||
| 132 | Q__NOTE(_CS4 ) , | ||
| 133 | Q__NOTE(_D4 ) , | ||
| 134 | Q__NOTE(_DS4 ) , | ||
| 135 | Q__NOTE(_E4 ) , | ||
| 136 | Q__NOTE(_F4 ) , | ||
| 137 | Q__NOTE(_FS4 ) , | ||
| 138 | Q__NOTE(_G4 ) , | ||
| 139 | Q__NOTE(_GS4 ) , | ||
| 140 | Q__NOTE(_A4 ) , | ||
| 141 | Q__NOTE(_AS4 ) , | ||
| 142 | Q__NOTE(_B4 ) , | ||
| 143 | Q__NOTE(_C5 ) , | ||
| 144 | Q__NOTE(_CS5 ) , | ||
| 145 | Q__NOTE(_D5 ) , | ||
| 146 | Q__NOTE(_DS5 ) , | ||
| 147 | Q__NOTE(_E5 ) , | ||
| 148 | Q__NOTE(_F5 ) , | ||
| 149 | Q__NOTE(_FS5 ) , | ||
| 150 | Q__NOTE(_G5 ) , | ||
| 151 | Q__NOTE(_GS5 ) , | ||
| 152 | Q__NOTE(_A5 ) , | ||
| 153 | Q__NOTE(_AS5 ) , | ||
| 154 | Q__NOTE(_B5 ) , | ||
| 155 | Q__NOTE(_C6 ) , | ||
| 156 | Q__NOTE(_CS6 ) , | ||
| 157 | Q__NOTE(_D6 ) , | ||
| 158 | Q__NOTE(_DS6 ) , | ||
| 159 | Q__NOTE(_E6 ) , | ||
| 160 | Q__NOTE(_F6 ) , | ||
| 161 | Q__NOTE(_FS6 ) , | ||
| 162 | Q__NOTE(_G6 ) , | ||
| 163 | Q__NOTE(_GS6 ) , | ||
| 164 | Q__NOTE(_A6 ) , | ||
| 165 | Q__NOTE(_AS6 ) , | ||
| 166 | Q__NOTE(_B6 ) , | ||
| 167 | Q__NOTE(_C7 ) , | ||
| 168 | Q__NOTE(_CS7 ) , | ||
| 169 | Q__NOTE(_D7 ) , | ||
| 170 | Q__NOTE(_DS7 ) , | ||
| 171 | Q__NOTE(_E7 ) , | ||
| 172 | Q__NOTE(_F7 ) , | ||
| 173 | Q__NOTE(_FS7 ) , | ||
| 174 | Q__NOTE(_G7 ) , | ||
| 175 | Q__NOTE(_GS7 ) , | ||
| 176 | Q__NOTE(_A7 ) , | ||
| 177 | Q__NOTE(_AS7 ) , | ||
| 178 | Q__NOTE(_B7 ) , | ||
| 179 | Q__NOTE(_C8 ) , | ||
| 180 | Q__NOTE(_CS8 ) , | ||
| 181 | Q__NOTE(_D8 ) , | ||
| 182 | Q__NOTE(_DS8 ) , | ||
| 183 | Q__NOTE(_E8 ) , | ||
| 184 | Q__NOTE(_F8 ) , | ||
| 185 | Q__NOTE(_FS8 ) , | ||
| 186 | Q__NOTE(_G8 ) , | ||
| 187 | Q__NOTE(_GS8 ) , | ||
| 188 | Q__NOTE(_A8 ) , | ||
| 189 | Q__NOTE(_AS8 ) , | ||
| 190 | Q__NOTE(_B8 ) , | ||
| 199 | }; | 191 | }; |
| 200 | 192 | ||
| 201 | float tone_rs[][2] = { | 193 | float tone_rs[][2] = SONG(ROCK_A_BYE_BABY); |
| 202 | Q_NOTE(_A4 ) , | 194 | |
| 203 | Q_NOTE(_A4 ) , | 195 | void matrix_init_user(void) { |
| 204 | Q_NOTE(_A4 ) , | 196 | init_notes(); |
| 205 | Q_NOTE(_A4 ) , | 197 | PLAY_NOTE_ARRAY(start_up, false, STACCATO); |
| 206 | Q_NOTE(_AS8 ) , | 198 | println("Matrix Init"); |
| 207 | Q_NOTE(_B8 ) , | 199 | } |
| 208 | }; | ||
| 209 | 200 | ||
| 210 | #endif | 201 | #endif |
| 211 | 202 | ||
| 203 | |||
| 212 | void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) | 204 | void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) |
| 213 | { | 205 | { |
| 214 | if (order) | 206 | if (order) |
| @@ -241,69 +233,82 @@ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t l | |||
| 241 | const uint16_t PROGMEM fn_actions[] = { | 233 | const uint16_t PROGMEM fn_actions[] = { |
| 242 | }; | 234 | }; |
| 243 | 235 | ||
| 244 | //#define MUSIC_ARRAY_SIZE(x) (((int)(sizeof(x) / (sizeof(x[0][0])))) / 2) | ||
| 245 | 236 | ||
| 246 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | 237 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) |
| 247 | { | 238 | { |
| 248 | 239 | ||
| 249 | // MACRODOWN only works in this function | 240 | // MACRODOWN only works in this function |
| 250 | switch(id) { | 241 | switch(id) |
| 251 | case M_LW: | 242 | { |
| 252 | if (record->event.pressed) { | 243 | case M_LW: |
| 253 | #ifdef AUDIO_ENABLE | 244 | if (record->event.pressed) { |
| 254 | println("PlayNotes LW"); | 245 | #ifdef AUDIO_ENABLE |
| 255 | PLAY_NOTE_ARRAY(tone_lw, false, STACCATO); | 246 | PLAY_NOTE_ARRAY(tone_lw, false, STACCATO); |
| 256 | #endif | 247 | #endif |
| 257 | layer_on(_LW); | 248 | layer_on(_LW); |
| 258 | update_tri_layer(_LW, _RS, _FN); | 249 | update_tri_layer(_LW, _RS, _AD); |
| 259 | } else { | 250 | } else { |
| 260 | layer_off(_LW); | 251 | layer_off(_LW); |
| 261 | update_tri_layer(_LW, _RS, _FN); | 252 | update_tri_layer(_LW, _RS, _AD); |
| 262 | } | 253 | } |
| 263 | break; | 254 | break; |
| 264 | case M_RS: | 255 | case M_RS: |
| 265 | if (record->event.pressed) { | 256 | if (record->event.pressed) { |
| 266 | #ifdef AUDIO_ENABLE | 257 | #ifdef AUDIO_ENABLE |
| 267 | println("PlayNotes RS"); | 258 | PLAY_NOTE_ARRAY(tone_rs, false, LEGATO); |
| 268 | PLAY_NOTE_ARRAY(tone_rs, false, LEGATO); | 259 | #endif |
| 269 | #endif | 260 | layer_on(_RS); |
| 270 | layer_on(_RS); | 261 | update_tri_layer(_LW, _RS, _AD); |
| 271 | update_tri_layer(_LW, _RS, _FN); | 262 | } else { |
| 272 | } else { | 263 | layer_off(_RS); |
| 273 | layer_off(_RS); | 264 | update_tri_layer(_LW, _RS, _AD); |
| 274 | update_tri_layer(_LW, _RS, _FN); | 265 | } |
| 275 | } | 266 | break; |
| 276 | break; | ||
| 277 | default: | ||
| 278 | break; | ||
| 279 | } | ||
| 280 | return MACRO_NONE; | ||
| 281 | }; | ||
| 282 | 267 | ||
| 283 | #ifdef AUDIO_ENABLE | 268 | case M_FN: |
| 284 | float start_up[][2] = { | 269 | if (record->event.pressed) { |
| 285 | Q_NOTE(_E4 ) , | 270 | layer_on(_FN); |
| 286 | Q_NOTE(_E4 ) , | 271 | } else { |
| 287 | Q_NOTE(_F4 ) , | 272 | layer_off(_FN); |
| 288 | Q_NOTE(_G4 ) , | 273 | } |
| 289 | Q_NOTE(_G4 ) , | 274 | break; |
| 290 | Q_NOTE(_F4 ) , | ||
| 291 | Q_NOTE(_E4 ) , | ||
| 292 | Q_NOTE(_D4 ) , | ||
| 293 | Q_NOTE(_C4 ) , | ||
| 294 | Q_NOTE(_C4 ) , | ||
| 295 | Q_NOTE(_D4 ) , | ||
| 296 | Q_NOTE(_E4 ) , | ||
| 297 | H_NOTE(_E4 ) , | ||
| 298 | Q_NOTE(_D4 ) , | ||
| 299 | H_NOTE(_D4 ) , | ||
| 300 | }; | ||
| 301 | #endif | ||
| 302 | 275 | ||
| 303 | void matrix_init_user(void) { | 276 | case M_T1: |
| 304 | #ifdef AUDIO_ENABLE | 277 | if (record->event.pressed) set_timbre(TIMBRE_12); |
| 305 | init_notes(); | 278 | break; |
| 306 | PLAY_NOTE_ARRAY(start_up, false, STACCATO); | 279 | |
| 307 | println("Matrix Init"); | 280 | case M_T2: |
| 308 | #endif | 281 | if (record->event.pressed) set_timbre(TIMBRE_25); |
| 309 | } | 282 | break; |
| 283 | |||
| 284 | case M_T3: | ||
| 285 | if (record->event.pressed) set_timbre(TIMBRE_50); | ||
| 286 | break; | ||
| 287 | |||
| 288 | case M_T4: | ||
| 289 | if (record->event.pressed) set_timbre(TIMBRE_75); | ||
| 290 | break; | ||
| 291 | |||
| 292 | |||
| 293 | case M_TU: | ||
| 294 | if (record->event.pressed) increase_tempo(10); | ||
| 295 | break; | ||
| 296 | |||
| 297 | case M_TD: | ||
| 298 | if (record->event.pressed) decrease_tempo(10); | ||
| 299 | break; | ||
| 300 | |||
| 301 | case M_DF: | ||
| 302 | if (record->event.pressed) | ||
| 303 | { | ||
| 304 | set_timbre(TIMBRE_DEFAULT); | ||
| 305 | set_tempo(TEMPO_DEFAULT); | ||
| 306 | } | ||
| 307 | break; | ||
| 308 | |||
| 309 | default: | ||
| 310 | break; | ||
| 311 | |||
| 312 | } | ||
| 313 | return MACRO_NONE; | ||
| 314 | }; \ No newline at end of file | ||
