jdxi_editor.ui.editors.digital.editor
Digital Synth Editor for the Roland JD-Xi.
This module provides the UI components for editing digital synth parameters on the Roland JD-Xi. The editor supports three partials (voices) with individual parameter control and common parameters that affect all partials.
- Classes:
- DigitalSynthEditor: Main editor class for digital synth parameters
Handles MIDI communication for parameter changes
Manages UI state for all digital synth controls
Provides preset loading and management
Supports real-time parameter updates via SysEx
- Features:
Three independent partial editors
Common parameter controls (portamento, unison, legato, etc.)
Preset management and loading
Real-time MIDI parameter updates
ADSR envelope controls for both amplitude and filter
Oscillator waveform selection
Partial enabling/disabling and selection
- Dependencies:
PySide6 for UI components
qtawesome for icons
Custom MIDI handling classes
Digital synth parameter definitions
Classes
class for Digital Synth Editor containing 3 partials |
|
class for Digital Synth Editor containing 3 partials |
|
class for Digital Synth Editor containing 3 partials |
Module Contents
- class jdxi_editor.ui.editors.digital.editor.DigitalSynthEditor(midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper | None = None, preset_helper: jdxi_editor.jdxi.preset.helper.JDXiPresetHelper = None, synth_number: int = 1, parent: PySide6.QtWidgets.QWidget = None)[source]
Bases:
jdxi_editor.ui.editors.synth.editor.SynthEditorclass for Digital Synth Editor containing 3 partials
- controls: Dict[jdxi_editor.midi.data.parameter.digital.DigitalPartialParam | jdxi_editor.midi.data.parameter.digital.DigitalCommonParam, PySide6.QtWidgets.QWidget][source]
- _create_partial_tab_widget(container_layout: PySide6.QtWidgets.QVBoxLayout, midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper) None[source]
Create the partial tab widget for the digital synth editor.
- Parameters:
container_layout – QVBoxLayout for the main container
midi_helper – MiodiIOHelper instance for MIDI communication
- Returns:
None
- _on_partial_state_changed(partial: jdxi_editor.midi.data.parameter.digital.DigitalPartialParam, enabled: bool, selected: bool) None[source]
Handle the state change of a partial (enabled/disabled and selected/unselected).
- Parameters:
partial – The partial to modify
enabled – Whether the partial is enabled (ON/OFF)
selected – Whether the partial is selected
- Returns:
None
- set_partial_state(partial: jdxi_editor.midi.data.parameter.digital.DigitalPartialParam, enabled: bool = True, selected: bool = True) bool | None[source]
Set the state of a partial (enabled/disabled and selected/unselected).
- Parameters:
partial – The partial to modify
enabled – Whether the partial is enabled (ON/OFF)
selected – Whether the partial is selected
- Returns:
True if successful, False otherwise
- _initialize_partial_states()[source]
Initialize partial states with defaults Default: Partial 1 enabled and selected, others disabled
- _handle_special_params(partial_no: int, param: picomidi.sysex.parameter.address.AddressParameter, value: int) None[source]
Handle special parameters that require additional UI updates.
- Parameters:
partial_no – int
param – AddressParameter
value – int
- Returns:
None
- _update_partial_controls(partial_no: int, sysex_data: dict, successes: list, failures: list) None[source]
Apply updates to the UI components based on the received SysEx data.
- Parameters:
partial_no – int
sysex_data – dict
successes – list
failures – list
- Returns:
None
- _update_filter_state(partial_no: int, value: int) None[source]
Update the filter state of a partial based on the given value.
- Parameters:
partial_no – int
value – int
- Returns:
None
- _update_common_controls(partial_number: int, sysex_data: Dict, successes: list = None, failures: list = None) None[source]
Update the UI components for tone common and modify parameters.
- Parameters:
partial_number – int partial number
sysex_data – Dictionary containing SysEx data
successes – List of successful parameters
failures – List of failed parameters
- Returns:
None
- _update_modify_controls(partial_number: int, sysex_data: dict, successes: list = None, failures: list = None) None[source]
Update the UI components for tone common and modify parameters.
- Parameters:
partial_number – int partial number
sysex_data – dict Dictionary containing SysEx data
successes – list List of successful parameters
failures – list List of failed parameters
- Returns:
None
- _update_partial_adsr_widgets(partial_no: int, param: jdxi_editor.midi.data.parameter.digital.DigitalPartialParam, midi_value: int, successes: list = None, failures: list = None)[source]
Update the ADSR widget for a specific partial based on the parameter and value.
- Parameters:
partial_no – int Partial number
param – AddressParameter address
midi_value – int value
- Returns:
None
- _update_partial_pitch_env_widgets(partial_no: int, param: jdxi_editor.midi.data.parameter.digital.DigitalPartialParam, midi_value: int, successes: list = None, failures: list = None)[source]
Update the Pitch Env widget for a specific partial based on the parameter and value.
- Parameters:
partial_no – int Partial number
param – AddressParameter address
midi_value – int value
successes – list = None,
failures – list = None,
- Returns:
None
- _update_pulse_width_widgets(partial_no: int, param: jdxi_editor.midi.data.parameter.digital.DigitalPartialParam, midi_value: int, successes: list = None, failures: list = None)[source]
Update the Pitch Env widget for a specific partial based on the parameter and value.
- Parameters:
partial_no – int Partial number
param – AddressParameter address
midi_value – int value
successes – list = None,
failures – list = None,
- Returns:
None
- _update_partial_selection_switch(param: picomidi.sysex.parameter.address.AddressParameter, value: int, successes: list, failures: list) None[source]
Update the partial selection switches based on parameter and value.
- Parameters:
param – AddressParameter
value – int
successes – list
failures – list
- Returns:
None
- _update_partial_selected_state(param: picomidi.sysex.parameter.address.AddressParameter, value: int, successes: list, failures: list) None[source]
Update the partial selected state based on parameter and value.
- Parameters:
param – AddressParameter
value – int
successes – list
failures – list
debug – bool
- Returns:
None
- class jdxi_editor.ui.editors.digital.editor.DigitalSynth2Editor(midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper | None = None, preset_helper: jdxi_editor.jdxi.preset.helper.JDXiPresetHelper = None, synth_number: int = 2, parent: PySide6.QtWidgets.QWidget = None)[source]
Bases:
DigitalSynthEditorclass for Digital Synth Editor containing 3 partials
- class jdxi_editor.ui.editors.digital.editor.DigitalSynth3Editor(midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper | None = None, preset_helper: jdxi_editor.jdxi.preset.helper.JDXiPresetHelper = None, synth_number: int = 3, parent: PySide6.QtWidgets.QWidget = None)[source]
Bases:
DigitalSynthEditorclass for Digital Synth Editor containing 3 partials