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 (QWidget, QVBoxLayout, 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

EffectsCommonEditor

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.jdxi.preset.helper.JDXiPresetHelper = None, parent=None)[source]

Bases: jdxi_editor.ui.editors.synth.simple.BasicEditor

Effects Editor Window

tab_widget = None[source]
midi_helper[source]
preset_helper = None[source]
EFX1_PARAMETERS[source]
EFX2_PARAMETERS[source]
efx1_param_labels[source]
efx2_param_labels[source]
midi_requests = [][source]
delay_params = None[source]
efx2_additional_params[source]
default_image = 'effects.png'[source]
instrument_icon_folder = 'effects'[source]
title_label[source]
image_label[source]
controls: Dict[jdxi_editor.midi.data.parameter.effects.effects.ReverbParam | jdxi_editor.midi.data.parameter.effects.common.AddressParameterEffectCommon | jdxi_editor.midi.data.parameter.effects.effects.Effect1Param | jdxi_editor.midi.data.parameter.effects.effects.Effect2Param, PySide6.QtWidgets.QWidget][source]
tabs[source]
address[source]
sysex_composer[source]
showEvent(event: PySide6.QtGui.QShowEvent) None[source]

Override showEvent to request current settings from the instrument when the editor is shown. This ensures the sliders pick up the current settings from the instrument, similar to Digital 1, Digital 2, and Analog synth editors.

Parameters:

event – QShowEvent

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 Flanger rate/note controls based on rate note switch.

_update_efx1_labels(effect_type: int)[source]

Update Effect 1 parameter labels based on selected effect type.

Parameters:

effect_type – int

Returns:

_update_efx2_labels(effect_type: int)[source]

Update Effect 2 parameter labels based on selected effect type.

Parameters:

effect_type – int

_create_effect1_section()[source]

Create Effect 1 section

_create_effect2_section()[source]

Create Effect 2 section

_create_delay_tab()[source]

Create Delay tab with parameters

_create_reverb_section()[source]

Create Reverb section

_on_parameter_changed(param: picomidi.sysex.parameter.address.AddressParameter, value: int, address: jdxi_editor.midi.data.address.address.RolandSysExAddress = None)[source]

Handle parameter value changes from UI controls.

send_midi_parameter(param: picomidi.sysex.parameter.address.AddressParameter, value: int) bool[source]

Send MIDI parameter with error handling

Parameters:
  • param – AddressParameter

  • value – int value

Returns:

bool True on success, False otherwise

_dispatch_sysex_to_area(json_sysex_data: str) None[source]

Dispatch SysEx data to update effects controls.

Parameters:

json_sysex_data – str JSON string containing SysEx data

Returns:

None