jdxi_editor.jdxi.preset.helper

This module defines the PresetHandler class, which extends PresetHelper to manage preset selection and navigation for a MIDI-enabled synthesizer.

Classes:

  • PresetHandler: Handles preset loading, switching, and signaling for UI updates.

Dependencies:

  • PySide6.QtCore (Signal, QObject) for event-driven UI interaction.

  • jdxi_manager.midi.data.presets.type.PresetType for managing preset types.

  • jdxi_manager.midi.preset.loader.PresetLoader as the base class for preset loading.

Functionality:

  • Loads presets via MIDI.

  • Emits signals when a preset changes (preset_changed).

  • Supports navigation through available presets (next_tone, previous_tone).

  • Retrieves current preset details (get_current_preset).

Usage:

This class is typically used within a larger MIDI control application to handle preset changes and communicate them to the UI and MIDI engine.

Classes

JDXiPresetHelper

Preset Loading Class

Functions

create_scroll_area(→ PySide6.QtWidgets.QScrollArea)

setup scroll area

create_scroll_container(...)

Module Contents

class jdxi_editor.jdxi.preset.helper.JDXiPresetHelper(midi_helper, presets, channel=1, preset_type=JDXiSynth.DIGITAL_SYNTH_1)[source]

Bases: PySide6.QtCore.QObject

Preset Loading Class

update_display[source]
preset_changed[source]
presets[source]
channel = 1[source]
type = 'DIGITAL_SYNTH_1'[source]
preset_number = 1[source]
current_preset_zero_indexed = 0[source]
midi_requests[source]
midi_helper[source]
_initialized = True[source]
get_current_preset()[source]

Get the current preset details.

get_available_presets()[source]

Get the available presets.

load_preset_by_program_change(preset_index, synth_type=JDXiSynth.DIGITAL_SYNTH_1)[source]

Load a preset using program change.

load_preset(preset_data: jdxi_editor.jdxi.preset.button.JDXiPresetButtonData)[source]

Load the preset based on the provided data

Parameters:

preset_data – JDXIPresetData

Returns:

None

data_request() None[source]

Request the current value of the NRPN parameter from the device.

send_program_change(channel: int, msb: int, lsb: int, pc: int) None[source]

Send a Bank Select and Program Change message

Parameters:
  • channel – int

  • msb – int

  • lsb – int

  • pc – int

Returns:

None

jdxi_editor.jdxi.preset.helper.create_scroll_area() PySide6.QtWidgets.QScrollArea[source]

setup scroll area

jdxi_editor.jdxi.preset.helper.create_scroll_container() tuple[PySide6.QtWidgets.QWidget, PySide6.QtWidgets.QVBoxLayout][source]