aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Coffey <31978203+ArtfulDodge@users.noreply.github.com>2018-03-25 15:58:40 -0400
committerDrashna Jaelre <drashna@live.com>2018-03-25 12:58:40 -0700
commita09a042b8fe6a0369a7c479168492125efa24e59 (patch)
treeb648d1f63bb53e5a435735ab81ba0eb4413156bd
parent3d587b1d2f01265ef25d9f328c157886afb0c579 (diff)
downloadqmk_firmware-a09a042b8fe6a0369a7c479168492125efa24e59.tar.gz
qmk_firmware-a09a042b8fe6a0369a7c479168492125efa24e59.zip
New keymap and more songs (#2609)
* Added some new songs and my own keymap * Made Dodger keymap safe to use with backlight disabled * edited layer switching and added more songs * changed keymap to lowercase
-rw-r--r--keyboards/planck/keymaps/dodger/config.h90
-rw-r--r--keyboards/planck/keymaps/dodger/keymap.c338
-rw-r--r--keyboards/planck/keymaps/dodger/readme.md2
-rw-r--r--keyboards/planck/keymaps/dodger/rules.mk70
-rw-r--r--quantum/audio/song_list.h145
5 files changed, 641 insertions, 4 deletions
diff --git a/keyboards/planck/keymaps/dodger/config.h b/keyboards/planck/keymaps/dodger/config.h
new file mode 100644
index 000000000..c70acfdc9
--- /dev/null
+++ b/keyboards/planck/keymaps/dodger/config.h
@@ -0,0 +1,90 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6060
26#define MANUFACTURER OLKB
27#define PRODUCT Planck
28#define DESCRIPTION A compact ortholinear keyboard
29
30/* key matrix size */
31#define MATRIX_ROWS 4
32#define MATRIX_COLS 12
33
34/* Planck PCB default pin-out */
35#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
36#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
37#define UNUSED_PINS
38
39#define QMK_ESC_OUTPUT F1
40#define QMK_ESC_INPUT D5
41#define QMK_LED E6
42#define QMK_SPEAKER C6
43
44#define AUDIO_VOICES
45#define C6_AUDIO
46
47#define BACKLIGHT_PIN B7
48
49/* COL2ROW or ROW2COL */
50#define DIODE_DIRECTION COL2ROW
51
52/* define if matrix has ghost */
53//#define MATRIX_HAS_GHOST
54
55/* number of backlight levels */
56#define BACKLIGHT_LEVELS 15
57
58/* Set 0 if debouncing isn't needed */
59#define DEBOUNCING_DELAY 5
60
61/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
62#define LOCKING_SUPPORT_ENABLE
63/* Locking resynchronize hack */
64#define LOCKING_RESYNC_ENABLE
65
66/* key combination for command */
67#define IS_COMMAND() ( \
68 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
69)
70
71/*
72 * Feature disable options
73 * These options are also useful to firmware size reduction.
74 */
75
76/* disable debug print */
77//#define NO_DEBUG
78
79/* disable print */
80//#define NO_PRINT
81
82/* disable action features */
83//#define NO_ACTION_LAYER
84//#define NO_ACTION_TAPPING
85//#define NO_ACTION_ONESHOT
86//#define NO_ACTION_MACRO
87//#define NO_ACTION_FUNCTION
88
89#define TAPPING_TERM 200
90#endif
diff --git a/keyboards/planck/keymaps/dodger/keymap.c b/keyboards/planck/keymaps/dodger/keymap.c
new file mode 100644
index 000000000..dd1e236e0
--- /dev/null
+++ b/keyboards/planck/keymaps/dodger/keymap.c
@@ -0,0 +1,338 @@
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 "planck.h"
18#include "action_layer.h"
19
20extern keymap_config_t keymap_config;
21bool isGame = false;
22bool isMusic = false;
23
24
25enum planck_layers {
26 _COLEMAK,
27 _GAME,
28 _MUSIC,
29 _LOWER,
30 _RAISE,
31 _ADJUST,
32};
33
34enum planck_keycodes {
35 COLEMAK = SAFE_RANGE,
36 GCTOGG,
37 MCTOGG,
38 LOWER,
39 RAISE,
40 LENNY,
41 COMMENTHEAD,
42 RICKANDMORT,
43 MARIO,
44 MARIOE,
45 OVERWATCH,
46 DOOM,
47 DISNEY,
48 NUMBERONE,
49 CABBAGE,
50 OLDSPICE,
51};
52
53enum {
54 TD_SPC_ENT = 0,
55 TD_ESC_CAPS
56};
57
58qk_tap_dance_action_t tap_dance_actions[] = {
59 [TD_SPC_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT),
60 [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS)
61};
62
63const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
64
65/* Colemak
66 * ,-----------------------------------------------------------------------------------.
67 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | = |
68 * |------+------+------+------+------+-------------+------+------+------+------+------|
69 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
70 * |------+------+------+------+------+------|------+------+------+------+------+------|
71 * | Shift| Z | X | C | V | B | K | M | , | . | / | - |
72 * |------+------+------+------+------+------+------+------+------+------+------+------|
73 * | Ctrl | GUI | Alt |lenny |Lower | shift|space |Raise | macro|macro2|macro3|QWERTY|
74 * `-----------------------------------------------------------------------------------'
75 */
76[_COLEMAK] = {
77 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_EQL},
78 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
79 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS},
80 {KC_LCTL, KC_LGUI, KC_LALT, LENNY, LOWER, RSFT_T(KC_BSPC), TD(TD_SPC_ENT), RAISE, COMMENTHEAD, RICKANDMORT, KC_LEFT, KC_RGHT}
81},
82
83/* Lower
84 * ,-----------------------------------------------------------------------------------.
85 * | | | | [ | ] | | ( | ) | { | } | | + |
86 * |------+------+------+------+------+-------------+------+------+------+------+------|
87 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | left | down | up | right| | |
88 * |------+------+------+------+------+------|------+------+------+------+------+------|
89 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | _ |
90 * |------+------+------+------+------+------+------+------+------+------+------+------|
91 * | | | | | | | | Next | Vol- | Vol+ | Play |
92 * `-----------------------------------------------------------------------------------'
93 */
94[_LOWER] = {
95 {_______, _______, _______, KC_LBRC, KC_RBRC, _______, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, _______, S(KC_EQL)},
96 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PIPE},
97 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_UNDS},
98 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
99},
100
101/* Raise
102 * ,-----------------------------------------------------------------------------------.
103 * | ` | ! | @ | # | $ | % | ^ | & | * | ( | ) | DEL |
104 * |------+------+------+------+------+-------------+------+------+------+------+------|
105 * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
106 * |------+------+------+------+------+------|------+------+------+------+------+------|
107 * | | | | | | | | | | | | |
108 * |------+------+------+------+------+------+------+------+------+------+------+------|
109 * | | | | | | | | | bl- | bl+ | GCTG |
110 * `-----------------------------------------------------------------------------------'
111 */
112[_RAISE] = {
113 {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
114 {KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS},
115 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
116 {_______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, MCTOGG, GCTOGG}
117},
118
119/* Adjust (Lower + Raise)
120 * ,-----------------------------------------------------------------------------------.
121 * | | Reset| | | | | | | | | | Del |
122 * |------+------+------+------+------+-------------+------+------+------+------+------|
123 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
124 * |------+------+------+------+------+------|------+------+------+------+------+------|
125 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
126 * |------+------+------+------+------+------+------+------+------+------+------+------|
127 * | | | | | | | | | | | |
128 * `-----------------------------------------------------------------------------------'
129 */
130[_ADJUST] = {
131 {_______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL },
132 {_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, COLEMAK, _______, _______, _______},
133 {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, TERM_ON, TERM_OFF, _______, _______, _______},
134 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
135},
136
137[_GAME] = {
138 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_EQL},
139 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
140 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS},
141 {KC_LCTL, RAISE, KC_LALT, LOWER, KC_SPC, RSFT_T(KC_BSPC), TD(TD_SPC_ENT), RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}
142},
143
144[_MUSIC] = {
145 {MARIO, MARIOE, OVERWATCH, DOOM, DISNEY, NUMBERONE, CABBAGE, OLDSPICE, _______, _______, _______, _______},
146 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
147 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
148 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
149}
150
151};
152
153#ifdef AUDIO_ENABLE
154 float guitar[][2] = SONG(GUITAR_SOUND);
155 float mario[][2] = SONG(MARIO_THEME);
156 float marioe[][2] = SONG(MARIO_GAMEOVER);
157 float overwatch[][2] = SONG(OVERWATCH_THEME);
158 float doom[][2] = SONG(E1M1_DOOM);
159 float disney[][2] = SONG(DISNEY_SONG);
160 float numberone[][2] = SONG(NUMBER_ONE);
161 float cabbage[][2] = SONG(CABBAGE_SONG);
162 float oldspice[][2] = SONG(OLD_SPICE);
163#endif
164
165void setLayer(int layer) {
166 if (layer == _COLEMAK) {
167 #ifdef AUDIO_ENABLE
168 stop_all_notes();
169 PLAY_SONG(marioe);
170 #endif
171 set_single_persistent_default_layer(_COLEMAK);
172 #ifdef BACKLIGHT_ENABLE
173 backlight_set(0);
174 #endif
175 } else if (layer == _GAME) {
176 #ifdef AUDIO_ENABLE
177 stop_all_notes();
178 PLAY_SONG(mario);
179 #endif
180 set_single_persistent_default_layer(_GAME);
181 #ifdef BACKLIGHT_ENABLE
182 backlight_set(15);
183 #endif
184 } else if (layer == _MUSIC) {
185 #ifdef AUDIO_ENABLE
186 stop_all_notes();
187 PLAY_SONG(guitar);
188 #endif
189 set_single_persistent_default_layer(_MUSIC);
190 #ifdef BACKLIGHT_ENABLE
191 backlight_set(1);
192 #endif
193 }
194}
195
196bool process_record_user(uint16_t keycode, keyrecord_t *record) {
197 switch (keycode) {
198 case COLEMAK:
199 if (record->event.pressed) {
200 set_single_persistent_default_layer(_COLEMAK);
201 #ifdef BACKLIGHT_ENABLE
202 backlight_set(0);
203 #endif
204 }
205 return false;
206 break;
207 case GCTOGG:
208 if (record->event.pressed) {
209 if (isGame) {
210 if (isMusic)
211 setLayer(_MUSIC);
212 else
213 setLayer(_COLEMAK);
214 isGame = false;
215 } else {
216 setLayer(_GAME);
217 isGame = true;
218 }
219 }
220 return false;
221 break;
222 case MCTOGG:
223 if (record->event.pressed) {
224 if (isMusic) {
225 if (isGame)
226 setLayer(_GAME);
227 else
228 setLayer(_COLEMAK);
229 isMusic = false;
230 } else {
231 setLayer(_MUSIC);
232 isMusic = true;
233 }
234 }
235 return false;
236 break;
237 case LOWER:
238 if (record->event.pressed) {
239 layer_on(_LOWER);
240 update_tri_layer(_LOWER, _RAISE, _ADJUST);
241 } else {
242 layer_off(_LOWER);
243 update_tri_layer(_LOWER, _RAISE, _ADJUST);
244 }
245 return false;
246 break;
247 case RAISE:
248 if (record->event.pressed) {
249 layer_on(_RAISE);
250 update_tri_layer(_LOWER, _RAISE, _ADJUST);
251 } else {
252 layer_off(_RAISE);
253 update_tri_layer(_LOWER, _RAISE, _ADJUST);
254 }
255 return false;
256 break;
257 case LENNY:
258 if (record->event.pressed) {
259 SEND_STRING("()");
260 }
261 return false; break;
262 case COMMENTHEAD:
263 if (record->event.pressed) {
264 SEND_STRING("// ---------------------------------------------------------------");
265 }
266 return false; break;
267 case RICKANDMORT:
268 if (record->event.pressed) {
269 SEND_STRING("// ***************************************************************");
270 }
271 return false; break;
272 case MARIO:
273 if(record->event.pressed) {
274 #ifdef AUDIO_ENABLE
275 PLAY_SONG(mario);
276 #endif
277 }
278 return false; break;
279 case MARIOE:
280 if(record->event.pressed) {
281 #ifdef AUDIO_ENABLE
282 PLAY_SONG(marioe);
283 #endif
284 }
285 return false; break;
286 case OVERWATCH:
287 if(record->event.pressed) {
288 #ifdef AUDIO_ENABLE
289 PLAY_SONG(overwatch);
290 #endif
291 }
292 return false; break;
293 case DOOM:
294 if(record->event.pressed) {
295 #ifdef AUDIO_ENABLE
296 PLAY_SONG(doom);
297 #endif
298 }
299 return false; break;
300 case DISNEY:
301 if(record->event.pressed) {
302 #ifdef AUDIO_ENABLE
303 PLAY_SONG(disney);
304 #endif
305 }
306 return false; break;
307 case NUMBERONE:
308 if(record->event.pressed) {
309 #ifdef AUDIO_ENABLE
310 PLAY_SONG(numberone);
311 #endif
312 }
313 return false; break;
314 case CABBAGE:
315 if(record->event.pressed) {
316 #ifdef AUDIO_ENABLE
317 PLAY_SONG(cabbage);
318 #endif
319 }
320 return false; break;
321 case OLDSPICE:
322 if(record->event.pressed) {
323 #ifdef AUDIO_ENABLE
324 PLAY_SONG(oldspice);
325 #endif
326 }
327 return false; break;
328 }
329 return true;
330}
331
332void matrix_init_user(void) {
333 set_single_persistent_default_layer(_COLEMAK);
334 isGame = false;
335 #ifdef BACKLIGHT_ENABLE
336 backlight_level(0);
337 #endif
338}
diff --git a/keyboards/planck/keymaps/dodger/readme.md b/keyboards/planck/keymaps/dodger/readme.md
new file mode 100644
index 000000000..01021081d
--- /dev/null
+++ b/keyboards/planck/keymaps/dodger/readme.md
@@ -0,0 +1,2 @@
1# dodger
2
diff --git a/keyboards/planck/keymaps/dodger/rules.mk b/keyboards/planck/keymaps/dodger/rules.mk
new file mode 100644
index 000000000..981a3e82b
--- /dev/null
+++ b/keyboards/planck/keymaps/dodger/rules.mk
@@ -0,0 +1,70 @@
1# MCU name
2#MCU = at90usb1287
3MCU = atmega32u4
4
5# Processor frequency.
6# This will define a symbol, F_CPU, in all source code files equal to the
7# processor frequency in Hz. You can then use this symbol in your source code to
8# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
9# automatically to create a 32-bit value in your source code.
10#
11# This will be an integer division of F_USB below, as it is sourced by
12# F_USB after it has run through any CPU prescalers. Note that this value
13# does not *change* the processor frequency - it should merely be updated to
14# reflect the processor speed set externally so that the code can use accurate
15# software delays.
16F_CPU = 16000000
17
18#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = AVR8
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU)
36
37# Bootloader
38# This definition is optional, and if your keyboard supports multiple bootloaders of
39# different sizes, comment this out, and the correct address will be loaded
40# automatically (+60). See bootloader.mk for all options.
41BOOTLOADER = atmel-dfu
42
43# Interrupt driven control endpoint task(+60)
44OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
45
46# Build Options
47# change to "no" to disable the options, or define them in the Makefile in
48# the appropriate keymap folder that will get included automatically
49#
50BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
51MOUSEKEY_ENABLE = no # Mouse keys(+4700)
52EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
53CONSOLE_ENABLE = no # Console for debug(+400)
54COMMAND_ENABLE = no # Commands for debug and configuration
55NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
56BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
57MIDI_ENABLE = no # MIDI controls
58AUDIO_ENABLE = yes # Audio output on port C6
59UNICODE_ENABLE = no # Unicode
60BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
61RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
62API_SYSEX_ENABLE = no
63TAP_DANCE_ENABLE = yes
64
65# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
66SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
67
68LAYOUTS = ortho_4x12 planck_mit planck_grid
69
70DEFAULT_FOLDER = planck/rev5
diff --git a/quantum/audio/song_list.h b/quantum/audio/song_list.h
index d52f45d16..a66c4d864 100644
--- a/quantum/audio/song_list.h
+++ b/quantum/audio/song_list.h
@@ -188,7 +188,14 @@
188 Q__NOTE(_B5 ), \ 188 Q__NOTE(_B5 ), \
189 Q__NOTE(_CS6), \ 189 Q__NOTE(_CS6), \
190 Q__NOTE(_D6 ), \ 190 Q__NOTE(_D6 ), \
191 Q__NOTE(_E6 ), 191 Q__NOTE(_E6 ),
192
193#define MINOR_SOUND \
194 Q__NOTE(_A5 ), \
195 Q__NOTE(_B5 ), \
196 Q__NOTE(_C6 ), \
197 Q__NOTE(_D6 ), \
198 Q__NOTE(_E6 ),
192 199
193#define GUITAR_SOUND \ 200#define GUITAR_SOUND \
194 Q__NOTE(_E5 ), \ 201 Q__NOTE(_E5 ), \
@@ -272,12 +279,142 @@
272 HD_NOTE(_C6), 279 HD_NOTE(_C6),
273 280
274#define ZELDA_TREASURE \ 281#define ZELDA_TREASURE \
275 Q__NOTE(_A4), \ 282 Q__NOTE(_A4 ), \
276 Q__NOTE(_AS4), \ 283 Q__NOTE(_AS4), \
277 Q__NOTE(_B4), \ 284 Q__NOTE(_B4 ), \
278 HD_NOTE(_C5), \ 285 HD_NOTE(_C5 ), \
279 286
280#define TERMINAL_SOUND \ 287#define TERMINAL_SOUND \
281 E__NOTE(_C5 ) 288 E__NOTE(_C5 )
282 289
290#define OVERWATCH_THEME \
291 HD_NOTE(_A4 ), \
292 Q__NOTE(_E4 ), \
293 Q__NOTE(_A4 ), \
294 HD_NOTE(_B4 ), \
295 Q__NOTE(_E4 ), \
296 Q__NOTE(_B4 ), \
297 W__NOTE(_CS5),
298
299#define MARIO_THEME \
300 Q__NOTE(_E5), \
301 H__NOTE(_E5), \
302 H__NOTE(_E5), \
303 Q__NOTE(_C5), \
304 H__NOTE(_E5), \
305 W__NOTE(_G5), \
306 Q__NOTE(_G4),
307
308#define MARIO_GAMEOVER \
309 HD_NOTE(_C5 ), \
310 HD_NOTE(_G4 ), \
311 H__NOTE(_E4 ), \
312 H__NOTE(_A4 ), \
313 H__NOTE(_B4 ), \
314 H__NOTE(_A4 ), \
315 H__NOTE(_AF4), \
316 H__NOTE(_BF4), \
317 H__NOTE(_AF4), \
318 WD_NOTE(_G4 ),
319
320#define E1M1_DOOM \
321 Q__NOTE(_E3 ), \
322 Q__NOTE(_E3 ), \
323 Q__NOTE(_E4 ), \
324 Q__NOTE(_E3 ), \
325 Q__NOTE(_E3 ), \
326 Q__NOTE(_D4 ), \
327 Q__NOTE(_E3 ), \
328 Q__NOTE(_E3 ), \
329 Q__NOTE(_C4 ), \
330 Q__NOTE(_E3 ), \
331 Q__NOTE(_E3 ), \
332 Q__NOTE(_BF3), \
333 Q__NOTE(_E3 ), \
334 Q__NOTE(_E3 ), \
335 Q__NOTE(_B3 ), \
336 Q__NOTE(_C4 ), \
337 Q__NOTE(_E3 ), \
338 Q__NOTE(_E3 ), \
339 Q__NOTE(_E4 ), \
340 Q__NOTE(_E3 ), \
341 Q__NOTE(_E3 ), \
342 Q__NOTE(_D4 ), \
343 Q__NOTE(_E3 ), \
344 Q__NOTE(_E3 ), \
345 Q__NOTE(_C4 ), \
346 Q__NOTE(_E3 ), \
347 Q__NOTE(_E3 ), \
348 H__NOTE(_BF3),
349
350#define DISNEY_SONG \
351 H__NOTE(_G3 ), \
352 H__NOTE(_G4 ), \
353 H__NOTE(_F4 ), \
354 H__NOTE(_E4 ), \
355 H__NOTE(_CS4), \
356 H__NOTE(_D4 ), \
357 W__NOTE(_A4 ), \
358 H__NOTE(_B3 ), \
359 H__NOTE(_B4 ), \
360 H__NOTE(_A4 ), \
361 H__NOTE(_G4 ), \
362 H__NOTE(_FS4), \
363 H__NOTE(_G4 ), \
364 W__NOTE(_C5 ), \
365 H__NOTE(_D5 ), \
366 H__NOTE(_C5 ), \
367 H__NOTE(_B4 ), \
368 H__NOTE(_A4 ), \
369 H__NOTE(_G4 ), \
370 H__NOTE(_F4 ), \
371 H__NOTE(_E4 ), \
372 H__NOTE(_D4 ), \
373 W__NOTE(_A4 ), \
374 W__NOTE(_B3 ), \
375 W__NOTE(_C4 ),
376
377#define NUMBER_ONE \
378 HD_NOTE(_F4 ), \
379 Q__NOTE(_C5 ), \
380 E__NOTE(_B4 ), \
381 E__NOTE(_C5 ), \
382 E__NOTE(_B4 ), \
383 E__NOTE(_C5 ), \
384 Q__NOTE(_B4 ), \
385 Q__NOTE(_C5 ), \
386 H__NOTE(_AF4), \
387 HD_NOTE(_F4 ), \
388 Q__NOTE(_F4 ), \
389 Q__NOTE(_AF4), \
390 Q__NOTE(_C5 ), \
391 H__NOTE(_DF5), \
392 H__NOTE(_AF4), \
393 H__NOTE(_DF5), \
394 H__NOTE(_EF5), \
395 Q__NOTE(_C5 ), \
396 Q__NOTE(_DF5), \
397 Q__NOTE(_C5 ), \
398 Q__NOTE(_DF5), \
399 H__NOTE(_C5 ),
400
401#define CABBAGE_SONG \
402 H__NOTE(_C4), \
403 H__NOTE(_A4), \
404 H__NOTE(_B4), \
405 H__NOTE(_B4), \
406 H__NOTE(_A4), \
407 H__NOTE(_G4), \
408 H__NOTE(_E4),
409
410#define OLD_SPICE \
411 Q__NOTE(_A4 ), \
412 Q__NOTE(_A4 ), \
413 H__NOTE(_B4 ), \
414 H__NOTE(_D5 ), \
415 H__NOTE(_CS5), \
416 Q__NOTE(_E5 ), \
417 H__NOTE(_FS5), \
418 H__NOTE(_D5 ), \
419
283#endif 420#endif