[英]music21: get the voice/program/instrument of midi voice from a flat score?
我有一個簡單的腳本,它使用 music21 來處理 midi 文件中的音符:
import music21
score = music21.converter.parse('www.vgmusic.com/music/console/nintendo/nes/zanac1a.mid')
for i in score.flat.notes:
print(i.offset, i.quarterLength, i.pitch.midi)
有沒有辦法也可以使用平面樂譜獲得音符的發聲/midi 程序? 任何指針將不勝感激!
MIDI 通道和程序存儲在Instrument
實例上,因此使用getContextByClass(instrument.Instrument)
在 stream 中找到最近的 Instrument,然后訪問它的.midiProgram。
當心:
.midiChannel
和.midiProgram
是 0 索引的,因此 MIDI 通道 10 在 music21 中將是 9 等,(我們正在討論在下一個版本中更改此行為)pip install git+https://github.com/cuthbertLab/music21
.flat
會殺了你。 如果你聽從我的建議,你就會得到每條軌道上的最后一種樂器。 90% 的人在做.flat
實際上想要.recurse()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.