音乐21,窗口分析有时间吗?

2024-05-16 07:29:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过音乐分析21。不过,我想知道如何将窗口的索引转换为歌曲的时间(秒左右)。例如,我怎么知道第一个窗口在什么时候播放?e、 g.唱到2.5秒

s = music21.converter.parse('../data/medley/15046.midi')

p = music21.analysis.discrete.KrumhanslSchmuckler()
wa = music21.analysis.windowed.WindowedAnalysis(s, p)
windo_count=4
a, b = wa.analyze(windo_count)
song = pm.PrettyMIDI('../data/medley/15046.midi')
cello_program = pm.instrument_name_to_program('Cello')
cello = pm.Instrument(program=cello_program)

prev=a[0]
change_loc=[]
#some code that detects change and should append now the time in seconds
for i,beat in enumerate(a[1:]):
    #i is the tuple (key,major/minor/etc,time)
    if beat[0]!=prev[0] and beat[1]!=prev[1]:
        #key changed, at index
        change_loc.append(my_question)

Tags: datacountanalysisprogramchangelocmusic21midi
1条回答
网友
1楼 · 发布于 2024-05-16 07:29:48

使用漂亮的midi可以获得从拍到时间的映射

import pretty_midi as pm
song = pm.PrettyMIDI('data/medley/15046.midi')
print(song.get_beats())

编辑: 更多信息可以在这里找到:How to convert bar count to time, in midi? (music)

相关问题 更多 >