diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/modding_your_keyboard.md | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/docs/modding_your_keyboard.md b/docs/modding_your_keyboard.md index 30ff4f91a..29b0b3b0f 100644 --- a/docs/modding_your_keyboard.md +++ b/docs/modding_your_keyboard.md | |||
@@ -1,12 +1,23 @@ | |||
1 | 1 | ||
2 | ## Audio output from a speaker | 2 | ## Audio output from a speaker |
3 | 3 | ||
4 | Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any keyboard that allows access to the C6 or B5 port (`#define C6_AUDIO` and `#define B5_AUDIO`), you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. | 4 | Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any keyboard that allows access to the C6 or B5 port (`#define C6_AUDIO` and/or `#define B5_AUDIO`), you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. |
5 | 5 | ||
6 | The audio code lives in [quantum/audio/audio.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/default/keymap.c). Here are the important bits: | 6 | If you add this to your `rules.mk`: |
7 | 7 | ||
8 | ``` | 8 | ``` |
9 | #include "audio.h" | 9 | AUDIO_ENABLE = yes |
10 | ``` | ||
11 | |||
12 | there's a couple different sounds that will automatically be enabled without any other configuration: | ||
13 | |||
14 | |||
15 | If you want to implement something custom, you can | ||
16 | |||
17 | ``` | ||
18 | #ifdef AUDIO_ENABLE | ||
19 | #include "audio.h" | ||
20 | #endif | ||
10 | ``` | 21 | ``` |
11 | 22 | ||
12 | Then, lower down the file: | 23 | Then, lower down the file: |
@@ -41,14 +52,11 @@ Wherein we bind predefined songs (from [quantum/audio/song_list.h](https://githu | |||
41 | So now you have something called `tone_plover` for example. How do you make it play the Plover tune, then? If you look further down the keymap, you'll see this: | 52 | So now you have something called `tone_plover` for example. How do you make it play the Plover tune, then? If you look further down the keymap, you'll see this: |
42 | 53 | ||
43 | ``` | 54 | ``` |
44 | PLAY_NOTE_ARRAY(tone_plover, false, LEGATO); // song name, repeat, rest style | 55 | PLAY_SONG(tone_plover); // song name |
45 | PLAY_SONG(tone_plover); // song name (repeat is false, rest is STACCATO) | ||
46 | ``` | 56 | ``` |
47 | 57 | ||
48 | This is inside one of the macros. So when that macro executes, your keyboard plays that particular chime. | 58 | This is inside one of the macros. So when that macro executes, your keyboard plays that particular chime. |
49 | 59 | ||
50 | "Rest style" in the method signature above (the last parameter) specifies if there's a rest (a moment of silence) between the notes. | ||
51 | |||
52 | ## Music mode | 60 | ## Music mode |
53 | 61 | ||
54 | The music mode maps your columns to a chromatic scale, and your rows to octaves. This works best with ortholinear keyboards, but can be made to work with others. All keycodes less than `0xFF` get blocked, so you won't type while playing notes - if you have special keys/mods, those will still work. A work-around for this is to jump to a different layer with KC_NOs before (or after) enabling music mode. | 62 | The music mode maps your columns to a chromatic scale, and your rows to octaves. This works best with ortholinear keyboards, but can be made to work with others. All keycodes less than `0xFF` get blocked, so you won't type while playing notes - if you have special keys/mods, those will still work. A work-around for this is to jump to a different layer with KC_NOs before (or after) enabling music mode. |