remove unneccesary headers

b6_b7_audio
Jack Humbert 7 years ago
parent 92ccc9a7b8
commit f407f3e8de

@ -1,12 +1,23 @@
## Audio output from a speaker ## Audio output from a speaker
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. 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.
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: If you add this to your `rules.mk`:
``` ```
#include "audio.h" AUDIO_ENABLE = yes
```
there's a couple different sounds that will automatically be enabled without any other configuration:
If you want to implement something custom, you can
```
#ifdef AUDIO_ENABLE
#include "audio.h"
#endif
``` ```
Then, lower down the file: Then, lower down the file:
@ -41,14 +52,11 @@ Wherein we bind predefined songs (from [quantum/audio/song_list.h](https://githu
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: 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:
``` ```
PLAY_NOTE_ARRAY(tone_plover, false, LEGATO); // song name, repeat, rest style PLAY_SONG(tone_plover); // song name
PLAY_SONG(tone_plover); // song name (repeat is false, rest is STACCATO)
``` ```
This is inside one of the macros. So when that macro executes, your keyboard plays that particular chime. This is inside one of the macros. So when that macro executes, your keyboard plays that particular chime.
"Rest style" in the method signature above (the last parameter) specifies if there's a rest (a moment of silence) between the notes.
## Music mode ## Music mode
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. 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.

@ -16,10 +16,6 @@
#include "planck.h" #include "planck.h"
#include "action_layer.h" #include "action_layer.h"
#include "eeconfig.h"
#ifdef AUDIO_ENABLE
#include "audio.h"
#endif
extern keymap_config_t keymap_config; extern keymap_config_t keymap_config;

@ -16,10 +16,6 @@
#include "preonic.h" #include "preonic.h"
#include "action_layer.h" #include "action_layer.h"
#include "eeconfig.h"
#ifdef AUDIO_ENABLE
#include "audio.h"
#endif
enum preonic_layers { enum preonic_layers {
_QWERTY, _QWERTY,

@ -555,7 +555,10 @@ ISR(TIMER1_COMPA_vect)
note_position++; note_position++;
bool end_of_note = false; bool end_of_note = false;
if (TIMER_1_PERIOD > 0) { if (TIMER_1_PERIOD > 0) {
end_of_note = (note_position >= (note_length / TIMER_1_PERIOD * 0xFFFF - 1)); if (!note_resting)
end_of_note = (note_position >= (note_length / TIMER_1_PERIOD * 0xFFFF - 1));
else
end_of_note = (note_position >= (note_length));
} else { } else {
end_of_note = (note_position >= (note_length)); end_of_note = (note_position >= (note_length));
} }

Loading…
Cancel
Save