如何在music21中将输出保存为MIDI文件?

10

我该如何使用music21模块在Python中保存音频输出?我已经阅读了该模块的整个用户指南,但是我没有找到有关将输出保存为可以在Windows上识别且不需要任何其他软件(例如MIDI)的音频文件的信息。

3个回答

19
如果你有一个名为s的流(Stream),只需调用以下代码: fp = s.write('midi', fp='要写入的路径') 或者想要立即播放它,可以使用以下代码: s.show('midi')

5

在本用户指南第8章的某个地方,有关于以多种格式打开和保存文件的重要信息:

http://web.mit.edu/music21/doc/usersGuide/usersGuide_08_installingMusicXML.html

如果您已经创作了自己的音乐,名为“stream1”,您可以按照以下方式轻松将其保存为MIDI文件:

stream1.write("midi", "blah.mid")

虽然我还是个新手,但我认为这比打开文件等操作更简单。


2

有一个MidiFile对象,它知道如何写入midi文件

但是如何使用它的文档并不存在。

然而,在它的源代码中有一个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()

2
请使用以下代码中的stream.write('midi'),而不是MidiFile函数,因为MidiFile主要是用于内部使用的。 - Michael Scott Asato Cuthbert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接