"""
Wave Osc Behaviour
"""
[docs]
class WaveOscBehavior:
"""Impose behaviour on Wave Osc"""
[docs]
def is_pwm(self) -> bool:
return self.name == "PW_SQUARE"
[docs]
def is_noise(self) -> bool:
return self.name == "NOISE"
[docs]
def is_pcm(self) -> bool:
return self.name == "PCM"
@property
[docs]
def display_name(self) -> str:
try:
return WAVE_OSC_METADATA[self.name][0]
except KeyError:
return self.name
@property
[docs]
def description(self) -> str:
try:
return WAVE_OSC_METADATA[self.name][1]
except KeyError:
return self.name.title().replace("_", " ")
@property
[docs]
def midi_value(self) -> int:
return int(self.value)