"""Digital LFO"""
from enum import IntEnum
[docs]
class DigitalLFOShape(IntEnum):
"""LFO waveform shapes"""
@property
[docs]
def display_name(self) -> str:
names = {0: "TRI", 1: "SIN", 2: "SAW", 3: "SQR", 4: "S&H", 5: "RND"}
return names.get(self.value, "???")
@property
[docs]
def midi_value(self) -> int:
return self.value
[docs]
class DigitalLFOTempoSyncNote(IntEnum):
"""Tempo sync note values"""
[docs]
NOTE_3_4 = 6 # 3/4 (dotted half)
[docs]
NOTE_2_3 = 7 # 2/3 (triplet whole)
[docs]
NOTE_1_2 = 8 # 1/2 (half)
[docs]
NOTE_3_8 = 9 # 3/8 (dotted quarter)
[docs]
NOTE_1_3 = 10 # 1/3 (triplet half)
[docs]
NOTE_1_4 = 11 # 1/4 (quarter)
[docs]
NOTE_3_16 = 12 # 3/16 (dotted eighth)
[docs]
NOTE_1_6 = 13 # 1/6 (triplet quarter)
[docs]
NOTE_1_8 = 14 # 1/8 (eighth)
[docs]
NOTE_3_32 = 15 # 3/32 (dotted sixteenth)
[docs]
NOTE_1_12 = 16 # 1/12 (triplet eighth)
[docs]
NOTE_1_16 = 17 # 1/16 (sixteenth)
[docs]
NOTE_1_24 = 18 # 1/24 (triplet sixteenth)
[docs]
NOTE_1_32 = 19 # 1/32 (thirty-second)
@property
[docs]
def display_name(self) -> str:
names = {
0: "16",
1: "12",
2: "8",
3: "4",
4: "2",
5: "1",
6: "3/4",
7: "2/3",
8: "1/2",
9: "3/8",
10: "1/3",
11: "1/4",
12: "3/16",
13: "1/6",
14: "1/8",
15: "3/32",
16: "1/12",
17: "1/16",
18: "1/24",
19: "1/32",
}
return names.get(self.value, "???")
@property
[docs]
def midi_value(self) -> int:
return self.value