focus
This commit is contained in:
parent
d095688cd9
commit
972d3e7961
3 changed files with 45 additions and 1 deletions
|
|
@ -32,6 +32,26 @@ public:
|
|||
static constexpr float frequencies[nFREQs] = {100, 200, 400,800, 400, 800, 100,1600,100,400,100,50,1600,200,100,800,400};
|
||||
static constexpr size_t nVoiceSpaces=7;
|
||||
|
||||
// Focus group bitmasks
|
||||
static constexpr uint32_t kFocusSeq = (1u << 0);
|
||||
static constexpr uint32_t kFocusSyn = (1u << 1);
|
||||
|
||||
// Per-param group membership: params 0-13 = sequencer, 14-63 = synthesis
|
||||
static constexpr std::array<uint32_t, NPARAMS> kParamGroupMask = {
|
||||
// 0-13: sequencer (14 entries)
|
||||
kFocusSeq, kFocusSeq, kFocusSeq, kFocusSeq, kFocusSeq, kFocusSeq, kFocusSeq,
|
||||
kFocusSeq, kFocusSeq, kFocusSeq, kFocusSeq, kFocusSeq, kFocusSeq, kFocusSeq,
|
||||
// 14-63: synthesis (50 entries)
|
||||
kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn,
|
||||
kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn,
|
||||
kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn,
|
||||
kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn,
|
||||
kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn,
|
||||
kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn,
|
||||
kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn, kFocusSyn,
|
||||
kFocusSyn,
|
||||
};
|
||||
|
||||
std::array<VoiceSpace<NPARAMS>, nVoiceSpaces> voiceSpaces;
|
||||
|
||||
VoiceSpaceFn<NPARAMS> currentVoiceSpace;
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@
|
|||
|
||||
#include "../src/memllib/interface/MIDIInOut.hpp"
|
||||
#include "../src/memllib/hardware/memlnaut/display/XYPadView.hpp"
|
||||
#include "../src/memllib/hardware/memlnaut/display/BlockSelectView.hpp"
|
||||
#include "../src/memllib/hardware/memlnaut/MEMLNaut.hpp"
|
||||
#include "AudioApps/MEMLCeliumAudioApp.hpp"
|
||||
#include "../src/memllib/examples/InterfaceRL.hpp"
|
||||
#include "../src/memllib/audio/FocusManager.hpp"
|
||||
#include "../src/memllib/PicoDefs.hpp"
|
||||
#include "MEMLNautMode.hpp"
|
||||
#include <memory>
|
||||
|
|
@ -22,6 +24,8 @@ public:
|
|||
|
||||
bool sequencerPlaying = false;
|
||||
|
||||
FocusManager<MEMLCeliumAudioApp<>::kN_Params, 2> focusManager;
|
||||
|
||||
|
||||
void setupInterface() {
|
||||
interface.setup(kN_InputParams, MEMLCeliumAudioApp<>::kN_Params);
|
||||
|
|
@ -29,6 +33,13 @@ public:
|
|||
interface.setModeInfo("memlcelium", "MEMLCelium");
|
||||
interfacePtr = make_non_owning(interface);
|
||||
|
||||
focusManager.setGroupName(0, "Seq");
|
||||
focusManager.setGroupName(1, "Synth");
|
||||
focusManager.setParamGroups(MEMLCeliumAudioApp<>::kParamGroupMask);
|
||||
interface.paramTransformHook = [this](std::vector<float>& p) {
|
||||
focusManager.applyInPlace(p);
|
||||
};
|
||||
|
||||
MEMLNaut::Instance()->setTogA2Callback([this](bool state) { // scr_ref no longer captured directly
|
||||
Serial.println(state ? "TogA2 ON" : "TogA2 OFF");
|
||||
if (state) {
|
||||
|
|
@ -76,6 +87,19 @@ public:
|
|||
}
|
||||
|
||||
void addViews() {
|
||||
// Focus screen — select which parameter groups are live
|
||||
auto focusView = std::make_shared<BlockSelectView>(
|
||||
"Focus", TFT_CYAN, 2, 120, 70, TFT_BLACK,
|
||||
std::vector<String>{"Seq", "Synth"}, TFT_DARKGREY, 2);
|
||||
|
||||
focusView->SetOnSelectCallback([this, focusView](size_t id) {
|
||||
size_t groupIdx = id - 1;
|
||||
uint32_t newMask = focusManager.getSelectedMask() ^ (1u << groupIdx);
|
||||
focusManager.setFocus(newMask, interface.getLastAction());
|
||||
focusView->toggleAlt(groupIdx);
|
||||
});
|
||||
MEMLNaut::Instance()->disp->InsertViewAfter(interface.rlStatsView, focusView);
|
||||
|
||||
std::shared_ptr<VoiceSpaceSelectView> voiceSpaceSelectView;
|
||||
voiceSpaceSelectView = std::make_shared<VoiceSpaceSelectView>("Voice Spaces");
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 6bf7d2c362541047f02fdbf2f6dc359873bcd51f
|
||||
Subproject commit 188496d4621cec7008d83404b80578597b67414b
|
||||
Loading…
Reference in a new issue