Add step sequencer feature (#9703)
* sequencer: create togglable feature * sequencer: add support for steps * sequencer: add support for tempo and resolutions * sequencer: schedule a message print at the right frequency * sequencer: send a hardcoded note * sequencer: add support for 8 tracks * sequencer: play several notes simultaneously * sequencer: only play the active tracks for a given step * sequencer: change the default behavior of the track toggler * sequencer: make number of tracks and track notes customizable * sequencer: move the keycodes down Not adding them at the end of the list apparently risks breaking compatibility with VIA. Source: https://github.com/qmk/qmk_firmware/pull/9703#discussion_r459202733 * sequencer: add unit tests * sequencer: add unit test for matrix_scan_sequencer * sequencer: expose internal state for better unit-testability * sequencer: add unit tests for matrix_scan_sequencer
This commit is contained in:
parent
4cdd3005d6
commit
38527f9a3b
18 changed files with 1280 additions and 0 deletions
|
@ -229,6 +229,9 @@ bool process_record_quantum(keyrecord_t *record) {
|
|||
process_record_via(keycode, record) &&
|
||||
#endif
|
||||
process_record_kb(keycode, record) &&
|
||||
#if defined(SEQUENCER_ENABLE)
|
||||
process_sequencer(keycode, record) &&
|
||||
#endif
|
||||
#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
|
||||
process_midi(keycode, record) &&
|
||||
#endif
|
||||
|
@ -633,6 +636,10 @@ void matrix_scan_quantum() {
|
|||
matrix_scan_music();
|
||||
#endif
|
||||
|
||||
#ifdef SEQUENCER_ENABLE
|
||||
matrix_scan_sequencer();
|
||||
#endif
|
||||
|
||||
#ifdef TAP_DANCE_ENABLE
|
||||
matrix_scan_tap_dance();
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue