jdxi_editor.ui.editors.io.preset

PresetEditor Module

This module defines the ProgramEditor class, a PySide6-based GUI for managing and selecting MIDI programs.

It allows users to browse, filter, and load programs based on bank, genre, and program number.

The class also facilitates MIDI integration by sending Program Change (PC) and Bank Select (CC#0, CC#32) messages.

Key Features: - Graphical UI for selecting and managing MIDI programs. - Filtering options based on bank and genre. - MIDI integration for program selection and loading. - Image display for program categories. - Program list population based on predefined program data.

Classes:
ProgramEditor(QMainWindow)

A main window class for handling MIDI program selection and management.

Signals:
program_changed (int, str, int)

Emitted when a program selection changes. Parameters: - MIDI channel (int) - Preset name (str) - Program number (int)

Dependencies: - PySide6.QtWidgets - PySide6.QtCore - MIDIHelper for MIDI message handling - PresetHandler for managing program presets - JDXiProgramList.PROGRAM_LIST for predefined program data

Classes

PresetEditor

Program Editor Window

Module Contents

class jdxi_editor.ui.editors.io.preset.PresetEditor(midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper | None = None, parent: PySide6.QtWidgets.QWidget | None = None, preset_helper: jdxi_editor.jdxi.preset.helper.JDXiPresetHelper = None)[source]

Bases: jdxi_editor.ui.editors.synth.simple.BasicEditor

Program Editor Window

program_changed[source]
digital_preset_type_combo = None[source]
midi_helper = None[source]
preset_helper = None[source]
midi_channel[source]
default_image = 'presets.png'[source]
instrument_icon_folder = 'presets'[source]
midi_requests[source]
layout = None[source]
genre_label = None[source]
preset_combo_box = None[source]
load_button = None[source]
save_button = None[source]
image_label = None[source]
title_label = None[source]
bank_label = None[source]
digital_preset_label = None[source]
category_combo_box = None[source]
preset_type = None[source]
synth_label_map[source]
presets[source]
setup_ui()[source]

set up UI elements

_create_preset_selection_group() PySide6.QtWidgets.QGroupBox[source]

create_preset_selection_group

Returns:

QGroupBox

on_preset_type_changed(index: int) None[source]

Handle preset type selection change.

update_tone_name_for_synth(tone_name: str, synth_type: str) None[source]

Update the tone name.

Parameters:
  • tone_name – str

  • synth_type – str

load_preset_by_program_change(preset_index: int) None[source]

Load a preset by program change.

Parameters:

preset_index – int

_populate_presets(search_text: str = '')[source]

Populate the program list with available presets.

Parameters:

search_text – str

update_category_combo_box_categories() None[source]

Update the category combo box.

on_bank_changed(_: int) None[source]

Handle bank selection change.

on_preset_number_changed(index: int) None[source]

Handle program number selection change.

load_program() None[source]

Load the selected program based on bank and number.

update_current_synths(program_details: dict) None[source]

Update the current synth label. :param program_details: dict

load_preset_temp(preset_number: int) None[source]

Load preset data and update UI. :param preset_number: int

_update_preset_list() None[source]

Update the preset list with available presets.

on_category_changed(_: int) None[source]

Handle category selection change.