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