我想确定何时应该同时播放来自两个不同部分/乐器的音符。
拍摄上面的乐谱。在第三个测量中,高音谱号的重音A和低音谱号的B应该齐声播放。如何解析music21流并找到所有这些实例?
我知道一件作品的每个“部分”都可以按照其注释的顺序进行解析:
numParts = len(piece.parts)
for i in range(numParts):
part = piece.parts[i].flat.notesAndFlats
for note in part:
#will access each note or chord in the part sequentially
但这不允许我确定第一部分中的音符何时与第2部分中的音符同时开始。
答案 0 :(得分:0)
遍历每个部分的偏移量。但是考虑到有很多笔记不匹配,而且每个笔记通常都有不同的长度。
oiter = stream.iterator.OffsetIterator(parts[0])
for groupedElements in oiter:
print(groupedElements, groupedElements[0].quarterLength, groupedElements[0].offset)
稍后检查这些部件是否具有相同的偏移量。如果有,那么这些音符会同时播放。