-1

我想确定何时应同时播放来自两个不同部分/乐器的音符。

https://cdn.shopify.com/s/files/1/1280/7719/products/Air_on_the_G_String_Preview.jpg?v=1464908099

拿上面的乐谱。在第三小节中,高音谱号的重音 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

但这不允许我确定第一部分中的一个音符何时与第二部分中的一个音符在同一时刻开始。

4

1 回答 1

0

遍历每个部分的偏移量。但要考虑到有很多音符不匹配,而且每个音符通​​常都有不同的长度。

oiter = stream.iterator.OffsetIterator(parts[0])
for groupedElements in oiter:
    print(groupedElements, groupedElements[0].quarterLength, groupedElements[0].offset)

稍后检查这些部分是否具有相同的偏移量。如果有,则同时播放这些音符。

于 2018-05-05T07:46:27.263 回答