gpt4 book ai didi

music21 - 如何替换 music21 乐谱中的音高

转载 作者:行者123 更新时间:2023-12-02 04:01:26 25 4
gpt4 key购买 nike

我正在尝试用另一个音高替换乐谱中的一个音高(最终目标是产生和声部分)。

>>> from music21 import *
>>> score = converter.parse('test.mid')
>>> type(score)
<class 'music21.stream.Score'>

>>> p0 = score.parts[0].pitches[0]
>>> p0sharp = p0.transpose(1)
>>> print p0
A3
>>> print p0sharp
B-3
>>> score.replace(p0, p0sharp)
>>> print score.parts[0].pitches[0]
A3

我应该如何处理这个问题?


更新:我发布了我的“test.mid”文件here .

最佳答案

我刚刚检查了转置的代码。只需传递inPlace=True,它就会像魔术一样工作。希望对您有帮助!

from music21 import *
score = converter.parse('test.mid')
p0 = score.parts[0].pitches[0]
print(p0)
p0.transpose(1, inPlace=True)
print(score.parts[0].pitches[0])

对于那些想要一个完整的工作示例而不加载现有 midi 文件的人:

from music21 import stream, instrument, meter
from music21.note import Note
from music21.stream import Score

# Creating the example score
n = Note("A2", type='quarter')
part = stream.Part()
measure = stream.Measure()
measure.append(n)
part.append(measure)
score = Score()
score.append(part)

p0 = score.parts[0].pitches[0]
print(p0)
p0.transpose(1, inPlace=True)
print(score.parts[0].pitches[0])

关于music21 - 如何替换 music21 乐谱中的音高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41735785/

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