jdxi_editor.ui.editors.base.panel ================================= .. py:module:: jdxi_editor.ui.editors.base.panel .. autoapi-nested-parse:: 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 ------- .. autoapisummary:: jdxi_editor.ui.editors.base.panel.BasePartialPanel Module Contents --------------- .. py:class:: 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) Bases: :py:obj:`jdxi_editor.ui.editors.synth.partial.PartialPanel` Editor for a single Digital Synth partial .. py:attribute:: SYNTH_MAP .. py:attribute:: PARTIAL_ADDRESS_MAP .. py:attribute:: BIPOLAR_PARAMETERS .. py:attribute:: lfo_shape_buttons .. py:attribute:: mod_lfo_shape_buttons .. py:attribute:: oscillator_tab :value: None .. py:attribute:: filter_tab :value: None .. py:attribute:: midi_helper :value: None .. py:attribute:: partial_number :value: 1 .. py:attribute:: preset_type :value: None .. py:attribute:: controls :type: dict[jdxi_editor.midi.data.parameter.digital.partial.DigitalPartialParam | jdxi_editor.midi.data.parameter.digital.DigitalCommonParam, jdxi_editor.ui.common.QWidget] .. py:method:: _resolve_synth_data(synth_number: int) -> None resolve synth data .. py:method:: _resolve_partial_name() -> None .. py:method:: _init_state() -> None .. py:property:: lfo_depth_controls :type: dict 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. :return: dict mapping LFO depth parameters to their control widgets .. py:method:: update_filter_controls_state(mode: int) -> None update filter controls state .. py:method:: _on_waveform_selected(waveform: jdxi_editor.midi.data.digital.oscillator.DigitalWaveOsc) -> None on waveform selected (harmonised Theme API) .. py:method:: __str__() -> str .. py:attribute:: __repr__