Source code for jdxi_editor.ui.editors.pattern.timing.config

from picomidi import MidiTempo


[docs] class TimingConfig: """Timing Config Class""" def __init__( self, bpm: int = 120, beats_per_measure: int = 4, steps_per_beat: int = 4 ):
[docs] self.bpm = bpm
[docs] self.beats_per_measure = beats_per_measure
[docs] self.steps_per_beat = steps_per_beat
@property
[docs] def steps_per_bar(self) -> int: return self.beats_per_measure * self.steps_per_beat
@property
[docs] def ms_per_step(self) -> float: return MidiTempo.MILLISECONDS_PER_MINUTE / (self.bpm * self.steps_per_beat)