diff --git a/modules/foleys_gui_magic/General/foleys_MagicJUCEFactories.cpp b/modules/foleys_gui_magic/General/foleys_MagicJUCEFactories.cpp index 3228c91..d0a41bd 100644 --- a/modules/foleys_gui_magic/General/foleys_MagicJUCEFactories.cpp +++ b/modules/foleys_gui_magic/General/foleys_MagicJUCEFactories.cpp @@ -706,6 +706,8 @@ const juce::Identifier XYDraggerItem::pJumpToClick { "xy-jump-to-click" }; class KeyboardItem : public GuiItem { public: + static constexpr auto* pBaseOctave = "keyboard-base-octave"; + FOLEYS_DECLARE_GUI_FACTORY (KeyboardItem) KeyboardItem (MagicGUIBuilder& builder, const juce::ValueTree& node) @@ -724,6 +726,13 @@ public: addAndMakeVisible (keyboard); } + std::vector getSettableProperties() const override + { + std::vector props; + props.push_back ({ configNode, pBaseOctave, SettableProperty::Number, 3, {} }); + return props; + } + void update() override { auto size = getProperty ("key-width"); @@ -736,6 +745,10 @@ public: keyboard.setOrientation (juce::MidiKeyboardComponent::verticalKeyboardFacingRight); else keyboard.setOrientation (juce::MidiKeyboardComponent::horizontalKeyboard); + + auto baseOctave = getProperty (pBaseOctave); + if (!baseOctave.isVoid()) + keyboard.setKeyPressBaseOctave (baseOctave); } juce::Component* getWrappedComponent() override