gpt4 book ai didi

python - music21 是否包含音符转换计数器?

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:52 25 4
gpt4 key购买 nike

我正在尝试获取给定旋律中音符音高(仅名称,无 Octave )之间的转换率。例如,如果我的旋律音高是(按顺序)C D E D F C B C,我应该得到 C-D 转换以 0.5 速率发生,B-C 具有 1 速率,等等。

我应该能够用 Python 编写一个函数来做到这一点(可能使用大量 elifs...),但看起来 music21 也必须能够轻松做到这一点。我查看了文档、Google、其他问题……但我找不到具体方法,但我怀疑我缺少一个可能对我真正有用的工具包。

最佳答案

您可能正在寻找一种二元表示形式,我通常使用字典来处理它。这可能有点草率,但您可能可以轻松整理它:

note_list = ...a list containing all notes in order
bigram_dict = {}
for note in range(1, len(note_list)):
bigram = (note -1, note)
if bigram not in bigram_dict:
bigram_dict[bigram] = 1 / len(note_list)
else:
bigram_dict[bigram] += 1 / len(note_list)

这将为您提供每个二元组的百分比。如果使用 Python 2.x,则必须使用 bigram_dict[bigram += float(1/len(note_list)) 以避免整数/浮点问题。另外,如果字典给你带来麻烦,你可以尝试使用defaultdict。

关于python - music21 是否包含音符转换计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36230177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com