music21:如何将和弦同时附加到流中?

music21: How to append a chord to a stream simultaneously?

我有一个带有音符(音高和持续时间)的流对象。我想将和弦添加到 - 例如 - 每 4 次的第一个音符。但是我想让他们同时发声。

问题是我发现的唯一相关内容是如何按顺序将和弦附加到流中。

所以...有什么建议吗?

如果您想在现有音符中添加额外的音高,请使用 stream.Stream.insertIntoNoteOrChord 方法:

http://web.mit.edu/music21/doc/moduleReference/moduleStream.html#music21.stream.Stream.insertIntoNoteOrChord

例如:

s = stream.Stream()
n = note.Note('C4') # qtr note default
s.append(n)

c = chord.Chord('E4 G4') # qtr
s.insertIntoNoteOrChord(0.0, c)
s.show('t')
{0.0} <music21.chord.Chord C4 E4 G4>

如果你需要做一些更复杂的事情,那么我建议把所有的音符和和弦插入到你想要的任何地方,然后在 Stream 上 运行 .chordify() 来制作一切正常。

第三种选择是对不同的图层使用不同的 stream.Voice() 对象。