jdxi_editor.ui.editors.drum.partial.tvf

This module defines the DrumTVFSection class, which provides a PySide6-based user interface for editing drum TVF 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 TVF parameters, including filter type, cutoff frequency, cutoff velocity curve, env depth, env velocity curve type, env velocity sens, env time1 velocity sens, env time4 velocity sens, env time1, env time2, env time3, env time4, env level0, env level1, env level2, env level3, and env level4.

  • Includes a visual envelope plot showing the 5-level, 4-time-segment TVF envelope curve.

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 DrumTVFSection 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 = MidiIOHelper() editor = DrumTVFSection(midi_helper) editor.show()

Classes

DrumTVFSection

Drum TVF Section for the JDXI Editor

Module Contents

class jdxi_editor.ui.editors.drum.partial.tvf.DrumTVFSection(controls: dict[jdxi_editor.midi.data.parameter.drum.partial.DrumPartialParam, jdxi_editor.ui.common.QWidget], midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper)[source]

Bases: jdxi_editor.ui.editors.drum.partial.base.DrumBaseSection

Drum TVF Section for the JDXI Editor

envelope_changed[source]
spec: jdxi_editor.ui.editors.base.layout.spec.LayoutSpec[source]
envelope[source]
_build_layout_spec() jdxi_editor.ui.editors.base.layout.spec.LayoutSpec[source]

Build drum TVF layout spec (controls list for widget creation).

setup_ui()[source]

setup UI

_create_tvf_env_group() PySide6.QtWidgets.QGroupBox[source]

Envelope controls group

_create_tvf_basic_group() PySide6.QtWidgets.QGroupBox[source]

Basic TVF controls group - widgets from SLIDER_GROUPS[‘controls’] in build_widgets().

_create_tvf_plot()[source]
_update_envelope(key: str, value: int, param: jdxi_editor.midi.data.parameter.drum.partial.DrumPartialParam = None) None[source]

Update envelope value and refresh plot

Parameters:
  • key – str Envelope parameter key

  • value – int Display value from slider

  • param – AddressParameterDrumPartial Parameter object for conversion