如何使用python根据音符音高分割midi文件?
Posted
技术标签:
【中文标题】如何使用python根据音符音高分割midi文件?【英文标题】:How to split midi file based on notes pitch using python? 【发布时间】:2020-09-20 14:18:02 【问题描述】:如何使用 python 根据音高分割 MIDI 文件?我尝试了 music21 库,但我真的不知道它是如何工作的......
【问题讨论】:
你所说的“在球场上分开”是什么意思? 例如,当我有一个较低的 c 和一个较高的 c 时,它应该分成两个 .mid 文件。 【参考方案1】:试试这个代码:
import pretty_midi
import copy
pitch_cutoff = 65
mid = pretty_midi.PrettyMIDI('my_file.mid')
low_notes = copy.deepcopy(mid)
high_notes = copy.deepcopy(mid)
for instrument in low_notes.instruments:
for note in instrument.notes:
if note.pitch > pitch_cutoff:
note.velocity = 0
for instrument in high_notes.instruments:
for note in instrument.notes:
if note.pitch < pitch_cutoff:
note.velocity = 0
low_notes.write("low_notes.mid")
high_notes.write("high_notes.mid")
它使用pretty_midi
模块将一个midi 文件拆分为两个不同的文件。名为“high_notes.mid”的文件将仅在您将pitch_cutoff
变量设置为的上方有注释,而“low_notes.mid”将仅在其下方有注释。只需将“my_file.mid”更改为您的文件名并尝试一下。如果您有任何问题,请告诉我。
【讨论】:
以上是关于如何使用python根据音符音高分割midi文件?的主要内容,如果未能解决你的问题,请参考以下文章
AudioKit:如何更改使用 AKMIDIEvent 播放的音符的音量或音高?