【发布时间】:2015-12-20 14:49:46
【问题描述】:
如何使用 music21 模块在 Python 中保存音频输出?我已阅读所述模块的整个 [用户指南](http://music21.readthedocs.org/en/latest/usersGuide/index.html],但我找不到任何有关将输出保存为无需任何其他软件(例如 MIDI)即可被 Windows 识别的音频文件的信息。
【问题讨论】:
如何使用 music21 模块在 Python 中保存音频输出?我已阅读所述模块的整个 [用户指南](http://music21.readthedocs.org/en/latest/usersGuide/index.html],但我找不到任何有关将输出保存为无需任何其他软件(例如 MIDI)即可被 Windows 识别的音频文件的信息。
【问题讨论】:
如果s 是您的Stream,请致电:
fp = s.write('midi', fp='pathToWhereYouWantToWriteIt')
或立即听到
s.show('midi')
【讨论】:
在本用户指南第 8 章的某处,有一些关于以多种格式打开和保存文件的重要信息: http://web.mit.edu/music21/doc/usersGuide/usersGuide_08_installingMusicXML.html
如果您自己制作了名为“stream1”的音乐,您可以轻松地将其保存为 MIDI 文件,如下所示:
stream1.write("midi", "blah.mid")
我还是新手,但我认为这比打开文件等更简单。
【讨论】:
有一个MidiFile 对象,它知道如何write a midi file。
但是没有关于如何使用它的文档。
但是,在它的source 中有一个testBasicExport 测试,可能这是一个好的开始,它做了这样的事情:
mt = MidiTrack(1)
# duration, pitch, velocity
data = [[1024, 60, 90], [1024, 50, 70], [1024, 51, 120],[1024, 62, 80], ]
# Omit this part here, but full code in the links above
populateTrackFromData(mt, data)
mf = MidiFile()
mf.ticksPerQuarterNote = 1024 # cannot use: 10080
mf.tracks.append(mt)
mf.open('/src/music21/music21/midi/out.mid', 'wb')
mf.write()
mf.close()
【讨论】: