Source code for jdxi_editor.midi.data.digital.lfo

"""Digital LFO"""

from enum import IntEnum


[docs] class DigitalLFOShape(IntEnum): """LFO waveform shapes"""
[docs] TRIANGLE = 0
[docs] SINE = 1
[docs] SAW = 2
[docs] SQUARE = 3
[docs] SAMPLE_HOLD = 4 # S&H
[docs] RANDOM = 5
@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_16 = 0 # 16 bars
[docs] NOTE_12 = 1 # 12 bars
[docs] NOTE_8 = 2 # 8 bars
[docs] NOTE_4 = 3 # 4 bars
[docs] NOTE_2 = 4 # 2 bars
[docs] NOTE_1 = 5 # 1 bar
[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