from dataclasses import dataclass
from jdxi_editor.midi.data.address.address import (
CommandID,
JDXiSysExAddressStartMSB,
JDXiSysExOffsetSystemLMB,
JDXiSysExOffsetSystemUMB,
)
from jdxi_editor.midi.data.address.sysex import ZERO_BYTE
from jdxi_editor.midi.message.roland import JDXiSysEx
@dataclass
[docs]
class ProgramCommonParameterMessage(JDXiSysEx):
"""Program Common parameter message"""
[docs]
command: int = CommandID.DT1
[docs]
msb: int = JDXiSysExAddressStartMSB.PROGRAM # 0x18: Program area
[docs]
umb: int = JDXiSysExOffsetSystemUMB.COMMON # 0x00: Common section
[docs]
lmb: int = JDXiSysExOffsetSystemLMB.COMMON # Always 0x00
[docs]
lsb: int = ZERO_BYTE # Parameter number
[docs]
value: int = ZERO_BYTE # Parameter value
[docs]
def __post_init__(self):
"""Set up address and data"""
self.address = [
self.msb, # Program area (0x18)
self.umb, # Common section (0x00)
self.lmb, # Always 0x00
self.lsb, # Parameter number
]
self.data = [self.value]