"""
Editor IO Utils
"""
from mido import MidiFile
from picomidi import MidiTempo
from picomidi.constant import Midi
from picomidi.message.type import MidoMessageType
[docs]
def tempo2bpm(tempo: int) -> float:
"""
tempo2bpm
:param tempo: float
:return: float
"""
return MidiTempo.MICROSECONDS_PER_MINUTE / tempo
[docs]
def get_last_tempo(midi_file: MidiFile) -> int:
"""
get_last_tempo
:param midi_file: MidiFile
:return: int
"""
tempo = Midi.tempo.BPM_120_USEC # 500_000 default
for track in midi_file.tracks:
for msg in track:
if msg.type == MidoMessageType.SET_TEMPO.value:
tempo = msg.tempo
return tempo