"""
class JDXIDimensions
Class to store dimensions of a Roland JDXi instrument
# Example usage:
----------------
>>> print(JDXIDimensions.HEIGHT)
>>> print(JDXIDimensions.DISPLAY_WIDTH)
"""
[docs]
class JDXiDimensions:
"""
A class to store dimensions for the JD-Xi editor UI.
"""
[docs]
EDITOR_MINIMUM_HEIGHT = 250
# LED display area (enlarged for 2 rows)
[docs]
DISPLAY_X = MARGIN + 20
[docs]
DISPLAY_Y = MARGIN + 35
# LED title area (enlarged for 2 rows)
[docs]
DIGITAL_TITLE_WIDTH = 330
[docs]
DIGITAL_TITLE_HEIGHT = 70
[docs]
EDITOR_DIGITAL_SPLITTER_SIZES = [
250,
450,
] # More room for top section (Presets/Partials)
[docs]
EDITOR_DRUM_ANALOG_SPLITTER_SIZES = [200, 400]
[docs]
EDITOR_ANALOG_MIN_WIDTH = 330
[docs]
EDITOR_ANALOG_MIN_HEIGHT = 330
[docs]
EDITOR_ANALOG_WIDTH = 950
[docs]
EDITOR_ANALOG_HEIGHT = 600
# Title above display (moved down)
# Keyboard
# Sequencer above keyboard
[docs]
SEQUENCER_Y_WINDOWS = (
HEIGHT - WHITE_KEY_HEIGHT + 20
) # Windows has a menu across the top
[docs]
SEQUENCER_Y_NON_WINDOWS = (
HEIGHT - WHITE_KEY_HEIGHT + 20
) # Keep same distance above keyboard
[docs]
SEQUENCER_WIDTH = 440 # # Use roughly half keyboard width
[docs]
SEQUENCER_X = WIDTH - MARGIN - SEQUENCER_WIDTH # Align with right edge of keyboard
# Sequencer grid
[docs]
SEQUENCER_STEP_SIZE = 18
[docs]
SEQUENCER_GRID_WIDTH = 300
[docs]
SEQUENCER_GRID_HEIGHT = 30
[docs]
SEQUENCER_SQUARE_SIZE = 25
# Sequencer container
[docs]
SEQUENCER_CONTAINER_X = MARGIN + 520
[docs]
SEQUENCER_CONTAINER_Y = MARGIN + 155
[docs]
SEQUENCER_CONTAINER_WIDTH = 500
[docs]
SEQUENCER_CONTAINER_HEIGHT = 80
# Sliders
[docs]
SLIDER_CONTAINER_WIDTH = 360
[docs]
SLIDER_CONTAINER_HEIGHT = SLIDER_HEIGHT + 20
# Parts container
[docs]
PARTS_X = DISPLAY_X + DISPLAY_WIDTH + 10
# Octave buttons
# Arpeggiator buttons
[docs]
ARPEGGIATOR_WIDTH = 120
[docs]
ARPEGGIATOR_HEIGHT = 100
# Program buttons
[docs]
PROGRAM_Y = MARGIN + 15
# Tone buttons
# Effects buttons
[docs]
DRUM_PARTIAL_TAB_MIN_WIDTH = (
400 # Minimum width for drum partial tabs to match WMT width
)