Feature/In-Scale Chord view#2475
Conversation
fbfbbfa to
f85386a
Compare
89ec7f7 to
0b86d0c
Compare
6e0bd5e to
54e4cf5
Compare
m-m-adams
left a comment
There was a problem hiding this comment.
Generally looks good! Just a couple tweaks to help avoid future issues
| extern const Chord kM13; | ||
| extern const Chord kMinor13; | ||
|
|
||
| const std::array<Chord, kDisplayHeight> majorChords = { |
There was a problem hiding this comment.
This'll probably blow up the bin size again, can the definitions go in the c file?
There was a problem hiding this comment.
When it did, the release build right. Like all of the arrays (or vectors, because I originally wanted them as vectors) elements were null, so it got some funky behavior. You can see that behavior with trapper's message here (https://discord.com/channels/608916579421257728/1262843243846959225/1277405330334027919). In the debug build it worked fine split across though.
Though the bin size for my local release build is like 11 kb bigger with it defined in the .h file, so it doesn't seem to be that big of a problem? With the vectors it was like 30 kb bigger I think in the .h, which is why I went with the arrays, even if it meant a little more work in chord_keyboard.cpp. Though if you can figure out how to get it be split, that would be cool?
There was a problem hiding this comment.
Yeah the potential problem is that every file that imports this header will create a new copy of the arrays, and what we'd want is all uses to refer to the same underlying data
Being all zeroes sounds like an initialization bug. Vectors need dynamic memory at runtime which might not be set up before they're initialized
There was a problem hiding this comment.
It occurred when I swapped them out for arrays too. Want me to push a version with arrays split up so you can check it out?
There was a problem hiding this comment.
I split the definition up (as arrays still) and it only plays the root in a column, and the display sometimes produces a random extra symbol. Not sure why. Maybe you can see something I am doing wrong?
There was a problem hiding this comment.
Pushed a fix, it's from placing the extern variables in the array instead of referring to them. Arrays own their storage so that means the array got its own copy of the variables which didn't get initialized by chords.cpp.
I just changed that array to hold pointers to the extern const chord lists. This lowers the bin size by avoiding duplication and also ensures that the array holds the correct data
…fill whole column
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- Co-authored-by: m-m-adams <mark.adams@queensu.ca>
* initial chord builder keyboard * Color rows by quality * Add auto voiceleading button to keep notes inside 1 octave * Update changelog and community_features for Chord Keyboard * Formatting * Add column mode for playing chords in scale with single press * Display chord in column mode, loop columns when not enough chords to fill whole column * Rename BUILD mode to ROW mode * Reorder Chord Row mode * Fix array declaration bug in release build * Move chord library navigation aid to right column from top row * Fix testing bugs * Add required scale mode to chord keyboard * Restrict properly chord mode to modes of major minor scale * Add encoder actions * Formatting * Fix typo * Add dimming for non tonic degrees * Update changelog and community_features for Chord Keyboard * chord quality arrays in chords.h split definition to chords.cpp * refer to extern chords instead of duplicating * Chord keyboard only plays chords in-scale * Remove melodic and harmonic minor from accepted scales * Formatting and off limits scale popup logic change * Revert logic * Add keyboard control sidebar for controlling keyboard functions * Restores previous sidebar when moving to other keyboard view * Update community_features.md * Fix vertical encoder crash bug * Update community_features.md * Add dedicated chord_keyboard.md features page * Remove navigation column for chord library in scale mode * Switch quality chord contains back to arrays --------- * Fix bug where in some modes and key combos, it would freeze in infinite while loop * Make chord keyboard exit scale mode * Encoders both only cycle up and down in scale * Embed controls back into chord keyboard * Remove Column Control Sidebar * Remove auto voiceleading until more fully implemented * Update docs Co-Authored-By: m-m-adams <mark.adams@queensu.ca>
Description
This adds a in-scale chord keyboard view in contrast to the chord library view to build chords easily.
The last two columns are reserved for controls right now. Both to switch between modes, and to turn auto voice leading on and off. This is similar to how the Oxi One, the launchpad Pro, and others do it. But this just experimental. Since this is different than current Deluge UI, this could be moved into a chord keyboard menu that is open when the chord keyboard is being used. Or to shortcuts. Or the menu and on the grid.
Horizontal encoder cycles through the scale degrees while the vertical encoder modulates up or down semitones.
Below is an example of using the chord keyboard with row mode then column mode. At the end I use column mode to play a I vi IV V progression with randomly picking chords from those respective columns, showing that each chord in the column can roughly be substituted for another, but give different flavor, allowing users to easily get substitution options.
trim.488CF6C3-7379-44BF-BF69-D53393784DAB.MOV
trim.41A1CFB3-E9F8-4775-909C-97522CDA8E49.MOV
trim.E243F018-04EC-487A-9E94-EC960EA97812.MOV
trim.21C1388F-C457-4743-B212-77FF08D015E1.MOV