Source code for jdxi_editor.midi.message.synths.drum

"""
DrumKitMessage
==============

# Example usage:
# Set kit name
>>> msg = DrumKitMessage(
>>>     section=DrumKitSection.COMMON.STATUS,
>>>     param=DrumKitCommon.NAME_1.STATUS,
>>>     value=0x41,  # 'A'
>>> )

# Set pad parameter
>>> msg = DrumKitMessage(
>>>     section=DrumKitSection.get_pad_offset(36),  # Pad C1
>>>     param=DrumPadParam.WAVE.STATUS,
>>>     value=1,  # Wave number
>>> )
"""

from dataclasses import dataclass

from jdxi_editor.midi.data.address.address import (
    AddressOffsetTemporaryToneUMB,
    AddressStartMSB,
    CommandID,
)
from jdxi_editor.midi.message.roland import RolandSysEx


@dataclass
[docs] class DrumKitMessage(RolandSysEx): """Drum Kit parameter message"""
[docs] command: int = CommandID.DT1
[docs] msb: int = AddressStartMSB.TEMPORARY_TONE # Temporary area
[docs] umb: int = AddressOffsetTemporaryToneUMB.DRUM_KIT # Drum Kit
[docs] lmb: int = 0x00 # Section (Common or Pad offset)
[docs] lsb: int = 0x00 # Parameter number
[docs] value: int = 0x00 # Parameter value
[docs] def __post_init__(self): super().__post_init__()