Request- help needed - Alt Firmware for Plaits

Hi

I would like to change the navigation behavior when changing modes with the modes selections buttons.

I would find it a lot quicker to navigate if the left button would go down on the mode selections, and the right button always go up.

Sometimes when I’m changing the LPG behavior, I do a double press when releasing it, thus changing the mode of the module. Then you’ll have to scroll through every mode to get back to the one you where using. And sometimes if using it live, it’s not that great of an effect.

That’s why I guess it would be quicker if you just add to press on the other mode selection button twice, then back to the right mode. You still go through 2 modes, but it’s still better.

I went through the code, couldn’t find any relevant line to hack. Would it be in settings.cc or ui.cc? I don’t even know what’s the difference between the .cc and .h extensions

Thanks for any pointers

The actions for the two buttons are coded here:

So it would be something like:

if (switches_.released(Switch(0)) && !ignore_release_[0]) {
  RealignPots();
  patch_->engine = (patch_->engine - 1) % 16;
  SaveState();
}

if (switches_.released(Switch(1)) && !ignore_release_[1]) {
  RealignPots();
  patch_->engine = (patch_->engine + 1) % 16;
  SaveState();
}
2 Likes

ok thanks. I’ll try that.

hi, I’ve tried your code but it didn’t behave as I was expected.

modes selection button A would go down on the list, button B would go up (or vise versa), but button B wouldn’t switch to the “red” register anymore. so the navigation isn’t really quicker as you still have to scroll through all the modes.

could it make sense just to change the +1 to -1 in the code in the second paragraph? this would still change to the red register, but go up instead of down right?

if (switches_.released(Switch(0)) && !ignore_release_[0]) {
          RealignPots();
          if (patch_->engine >= 8) {
        patch_->engine = patch_->engine & 7;
      } else {
        patch_->engine = (patch_->engine + 1) % 8;
          }
          SaveState();
        }
  

        if (switches_.released(Switch(1)) && !ignore_release_[1]) {
          RealignPots();
          if (patch_->engine < 8) {
        patch_->engine = (patch_->engine & 7) + 8;
      } else {
        patch_->engine = 8 + ((patch_->engine - 1) % 8);
          }
          SaveState();
        }