jdxi_editor.ui.editors.synth.controller

Classes

PartialController

A mixin for managing partial controls in the digital synth editor.

Module Contents

class jdxi_editor.ui.editors.synth.controller.PartialController(partial_count: int = 3, parent: PySide6.QtCore.QObject | None = None)[source]

Bases: PySide6.QtCore.QObject

A mixin for managing partial controls in the digital synth editor. Provides methods for enabling/disabling partials, updating parameters, and handling state changes for partials.

partial_states[source]
partial_controls: Dict[int, dict][source]
enable_partial(partial_number: int, enabled: bool = True) None[source]

Enable or disable a specific partial.

Parameters:
  • partial_number – The partial number to enable/disable.

  • enabled – True to enable, False to disable.

select_partial(partial_number: int) None[source]

Select a specific partial. Deselects others.

Parameters:

partial_number – The partial number to select.

update_partial_parameter(partial_number: int, param: str, value: int) None[source]

Update a parameter for a specific partial.

Parameters:
  • partial_number – The partial number.

  • param – The parameter name to update.

  • value – The value to set.

_update_partial_state_ui(partial_number: int) None[source]

Update the UI for the state of a specific partial.

Parameters:

partial_number – The partial number to update.

_log_partial_parameter_change(partial_number: int, param: str, value: int) None[source]

Log a parameter change for a specific partial.

Parameters:
  • partial_number – The partial number.

  • param – The parameter name.

  • value – The new value.

_on_partial_state_changed(partial: jdxi_editor.midi.data.parameter.digital.partial.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.partial.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

_apply_partial_ui_updates(partial_no: int, sysex_data: dict) None[source]

Apply updates to the UI components based on the received SysEx data.

Parameters:
  • partial_no – int

  • sysex_data – dict

Returns:

None

_update_waveform_buttons(partial_no, param_value)[source]