jdxi_editor.ui.editors.base.panel

Digital Partial Editor Module

This module defines the DigitalPartialEditor class, a specialized editor for managing a single digital partial in a synthesizer. It extends the PartialEditor class, providing a structured UI to control and modify parameters related to oscillators, filters, amplifiers, and modulation sources.

Classes:
  • DigitalPartialEditor: A QWidget subclass that allows users to modify digital synthesis parameters using a tabbed interface with various control sections.

Features:
  • Supports editing a single partial within a digital synth part.

  • Provides categorized parameter sections: Oscillator, Filter, Amp, LFO, and Mod LFO.

  • Integrates with MIDIHelper for real-time MIDI parameter updates.

  • Uses icons for waveform selection, filter controls, and modulation settings.

  • Stores UI controls for easy access and interaction.

Usage:

```python from PySide6.QtWidgets import QApplication from midi_helper import MIDIHelper

app = QApplication([]) midi_helper = MIDIHelper() editor = DigitalPartialEditor(midi_helper=midi_helper) editor.show() app.exec() ```

Dependencies:
  • PySide6 (for UI components)

  • MIDIHelper (for MIDI communication)

  • DigitalParameter, DigitalCommonParameter (for parameter management)

  • WaveformButton (for waveform selection UI)

  • QIcons generated from waveform base64 data

Classes

BasePartialPanel

Editor for a single Digital Synth partial

Module Contents

class jdxi_editor.ui.editors.base.panel.BasePartialPanel(midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper | None = None, synth_number: int = 1, partial_number: int = 1, preset_type: jdxi_editor.core.synth.type.JDXiSynth | None = None, parent: jdxi_editor.ui.common.QWidget | None = None)[source]

Bases: jdxi_editor.ui.editors.synth.partial.PartialPanel

Editor for a single Digital Synth partial

SYNTH_MAP[source]
PARTIAL_ADDRESS_MAP[source]
BIPOLAR_PARAMETERS[source]
lfo_shape_buttons[source]
mod_lfo_shape_buttons[source]
oscillator_tab = None[source]
filter_tab = None[source]
midi_helper = None[source]
partial_number = 1[source]
preset_type = None[source]
controls: dict[jdxi_editor.midi.data.parameter.digital.partial.DigitalPartialParam | jdxi_editor.midi.data.parameter.digital.DigitalCommonParam, jdxi_editor.ui.common.QWidget][source]
_resolve_synth_data(synth_number: int) None[source]

resolve synth data

_resolve_partial_name() None[source]
_init_state() None[source]
property lfo_depth_controls: dict[source]

Get a dictionary of LFO depth controls filtered from the main controls dictionary. This provides compatibility with the base class’s _update_partial_lfo_depth method.

Returns:

dict mapping LFO depth parameters to their control widgets

update_filter_controls_state(mode: int) None[source]

update filter controls state

_on_waveform_selected(waveform: jdxi_editor.midi.data.digital.oscillator.DigitalWaveOsc) None[source]

on waveform selected (harmonised Theme API)

__str__() str[source]
__repr__[source]