jdxi_editor.ui.editors.digital.partial.editor

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

DigitalPartialEditor

Editor for address single partial

Module Contents

class jdxi_editor.ui.editors.digital.partial.editor.DigitalPartialEditor(midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper | None = None, synth_number: int = 1, partial_number: int = 1, preset_type: jdxi_editor.jdxi.synth.type.JDXiSynth = None, parent: PySide6.QtWidgets.QWidget | None = None)[source]

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

Editor for address single partial

filter_mode_switch = None[source]

Initialize the DigitalPartialEditor

Parameters:
  • midi_helper – MidiIOHelper

  • synth_number – int

  • partial_number – int

  • preset_type – JDXiSynth

  • parent – QWidget

partial_address_default[source]
partial_address_map[source]
bipolar_parameters[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, PySide6.QtWidgets.QWidget][source]
tab_widget[source]
oscillator_tab[source]
filter_tab[source]
amp_tab[source]
lfo_tab[source]
mod_lfo_tab[source]
updating_from_spinbox = False[source]
__str__()[source]
__repr__()[source]
update_filter_controls_state(mode: int)[source]

Update filter controls enabled state based on mode

Parameters:

mode – int

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

Handle waveform button clicks

Parameters:

waveform – DigitalOscWave