123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- #include QMK_KEYBOARD_H
- #include "xulkal.h"
- #include "muse.h"
- #define EXPAND_LAYOUT(...) LAYOUT_preonic_grid(__VA_ARGS__)
- // Define your non-alpha grouping in this define's LAYOUT, and all your BASE_LAYERS will share the same mod/macro columns
- const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Qwerty Layout
- * ,------------------------------------------------. ,------------------------------------------------.
- * | GESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * |FN(CAPS)| A | S | D | F | G | ` | | ' | H | J | K | L | ; | Enter|
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Sft[ | Z | X | C | V | B | RGB | |RGBRST| N | M | , | . | / | Sft] |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Ctrl | Win | LOWER| RAISE| Alt | Space|RGBRMOD| |RGBMOD| Space| Left | Up | Down | Right| Ctrl |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
- * | Space| DEL | | Enter| Space|
- * `-------------' `-------------'
- */
- [_QWERTY] = EXPAND_LAYOUT( \
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, \
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, \
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, \
- _________________QWERTY_L4_________________, _________________QWERTY_R4_________________, \
- _________________QWERTY_L5_________________, _________________QWERTY_R5_________________ \
- ),
- #ifndef GAMELAYER_DISABLE
- [_GAME] = EXPAND_LAYOUT( \
- ___________________GAME_L1_________________, ___________________GAME_R1_________________, \
- ___________________GAME_L2_________________, ___________________GAME_R2_________________, \
- ___________________GAME_L3_________________, ___________________GAME_R3_________________, \
- ___________________GAME_L4_________________, ___________________GAME_R4_________________, \
- ___________________GAME_L5_________________, ___________________GAME_R5_________________ \
- ),
- #endif
- [_LOWER] = EXPAND_LAYOUT( \
- __________________LOWER_L1_________________, __________________LOWER_R1_________________, \
- __________________LOWER_L2_________________, __________________LOWER_R2_________________, \
- __________________LOWER_L3_________________, __________________LOWER_R3_________________, \
- __________________LOWER_L4_________________, __________________LOWER_R4_________________, \
- __________________LOWER_L5_________________, __________________LOWER_R5_________________ \
- ),
- [_RAISE] = EXPAND_LAYOUT( \
- __________________RAISE_L1_________________, __________________RAISE_R1_________________, \
- __________________RAISE_L2_________________, __________________RAISE_R2_________________, \
- __________________RAISE_L3_________________, __________________RAISE_R3_________________, \
- __________________RAISE_L4_________________, __________________RAISE_R4_________________, \
- __________________RAISE_L5_________________, __________________RAISE_R5_________________ \
- ),
- #ifdef TRILAYER_ENABLED
- [_ADJUST] = EXPAND_LAYOUT( \
- _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, \
- _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, \
- _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, \
- _________________ADJUST_L4_________________, _________________ADJUST_R4_________________, \
- _________________ADJUST_L5_________________, _________________ADJUST_R5_________________ \
- ),
- #endif
- };
- bool muse_mode = false;
- uint8_t last_muse_note = 0;
- uint16_t muse_counter = 0;
- uint8_t muse_offset = 70;
- uint16_t muse_tempo = 50;
- bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- register_code(KC_PGDN);
- unregister_code(KC_PGDN);
- } else {
- register_code(KC_PGUP);
- unregister_code(KC_PGUP);
- }
- }
- return true;
- }
- bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- break;
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- #endif
- }
- }
- return true
- }
- void matrix_scan_user(void) {
- #ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- }
- #endif
- }
- bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
- }
|