display.digital

digital_display.py

This module provides the DigitalDisplay class, a custom PySide6 QWidget designed to simulate an LCD-style digital display for MIDI controllers, synthesizers, or other music-related applications. The display shows preset and program information along with an octave indicator.

Features: - Displays a program name, program number, preset name, and preset number. - Shows the current octave with a digital-style font. - Customizable font family for the digital display. - Resizable and styled for a retro LCD appearance. - Provides setter methods to update displayed values dynamically.

Classes: - DigitalDisplay: A QWidget subclass that renders a digital-style display.

Usage Example:

display = DigitalDisplay() display.setPresetText(“Grand Piano”) display.setPresetNumber(12) display.setProgramText(“User Program 1”) display.setProgramNumber(5) display.setOctave(1)

Dependencies: - PySide6.QtWidgets (QWidget, QSizePolicy) - PySide6.QtGui (QPainter, QColor, QPen, QFont)

Classes

DigitalDisplayBase

Base class for JD-Xi style digital displays.

DigitalTitle

Simplified display showing only the current tone name.

DigitalDisplay

Digital LCD-style display widget.

Module Contents

class display.digital.DigitalDisplayBase(digital_font_family: str = 'JD LCD Rounded', parent: PySide6.QtWidgets.QWidget = None)[source]

Bases: PySide6.QtWidgets.QWidget

Base class for JD-Xi style digital displays.

digital_font_family = 'JD LCD Rounded'[source]
display_texts = [][source]
paintEvent(event: PySide6.QtGui.QPaintEvent) None[source]

Handles rendering of the digital display.

draw_display(painter: PySide6.QtGui.QPainter)[source]

Draws the LCD-style display with a gradient glow effect.

update_display(texts: list) None[source]

Update the display text and trigger repaint.

Parameters:

texts – list

set_upper_display_text(text: str) None[source]

Update the display text and trigger repaint.

Parameters:

text – list

class display.digital.DigitalTitle(tone_name: str = 'Init Tone', digital_font_family: str = 'JD LCD Rounded', show_upper_text: bool = True, parent: PySide6.QtWidgets.QWidget = None)[source]

Bases: DigitalDisplayBase

Simplified display showing only the current tone name.

show_upper_text = True[source]
__del__()[source]
set_tone_name(tone_name: str) None[source]

Update the tone name display.

Parameters:

tone_name – str

property text: str[source]
setText(value: str) None[source]

Alias for set_tone_name.

Parameters:

value – str

class display.digital.DigitalDisplay(current_octave: int = 0, digital_font_family: str = 'JD LCD Rounded', active_synth: str = 'D1', tone_name: str = 'Init Tone', tone_number: int = 1, program_name: str = 'Init Program', program_bank_letter: str = 'A', program_number: int = 1, parent: PySide6.QtWidgets.QWidget = None)[source]

Bases: DigitalDisplayBase

Digital LCD-style display widget.

active_synth = 'D1'[source]
digital_font_family = 'JD LCD Rounded'[source]
current_octave = 0[source]
tone_name = 'Init Tone'[source]
tone_number = 1[source]
program_name = 'Init Program'[source]
program_number = 1[source]
program_bank_letter = 'A'[source]
program_id = 'A'[source]
margin = 10[source]
paintEvent(event: PySide6.QtGui.QPaintEvent) None[source]

Handles the rendering of the digital display.

Parameters:

event – QPaintEvent

draw_display(painter: PySide6.QtGui.QPainter)[source]

Draws the JD-Xi style digital display with a gradient glow effect.

setPresetText(text: str) None[source]

Set preset name and trigger repaint.

Parameters:

text – str

setPresetNumber(number: int) None[source]

Set preset number and trigger repaint.

Parameters:

number – int

setProgramText(text: str) None[source]

Set program name and trigger repaint.

Parameters:

text – str

setProgramNumber(number: int) None[source]

Set program number and trigger repaint.

Parameters:

number – int

setOctave(octave: int) None[source]

Set current octave and trigger repaint.

Parameters:

octave – int

repaint_display(current_octave: int, tone_number: int, tone_name: str, program_name: str, active_synth: str = 'D1') None[source]
_update_display(synth_type, digital1_tone_name, digital2_tone_name, drums_tone_name, analog_tone_name, tone_number, tone_name, program_name, program_number, program_bank_letter='A')[source]

Update the JD-Xi display image.

Parameters:
  • synth_type – str

  • digital1_tone_name – str

  • digital2_tone_name – str

  • drums_tone_name – str

  • analog_tone_name – str