aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMazin Power <muzfuz@users.noreply.github.com>2019-02-01 20:44:57 +0000
committerDrashna Jaelre <drashna@live.com>2019-02-01 12:44:57 -0800
commit0bbf655d14af8749d4b2eb01776fc8c482f52748 (patch)
tree62bed26c7f4588755c041610e31e423fd1c6437a
parentd8e9a0f7a319e27c8dbb4e5a1131bc02b365da76 (diff)
downloadqmk_firmware-0bbf655d14af8749d4b2eb01776fc8c482f52748.tar.gz
qmk_firmware-0bbf655d14af8749d4b2eb01776fc8c482f52748.zip
[Keymap] Adds Preonic keymap for muzfuz. Small Planck addition. (#5019)
* Adds keymaps for muzfuz * Remove unused keys from adjust layer * Bring in line with current QMK standards. * Adds Preonic and adjusted Planck keymaps * Make changes per review request
-rw-r--r--keyboards/planck/keymaps/muzfuz/keymap.c24
-rw-r--r--keyboards/planck/keymaps/muzfuz/readme.md5
-rw-r--r--keyboards/preonic/keymaps/muzfuz/config.h37
-rw-r--r--keyboards/preonic/keymaps/muzfuz/keymap.c271
-rw-r--r--keyboards/preonic/keymaps/muzfuz/readme.md5
-rw-r--r--keyboards/preonic/keymaps/muzfuz/rules.mk1
6 files changed, 327 insertions, 16 deletions
diff --git a/keyboards/planck/keymaps/muzfuz/keymap.c b/keyboards/planck/keymaps/muzfuz/keymap.c
index 16994a576..84452a3f1 100644
--- a/keyboards/planck/keymaps/muzfuz/keymap.c
+++ b/keyboards/planck/keymaps/muzfuz/keymap.c
@@ -36,8 +36,8 @@ enum planck_keycodes
36 CLNEQLS 36 CLNEQLS
37}; 37};
38 38
39#define LOWER MO(_LOWER) 39#define RSE_ENT LT(_RAISE, KC_ENT)
40#define RAISE MO(_RAISE) 40#define LWR_SPC LT(_LOWER, KC_SPC)
41#define ESC_CTL CTL_T(KC_ESCAPE) 41#define ESC_CTL CTL_T(KC_ESCAPE)
42 42
43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -50,14 +50,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 * |------+------+------+------+------+------|------+------+------+------+------+------| 50 * |------+------+------+------+------+------|------+------+------+------+------+------|
51 * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | 51 * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
52 * |------+------+------+------+------+------+------+------+------+------+------+------| 52 * |------+------+------+------+------+------+------+------+------+------+------+------|
53 * | Brite| Ctrl | Alt | GUI |Lower | Enter|Space |Raise | Left | Down | Up |Right | 53 * | Brite| Ctrl | Alt | GUI | Enter | Space | Left | Down | Up |Right |
54 * `-----------------------------------------------------------------------------------' 54 * `-----------------------------------------------------------------------------------'
55 */ 55 */
56 [_QWERTY] = LAYOUT_planck_grid( 56 [_QWERTY] = LAYOUT_planck_grid(
57 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 57 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
58 ESC_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 58 ESC_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
59 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, 59 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
60 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), 60 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, RSE_ENT, KC_NO, LWR_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
61 61
62 /* Lower 62 /* Lower
63 * ,-----------------------------------------------------------------------------------. 63 * ,-----------------------------------------------------------------------------------.
@@ -67,12 +67,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
67 * |------+------+------+------+------+------|------+------+------+------+------+------| 67 * |------+------+------+------+------+------|------+------+------+------+------+------|
68 * | | => | | [ | ] | | | _ | + | | | Home | End | 68 * | | => | | [ | ] | | | _ | + | | | Home | End |
69 * |------+------+------+------+------+------+------+------+------+------+------+------| 69 * |------+------+------+------+------+------+------+------+------+------+------+------|
70 * | | | | | | | | Next | Vol- | Vol+ | Play | 70 * | | | | | | | Next | Vol- | Vol+ | Play |
71 * `-----------------------------------------------------------------------------------' 71 * `-----------------------------------------------------------------------------------'
72 */ 72 */
73 73
74 [_LOWER] = LAYOUT_planck_grid( 74 [_LOWER] = LAYOUT_planck_grid(
75 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, 75 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
76 ESC_CTL, CLNEQLS, _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_MINS, KC_EQL, KC_BSLS, KC_TILD, KC_RGUI, 76 ESC_CTL, CLNEQLS, _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_MINS, KC_EQL, KC_BSLS, KC_TILD, KC_RGUI,
77 _______, HASHRKT, _______, KC_LBRC, KC_RBRC, _______, _______, KC_UNDS, KC_PLUS, KC_PIPE, KC_HOME, KC_END, 77 _______, HASHRKT, _______, KC_LBRC, KC_RBRC, _______, _______, KC_UNDS, KC_PLUS, KC_PIPE, KC_HOME, KC_END,
78 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), 78 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
@@ -85,14 +85,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
85 * |------+------+------+------+------+------|------+------+------+------+------+------| 85 * |------+------+------+------+------+------|------+------+------+------+------+------|
86 * | | | | | | | | 1 | 2 | 3 | | | 86 * | | | | | | | | 1 | 2 | 3 | | |
87 * |------+------+------+------+------+------+------+------+------+------+------+------| 87 * |------+------+------+------+------+------+------+------+------+------+------+------|
88 * | | | | | | | | Next | Vol- | Vol+ | Play | 88 * | | | | | | | Next | Vol- | Vol+ | Play |
89 * `-----------------------------------------------------------------------------------' 89 * `-----------------------------------------------------------------------------------'
90 */ 90 */
91 [_RAISE] = LAYOUT_planck_grid( 91 [_RAISE] = LAYOUT_planck_grid(
92 KC_GRV, _______, _______, KC_UP, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 92 KC_GRV, _______, _______, KC_UP, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
93 ESC_CTL, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_4, KC_5, KC_6, _______, KC_RGUI, 93 ESC_CTL, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_4, KC_5, KC_6, _______, KC_RGUI,
94 _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, 94 _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______,
95 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), 95 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
96 96
97 /* Adjust (Lower + Raise) 97 /* Adjust (Lower + Raise)
98 * ,-----------------------------------------------------------------------------------. 98 * ,-----------------------------------------------------------------------------------.
@@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
102 * |------+------+------+------+------+------|------+------+------+------+------+------| 102 * |------+------+------+------+------+------|------+------+------+------+------+------|
103 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | 103 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
104 * |------+------+------+------+------+------+------+------+------+------+------+------| 104 * |------+------+------+------+------+------+------+------+------+------+------+------|
105 * | | | | | | | | | | | | 105 * | | | | | | | | | | |
106 * `-----------------------------------------------------------------------------------' 106 * `-----------------------------------------------------------------------------------'
107 */ 107 */
108 [_ADJUST] = LAYOUT_planck_grid( 108 [_ADJUST] = LAYOUT_planck_grid(
diff --git a/keyboards/planck/keymaps/muzfuz/readme.md b/keyboards/planck/keymaps/muzfuz/readme.md
index 78153fb32..6f78284d7 100644
--- a/keyboards/planck/keymaps/muzfuz/readme.md
+++ b/keyboards/planck/keymaps/muzfuz/readme.md
@@ -1,8 +1,5 @@
1# The muzfuz Planck Layout 1# The muzfuz Planck Layout
2 2
3```shell 3```shell
4docker run -e KEYMAP=muzfuz -e KEYBOARD=planck --rm -v $('pwd'):/qmk:rw qmk_firmware 4make planck/rev6:muzfuz:dfu-util
5dfu-programmer atmega32u4 erase
6dfu-programmer atmega32u4 flash .build/planck_rev6_muzfuz.hex
7dfu-programmer atmega32u4 launch
8``` 5```
diff --git a/keyboards/preonic/keymaps/muzfuz/config.h b/keyboards/preonic/keymaps/muzfuz/config.h
new file mode 100644
index 000000000..40a9524b4
--- /dev/null
+++ b/keyboards/preonic/keymaps/muzfuz/config.h
@@ -0,0 +1,37 @@
1#pragma once
2
3#ifdef AUDIO_ENABLE
4 #define STARTUP_SONG SONG(PREONIC_SOUND)
5 // #define STARTUP_SONG SONG(NO_SOUND)
6
7 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
8 SONG(COLEMAK_SOUND), \
9 SONG(DVORAK_SOUND) \
10 }
11#endif
12
13#define MUSIC_MASK (keycode != KC_NO)
14
15/*
16 * MIDI options
17 */
18
19/* Prevent use of disabled MIDI features in the keymap */
20//#define MIDI_ENABLE_STRICT 1
21
22/* enable basic MIDI features:
23 - MIDI notes can be sent when in Music mode is on
24*/
25
26#define MIDI_BASIC
27
28/* enable advanced MIDI features:
29 - MIDI notes can be added to the keymap
30 - Octave shift and transpose
31 - Virtual sustain, portamento, and modulation wheel
32 - etc.
33*/
34//#define MIDI_ADVANCED
35
36/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
37//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/preonic/keymaps/muzfuz/keymap.c b/keyboards/preonic/keymaps/muzfuz/keymap.c
new file mode 100644
index 000000000..a0a4b34fa
--- /dev/null
+++ b/keyboards/preonic/keymaps/muzfuz/keymap.c
@@ -0,0 +1,271 @@
1/* Copyright 2015-2017 Jack Humbert
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18#include "muse.h"
19
20enum preonic_layers {
21 _QWERTY,
22 _LOWER,
23 _RAISE,
24 _ADJUST
25};
26
27enum preonic_keycodes
28{
29 QWERTY = SAFE_RANGE,
30 LOWER,
31 RAISE,
32 BACKLIT,
33 HASHRKT,
34 CLNEQLS
35};
36
37#define RSE_ENT LT(_RAISE, KC_ENT)
38#define LWR_SPC LT(_LOWER, KC_SPC)
39#define ESC_CTL CTL_T(KC_ESCAPE)
40
41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42
43 /* Qwerty
44 * ,-----------------------------------------------------------------------------------.
45 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
46 * ,-----------------------------------------------------------------------------------.
47 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
48 * |------+------+------+------+------+-------------+------+------+------+------+------|
49 * | ESCCTL | A | S | D | F | G | H | J | K | L | ; | " |
50 * |------+------+------+------+------+------|------+------+------+------+------+------|
51 * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
52 * |------+------+------+------+------+------+------+------+------+------+------+------|
53 * | Brite| Ctrl | Alt | GUI |Lower | Enter|Space |Raise | Left | Down | Up |Right |
54 * `-----------------------------------------------------------------------------------'
55 */
56 [_QWERTY] = LAYOUT_preonic_grid(
57 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
58 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
59 ESC_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
60 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
61 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, RSE_ENT, KC_NO, LWR_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
62
63 /* Lower
64 * ,-----------------------------------------------------------------------------------.
65 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
66 * ,-----------------------------------------------------------------------------------.
67 * | | => | | [ | ] | | | _ | + | | | | |
68 * |------+------+------+------+------+-------------+------+------+------+------+------|
69 * |ESCCTL| := | | { | } | ( | ) | - | = | \ | ~ | GUI |
70 * |------+------+------+------+------+------|------+------+------+------+------+------|
71 * | | | | [ | ] | | | | | | Home | End |
72 * |------+------+------+------+------+------+------+------+------+------+------+------|
73 * | | | | | | | | Next | Vol- | Vol+ | Play |
74 * `-----------------------------------------------------------------------------------'
75 */
76 [_LOWER] = LAYOUT_preonic_grid(
77 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
78 _______, HASHRKT, _______, KC_LBRC, KC_RBRC, _______, _______, KC_UNDS, KC_PLUS, KC_PIPE, _______, _______,
79 ESC_CTL, CLNEQLS, _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_MINS, KC_EQL, KC_BSLS, KC_TILD, KC_RGUI,
80 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END,
81 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
82
83 /* Raise
84 * ,-----------------------------------------------------------------------------------.
85 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
86 * ,-----------------------------------------------------------------------------------.
87 * | | | | Up | | | | | | | | |
88 * |------+------+------+------+------+-------------+------+------+------+------+------|
89 * |ESCCTL| | Left | Down | Right | | | | | | | GUI |
90 * |------+------+------+------+------+------|------+------+------+------+------+------|
91 * | | | | | | | | | | | | |
92 * |------+------+------+------+------+------+------+------+------+------+------+------|
93 * | | | | | | | | Next | Vol- | Vol+ | Play |
94 * `-----------------------------------------------------------------------------------'
95 */
96 [_RAISE] = LAYOUT_preonic_grid(
97 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
98 _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______,
99 ESC_CTL, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, KC_RGUI,
100 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
101 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
102
103 /* Adjust (Lower + Raise)
104 * ,-----------------------------------------------------------------------------------.
105 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
106 * ,-----------------------------------------------------------------------------------.
107 * | | Reset| | | | | | | | | | Del |
108 * |------+------+------+------+------+-------------+------+------+------+------+------|
109 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
110 * |------+------+------+------+------+------|------+------+------+------+------+------|
111 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
112 * |------+------+------+------+------+------+------+------+------+------+------+------|
113 * | | | | | | | | | | | |
114 * `-----------------------------------------------------------------------------------'
115 */
116 [_ADJUST] = LAYOUT_preonic_grid(
117 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
118 _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL,
119 _______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, QWERTY, _______, _______, _______, _______,
120 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
121 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
122
123};
124
125bool process_record_user(uint16_t keycode, keyrecord_t *record) {
126 switch (keycode) {
127 case HASHRKT:
128 if (record->event.pressed)
129 {
130 SEND_STRING("=>");
131 }
132 break;
133 case CLNEQLS:
134 if (record->event.pressed)
135 {
136 SEND_STRING(":=");
137 }
138 break;
139 case QWERTY:
140 if (record->event.pressed)
141 {
142 set_single_persistent_default_layer(_QWERTY);
143 }
144 return false;
145 break;
146 case LOWER:
147 if (record->event.pressed)
148 {
149 layer_on(_LOWER);
150 update_tri_layer(_LOWER, _RAISE, _ADJUST);
151 }
152 else
153 {
154 layer_off(_LOWER);
155 update_tri_layer(_LOWER, _RAISE, _ADJUST);
156 }
157 return false;
158 break;
159 case RAISE:
160 if (record->event.pressed)
161 {
162 layer_on(_RAISE);
163 update_tri_layer(_LOWER, _RAISE, _ADJUST);
164 }
165 else
166 {
167 layer_off(_RAISE);
168 update_tri_layer(_LOWER, _RAISE, _ADJUST);
169 }
170 return false;
171 break;
172 case BACKLIT:
173 if (record->event.pressed)
174 {
175 register_code(KC_RSFT);
176 #ifdef BACKLIGHT_ENABLE
177 backlight_step();
178 #endif
179 #ifdef __AVR__
180 PORTE &= ~(1<<6);
181 #endif
182 } else {
183 unregister_code(KC_RSFT);
184 #ifdef __AVR__
185 PORTE |= (1<<6);
186 #endif
187 }
188 return false;
189 break;
190 }
191 return true;
192};
193
194bool muse_mode = false;
195uint8_t last_muse_note = 0;
196uint16_t muse_counter = 0;
197uint8_t muse_offset = 70;
198uint16_t muse_tempo = 50;
199
200void encoder_update(bool clockwise) {
201 if (muse_mode) {
202 if (IS_LAYER_ON(_RAISE)) {
203 if (clockwise) {
204 muse_offset++;
205 } else {
206 muse_offset--;
207 }
208 } else {
209 if (clockwise) {
210 muse_tempo+=1;
211 } else {
212 muse_tempo-=1;
213 }
214 }
215 } else {
216 if (clockwise) {
217 register_code(KC_PGDN);
218 unregister_code(KC_PGDN);
219 } else {
220 register_code(KC_PGUP);
221 unregister_code(KC_PGUP);
222 }
223 }
224}
225
226void dip_update(uint8_t index, bool active) {
227 switch (index) {
228 case 0:
229 if (active) {
230 layer_on(_ADJUST);
231 } else {
232 layer_off(_ADJUST);
233 }
234 break;
235 case 1:
236 if (active) {
237 muse_mode = true;
238 } else {
239 muse_mode = false;
240 #ifdef AUDIO_ENABLE
241 stop_all_notes();
242 #endif
243 }
244 }
245}
246
247void matrix_scan_user(void) {
248 #ifdef AUDIO_ENABLE
249 if (muse_mode) {
250 if (muse_counter == 0) {
251 uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
252 if (muse_note != last_muse_note) {
253 stop_note(compute_freq_for_midi_note(last_muse_note));
254 play_note(compute_freq_for_midi_note(muse_note), 0xF);
255 last_muse_note = muse_note;
256 }
257 }
258 muse_counter = (muse_counter + 1) % muse_tempo;
259 }
260 #endif
261}
262
263bool music_mask_user(uint16_t keycode) {
264 switch (keycode) {
265 case RAISE:
266 case LOWER:
267 return false;
268 default:
269 return true;
270 }
271}
diff --git a/keyboards/preonic/keymaps/muzfuz/readme.md b/keyboards/preonic/keymaps/muzfuz/readme.md
new file mode 100644
index 000000000..a709d5c94
--- /dev/null
+++ b/keyboards/preonic/keymaps/muzfuz/readme.md
@@ -0,0 +1,5 @@
1# The muzfuz Preonic layout - largely based on the Planck's
2
3```shell
4make preonic/rev3:muzfuz:dfu-util
5```
diff --git a/keyboards/preonic/keymaps/muzfuz/rules.mk b/keyboards/preonic/keymaps/muzfuz/rules.mk
new file mode 100644
index 000000000..dcf16bef3
--- /dev/null
+++ b/keyboards/preonic/keymaps/muzfuz/rules.mk
@@ -0,0 +1 @@
SRC += muse.c