music21 --> stream.chordify() 不工作

Posted

技术标签:

【中文标题】music21 --> stream.chordify() 不工作【英文标题】:music21 --> stream.chordify() not working 【发布时间】:2015-11-12 02:44:13 【问题描述】:

这里有 music21 的新手。

我正在尝试使用 chordify():http://web.mit.edu/music21/doc/usersGuide/usersGuide_09_chordify.html

如何从 midi 文件中获取流对象(可以在其上调用 chordify())?

我尝试了两种方法:

1:

s = converter.parse(fn)
for el in s.recurse():
    print '\n'
    if 'Stream' in el.classes:
        el.chordify() # NOT WORKING! throws error.
    if 'Score' in el.classes:
        el.chordify() # NOT WORKING EITHER! also throws error.

2:

stream = c.parseFile(fn, format='.mid')
print stream # NOTHING! stream is None

提前感谢您告诉我如何从我的 midi 文件中获取调用 chordify() 的流对象。

【问题讨论】:

【参考方案1】:

您的第一个答案是正确的。运行后

s = converter.parse(fn)

s2 = s.chordify()

然后你可以调用 s2.show() 或任何你想要的。

【讨论】:

是的,第一种方法是正确的。只是 chordify() 花了大约 20 分钟才能完成,所以一开始我以为它不起作用,但后来我让它跑了就走了——是的,它工作得很好,只是很长。呸!医生不会说谎——很好:) 查看最近在 music21list(Google 群组)上的讨论,了解近期发生的加速和一些变通方法 在某些 MIDI 文件上的 Chordify 仍然很慢,但在 XML 上比以前快了很多。

以上是关于music21 --> stream.chordify() 不工作的主要内容,如果未能解决你的问题,请参考以下文章

Music21 关联 MuseScore 和 Lilypond

Music21:获取音符的曲目索引

如何从 music21 乐谱中获取所有钢琴部分?

music21:从平面乐谱中获取 midi 声音的声音/程序/乐器?

四分之一时长小于 0.25 的 Music21 音符?

music21 :给定 midi 输入,输出正确拼写的音高和八度数