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
Base class for JD-Xi style digital displays. |
|
Simplified display showing only the current tone name. |
|
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.QWidgetBase class for JD-Xi style digital displays.
- 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.
- 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:
DigitalDisplayBaseSimplified display showing only the current tone name.
- 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:
DigitalDisplayBaseDigital LCD-style display widget.
- 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.
- 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