Push2: Implement special "sequential" mode for in-key note grids

This makes "sequential" more or less mean an octave vertical interval,
but only for in-key mode.  For chromatic mode, "sequential" is still just a
naive wrap-around layout for every note.
This commit is contained in:
David Robillard 2021-06-19 16:34:19 -04:00 committed by Paul Davis
parent a6cd0a3f6e
commit 7883695ba9
2 changed files with 12 additions and 9 deletions

View file

@ -79,7 +79,7 @@ using namespace Gtkmm2ext;
#define PUSH2 0x1967
static int
row_interval_semitones (const Push2::RowInterval row_interval)
row_interval_semitones (const Push2::RowInterval row_interval, const bool inkey)
{
switch (row_interval) {
case Push2::Third:
@ -89,7 +89,7 @@ row_interval_semitones (const Push2::RowInterval row_interval)
case Push2::Fifth:
return 7;
case Push2::Sequential:
return 8;
return inkey ? 12 : 8;
}
return 5;
@ -1531,7 +1531,7 @@ Push2::set_pad_scale (const int scale_root,
// Call the appropriate method to set up active pads
const int vertical_semitones = row_interval_semitones(row_interval);
const int vertical_semitones = row_interval_semitones(row_interval, inkey);
if (inkey) {
set_pad_scale_in_key(scale_root, octave, mode, origin, vertical_semitones);
} else {