feat: legible ReaSampler 9000 editor — bigger knobs, ms time constants, per-ring double-click reset, and an antialiased draw pass
This commit is contained in:
@@ -238,11 +238,11 @@ static void testAmpGroupWidthSurvivesAGateTriggerFlip() {
|
||||
|
||||
static void testWrappedDeckHeightAtTheEditorFloorWidth() {
|
||||
const std::vector<DeckGroupDesc> g = sampleDeckGroups(PlayMode::Gate);
|
||||
// At the floor (== default) 840 the deck takes three rows: PITCH + PITCH ENV + FILTER fill
|
||||
// the first (818 of the 824 available — six px of headroom, so one more FILTER cell would
|
||||
// wrap the group and reflow everything under it), FILTER ENV + AMP + VELOCITY the second,
|
||||
// VOICE + MASTER the third. Two rows cannot hold the eight groups in ANY order at this
|
||||
// width: 1666 px of group plus 72 px of gaps against a 1648 px two-row capacity.
|
||||
// At the floor (== default) 980 the deck takes three rows: PITCH + PITCH ENV + FILTER fill
|
||||
// the first (950 of the 964 available — fourteen px of headroom, so one more FILTER cell
|
||||
// would wrap the group and reflow everything under it), FILTER ENV + AMP + VELOCITY the
|
||||
// second, VOICE + MASTER the third. Two rows cannot hold the eight groups in ANY order at
|
||||
// this width: 1978 px of group plus 72 px of gaps against a 1928 px two-row capacity.
|
||||
CHECK(deckRowCount(g, kAvailAtMinWidth) == 3);
|
||||
CHECK(deckHeight(g, kAvailAtMinWidth) == 3 * kDeckGroupH + 2 * kDeckRowGap);
|
||||
|
||||
@@ -258,7 +258,7 @@ static void testWrappedDeckHeightAtTheEditorFloorWidth() {
|
||||
|
||||
// The guard the raised floor exists to provide: at the smallest window the host can produce,
|
||||
// the deck band still lands inside the client area AND the waveform still gets its two-lane
|
||||
// floor. Growing the deck past what 620 px can hold fails HERE instead of silently pushing
|
||||
// floor. Growing the deck past what the floor height can hold fails HERE instead of silently pushing
|
||||
// FILTER ENV / AMP / VOICE / MASTER off-screen, where there is no scroll to reach them.
|
||||
static void testDeckFitsInsideTheEnforcedMinimumWindow() {
|
||||
for (PlayMode mode : {PlayMode::Gate, PlayMode::Trigger}) {
|
||||
@@ -574,9 +574,9 @@ static void testNoFaceLeavesSlackWhereItsDroppedControlsWere() {
|
||||
static void testGateModeWidthsAndRowAssignmentAreUnchanged() {
|
||||
const std::vector<DeckGroupDesc> g = sampleDeckGroups(PlayMode::Gate);
|
||||
const struct { int id; int width; int row; } want[] = {
|
||||
{kGroupPitch, 150, 0}, {kGroupPitchEnv, 204, 0}, {kGroupFilter, 440, 0},
|
||||
{kGroupFilterEnv, 252, 1}, {kGroupAmpEnv, 252, 1}, {kGroupVelocity, 156, 1},
|
||||
{kGroupVoice, 152, 2}, {kGroupMaster, 60, 2},
|
||||
{kGroupPitch, 150, 0}, {kGroupPitchEnv, 252, 0}, {kGroupFilter, 524, 0},
|
||||
{kGroupFilterEnv, 312, 1}, {kGroupAmpEnv, 312, 1}, {kGroupVelocity, 192, 1},
|
||||
{kGroupVoice, 164, 2}, {kGroupMaster, 72, 2},
|
||||
};
|
||||
CHECK(g.size() == sizeof(want) / sizeof(want[0]));
|
||||
const DeckLayout dl = layoutDeck(g, kPad, 0, kAvailAtMinWidth);
|
||||
|
||||
Reference in New Issue
Block a user