python - 如何在Python中使用长笛乐器从音符制作MIDI文件(music21库)

标签 python midi music21

我有一些笔记,我想要的是用长笛乐器创建 MIDI 文件。但是,输出的 MIDI 文件会播放钢琴,而不是长笛。我尝试过其他乐器,但总是一样,钢琴。这是怎么回事?

(...)
new_note = note.Note(pattern)
new_note.offset = offset
new_note.storedInstrument = instrument.Piano()
output_notes.append(new_note)
(...)
midi_stream = stream.Stream(output_notes)
midi_stream.write('midi', fp='output.midi')

最佳答案

根据documentation ,唯一具有 storedInstrument 属性的类是 note.Unpitched

还有:

The Unpitched object does not currently do anything and should not be used.

无论如何,music21/midi/translate.py 中的 testMidiProgramChangeA/B 函数展示了如何完成此操作:只需添加将仪器对象放入 Stream 中,放在应使用它的 Note 之前:

output_notes.append(instrument.Flute())
new_note = ...
output_notes.append(new_note)
...

关于python - 如何在Python中使用长笛乐器从音符制作MIDI文件(music21库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55170188/

相关文章:

c++ - 可接受的 USB MIDI 带宽是多少?

delphi - 从TMemoryStream播放MIDI吗?

python - 如何在music21中设置应用程序路径

python - 在读取 Python 文件中的行时跳过前几行

C++ - RtMidi 不向输出端口发送任何内容

python - 从 Music21 保存图像文件

python - 如何使用 Music21 检索钢琴曲的左手和右手

python - 仅在可用时在 python 套接字中接收数据

python - 在运行时获取进程的输出

python - 为什么在为 python 安装 psutil 包时会出现错误?