jdxi_editor.ui.editors.drum.partial.wmt

This module defines the DrumWMTSection class, which provides a PySide6-based user interface for editing drum WMT parameters in the Roland JD-Xi synthesizer. It extends the QWidget base class and integrates MIDI communication for real-time parameter adjustments and preset management.

Key Features:

  • Provides a graphical editor for modifying drum WMT parameters, including wave selection, gain, FXM color, depth, tempo sync, coarse tune, fine tune, pan, random pan switch, alternate pan switch, velocity range lower, velocity range upper, velocity fade width lower, velocity fade width upper, and wave level.

Dependencies:

  • PySide6 (for UI components and event handling)

  • MIDIHelper (for handling MIDI communication)

  • PresetHandler (for managing synth presets)

  • Various custom enums and helper classes (AnalogParameter, AnalogCommonParameter, etc.)

Usage:

The DrumWMTSection class can be instantiated as part of a larger PySide6 application. It requires a MIDIHelper instance for proper communication with the synthesizer.

Example:

midi_helper = MIDIHelper() editor = DrumWMTSection(midi_helper) editor.show()

Classes

DrumWMTSection

Drum TVF Section for the JDXI Editor

Module Contents

class jdxi_editor.ui.editors.drum.partial.wmt.DrumWMTSection(controls: dict, midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper, address: jdxi_editor.midi.data.address.address.JDXiSysExAddress = None, on_parameter_changed: Callable = None)[source]

Bases: jdxi_editor.ui.widgets.editor.section_base.SectionBaseWidget

Drum TVF Section for the JDXI Editor

l_wave_combos[source]
r_wave_combos[source]
wmt_tab_widget = None[source]
controls[source]
midi_helper[source]
address = None[source]
_on_parameter_changed = None[source]

Handle parameter change event, convert digital value to MIDI value,

Parameters:
  • param – AddressParameter Parameter that was changed

  • display_value – int Display value from the UI control

Returns:

None

_setup_ui()[source]

Assemble section UI

setup_ui()[source]

setup UI

_create_wmt_layout(wmt_index: int) PySide6.QtWidgets.QHBoxLayout[source]

_create_wmt_layout

Parameters:

wmt_index – int

Returns:

QFormLayout

_create_wmt_controls_group(p: Callable[[Any], Any])[source]
_create_wave_combo_group(p: Callable[[Any], Any], wmt_index: int)[source]

create wave combo using SearchableFilterableComboBox

_create_fxm_group(p: Callable[[Any], Any])[source]

create fxm group

_create_wmt_pan_group(p: Callable[[Any], Any])[source]

create wmt pan

_create_adsr_widget(p: Callable[[Any], Any]) jdxi_editor.ui.widgets.wmt.envelope.WMTEnvelopeWidget[source]
_create_tuning_group(p: Callable[[Any], Any])[source]

Tuning Group

_on_wave_parameter_changed(param: jdxi_editor.midi.data.parameter.drum.partial.DrumPartialParam, value: int) None[source]

Handle wave parameter change.

This method is called when a wave combo box value changes. It sends the MIDI command with the correct value (original index, not filtered index).

The new SearchableFilterableComboBox widget maintains proper value mapping, so the value parameter is already the correct original index.

Parameters:
  • param – The parameter that changed

  • value – The original value (wave index in rm_waves)

_create_wmt1_layout()[source]
_create_wmt2_layout()[source]
_create_wmt3_layout()[source]
_create_wmt4_layout()[source]