"""Drum Kit CC values"""
[docs]
class DrumKitCC:
"""Drum Kit Control Change parameters"""
# NRPN MSB values
[docs]
MSB_LEVEL = 64 # Level MSB
[docs]
MSB_CUTOFF = 89 # Cutoff MSB
[docs]
MSB_RESONANCE = 92 # Resonance MSB
[docs]
MSB_ENVELOPE = 119 # Envelope MSB
# Parameter ranges
[docs]
MIN_NOTE = 36 # Lowest drum note (C1)
[docs]
MAX_NOTE = 72 # Highest drum note (C4)
[docs]
MIN_VALUE = 0 # Minimum parameter value
[docs]
MAX_VALUE = 127 # Maximum parameter value
@staticmethod
[docs]
def get_display_value(param: int, value: int) -> str:
"""Convert raw value to display value"""
return str(value)
@staticmethod
[docs]
def validate_note(note: int) -> bool:
"""Validate note is within drum kit range"""
return DrumKitCC.MIN_NOTE <= note <= DrumKitCC.MAX_NOTE
@staticmethod
[docs]
def validate_msb(msb: int) -> bool:
"""Validate MSB value is valid"""
return msb in [
DrumKitCC.MSB_LEVEL,
DrumKitCC.MSB_CUTOFF,
DrumKitCC.MSB_RESONANCE,
DrumKitCC.MSB_ENVELOPE,
]
@staticmethod
[docs]
def validate_value(value: int) -> bool:
"""Validate parameter value is within range"""
return DrumKitCC.MIN_VALUE <= value <= DrumKitCC.MAX_VALUE