diff --git a/gui/preset_controls.py b/gui/preset_controls.py index cc044e6..01a5755 100644 --- a/gui/preset_controls.py +++ b/gui/preset_controls.py @@ -375,20 +375,26 @@ class PresetControls(QWidget): arp_settings = preset.get("arpeggiator", {}) # Only apply settings that aren't overridden - if not self._is_parameter_overridden('root_note'): + # Check both root_note and octave overrides for root note changes + if not self._is_parameter_overridden('root_note') and not self._is_parameter_overridden('octave'): self.arpeggiator.set_root_note(arp_settings.get("root_note", 60)) + print(f"DEBUG: Applied root_note: {arp_settings.get('root_note', 60)}") + else: + override_type = "root_note" if self._is_parameter_overridden('root_note') else "octave" + print(f"DEBUG: Skipping root_note - {override_type} parameter is overridden") if not self._is_parameter_overridden('scale'): self.arpeggiator.set_scale(arp_settings.get("scale", "major")) if not self._is_parameter_overridden('scale_note_start'): self.arpeggiator.set_scale_note_start(arp_settings.get("scale_note_start", 0)) if not self._is_parameter_overridden('pattern_type'): self.arpeggiator.set_pattern_type(arp_settings.get("pattern_type", "up")) + # Check for octave override when changing octave_range if not self._is_parameter_overridden('octave'): octave_range = arp_settings.get("octave_range", 1) print(f"DEBUG: Applying octave_range: {octave_range}") self.arpeggiator.set_octave_range(octave_range) else: - print(f"DEBUG: Skipping octave_range - parameter is overridden") + print(f"DEBUG: Skipping octave_range - octave parameter is overridden") if not self._is_parameter_overridden('note_speed'): self.arpeggiator.set_note_speed(arp_settings.get("note_speed", "1/8")) if not self._is_parameter_overridden('gate'):