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:
Rodolphe Belouin 2020-11-08 04:35:14 +01:00 committed by GitHub
parent 4cdd3005d6
commit 38527f9a3b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 1280 additions and 0 deletions

View file

@ -68,6 +68,11 @@ extern layer_state_t default_layer_state;
extern layer_state_t layer_state;
#endif
#if defined(SEQUENCER_ENABLE)
# include "sequencer.h"
# include "process_sequencer.h"
#endif
#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
# include "process_midi.h"
#endif