jdxi_editor.ui.editors.effects.common
Module: effects_editor
This module defines the EffectsEditor class, which provides a PySide6-based user interface for editing effects parameters on the Roland JD-Xi synthesizer. It extends SynthEditor and allows users to modify various effects settings, including Effect 1, Effect 2, Delay, and Reverb.
- Classes:
EffectsEditor: A QWidget subclass for managing and editing JD-Xi effect parameters.
- Dependencies:
os
logging
PySide6.QtWidgets (etc.)
PySide6.QtCore (Qt)
PySide6.QtGui (QPixmap)
jdxi_manager modules for MIDI and parameter handling
- Features:
Displays effects parameters with interactive controls.
Supports updating instrument images dynamically.
Sends MIDI messages to update effect settings in real-time.
Organizes effect parameters into categorized tabs.
AddressParameterEffect1.EFX1_PARAM_17, AddressParameterEffect1.EFX1_PARAM_18, AddressParameterEffect1.EFX1_PARAM_19, AddressParameterEffect1.EFX1_PARAM_20, AddressParameterEffect1.EFX1_PARAM_21, AddressParameterEffect1.EFX1_PARAM_22, AddressParameterEffect1.EFX1_PARAM_23, AddressParameterEffect1.EFX1_PARAM_24, AddressParameterEffect1.EFX1_PARAM_25, AddressParameterEffect1.EFX1_PARAM_26, AddressParameterEffect1.EFX1_PARAM_27, AddressParameterEffect1.EFX1_PARAM_28, AddressParameterEffect1.EFX1_PARAM_29, AddressParameterEffect1.EFX1_PARAM_30, AddressParameterEffect1.EFX1_PARAM_31,
AddressParameterEffect1.EFX2_PARAM_17, AddressParameterEffect1.EFX2_PARAM_18, AddressParameterEffect1.EFX2_PARAM_19, AddressParameterEffect1.EFX2_PARAM_20, AddressParameterEffect1.EFX2_PARAM_21, AddressParameterEffect1.EFX2_PARAM_22, AddressParameterEffect1.EFX2_PARAM_23, AddressParameterEffect1.EFX2_PARAM_24, AddressParameterEffect1.EFX2_PARAM_25, AddressParameterEffect1.EFX2_PARAM_26, AddressParameterEffect1.EFX2_PARAM_27, AddressParameterEffect1.EFX2_PARAM_28, AddressParameterEffect1.EFX2_PARAM_29, AddressParameterEffect1.EFX2_PARAM_30, AddressParameterEffect1.EFX2_PARAM_31,
Classes
Effects Editor Window |
Module Contents
- class jdxi_editor.ui.editors.effects.common.EffectsCommonEditor(midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper, preset_helper: jdxi_editor.ui.preset.helper.JDXiPresetHelper = None, parent=None)[source]
Bases:
jdxi_editor.ui.editors.synth.simple.BasicEditorEffects Editor Window
- showEvent(event: PySide6.QtGui.QShowEvent) None[source]
Request current settings from the instrument when the editor is shown.
- _apply_effect_tooltips() None[source]
Set tooltips for effect controls from EffectsData.effect_tooltips.
- update_flanger_rate_note_controls() None[source]
Update Flanger rate/note controls based on rate note switch.
- update_phaser_rate_note_controls() None[source]
Update Phaser rate/note controls based on rate note switch.
- update_efx1_labels(effect_type: int)[source]
Switch Effect 1 polymorphic stack to the page for the selected effect type.
- Parameters:
effect_type – int (0=Thru, 1=Distortion, 2=Fuzz, 3=Compressor, 4=Bit Crusher)
- update_efx2_labels(effect_type: int)[source]
Switch Effect 2 polymorphic stack to the page for the selected effect type.
- Parameters:
effect_type – int - SysEx value (0, 5, 6, 7, 8) or combo index (0-4)
- _build_effect1_common_layout_spec() jdxi_editor.ui.widgets.layout.WidgetLayoutSpec[source]
Common Effect 1 controls (Type, Level, sends, Output Assign).
- _build_effect1_layout_spec_for_type(effect_type: int) jdxi_editor.ui.widgets.layout.WidgetLayoutSpec[source]
Build layout spec for a specific Effect 1 type (polymorphic).
- _build_widgets_from_spec(spec: jdxi_editor.ui.widgets.layout.WidgetLayoutSpec) jdxi_editor.ui.widgets.group.WidgetGroups[source]
Build WidgetGroups from a layout spec (same paradigm as Arpeggiator).
- _wrap_section(title: str, content: jdxi_editor.ui.common.QWidget) PySide6.QtWidgets.QGroupBox[source]
Wrap a section in a QGroupBox for the 2-column grid layout.
- _create_effect1_section()[source]
Create Effect 1 section (polymorphic: stacked pages per effect type).
- _build_effect2_common_layout_spec() jdxi_editor.ui.widgets.layout.WidgetLayoutSpec[source]
Common Effect 2 controls (Type, Level, sends).
- _build_effect2_layout_spec_for_type(effect_type: int) jdxi_editor.ui.widgets.layout.WidgetLayoutSpec[source]
Build layout spec for a specific Effect 2 type (polymorphic).
- _create_effect2_section()[source]
Create Effect 2 section (polymorphic: stacked pages per effect type).
- _build_delay_layout_spec() jdxi_editor.ui.widgets.layout.WidgetLayoutSpec[source]
Build layout spec for Delay tab (spec-driven widgets).
- _update_delay_time_note_controls() None[source]
Enable Time [ms] or Note based on Time/Note mode switch.
- _build_reverb_layout_spec() jdxi_editor.ui.widgets.layout.WidgetLayoutSpec[source]
Build layout spec for Reverb tab (spec-driven widgets).
- _on_parameter_changed(param: picomidi.sysex.parameter.address.AddressParameter, value: int, address: jdxi_editor.midi.data.address.address.JDXiSysExAddress = None)[source]
Handle parameter value changes from UI controls.