播放多乐器 MIDI 文件
Posted
技术标签:
【中文标题】播放多乐器 MIDI 文件【英文标题】:play multi-instrument MIDI file 【发布时间】:2012-09-20 17:31:37 【问题描述】:我一直在使用 MusicPlayer
和 MusicSequence
类来播放 MIDI 文件。但是,我想知道如何为不同的通道指定仪器。 MusicPlayer
对程序更改事件的默认响应是什么?我可以告诉MusicPlayer
对某些通道使用某些采样器吗?还是只有将自己的函数设置为 MIDI Endpoint,然后使用MusicDeviceMIDIEvent()
指定采样器自己处理音符的播放?
【问题讨论】:
【参考方案1】:您可以为 MusicSequence 中的不同曲目指定不同的乐器。 (MusicTrack API) 我不认为 MusicPlayer 对频道本身做任何事情。您可以指定在加载 MIDI 文件时将通道转换为轨道。
音乐序列加载标志
用于配置 MusicSequenceFileLoad 行为的标志和 MusicSequenceFileLoadData 函数。
枚举 kMusicSequenceLoadSMF_ChannelsToTracks = (1
常量
kMusicSequenceLoadSMF_ChannelsToTracks
If this flag is set the resultant Sequence will contain a tempo track, 1 track for each MIDI Channel that is found in the SMF, 1 track
对于 SysEx 或 MetaEvents - 这将是 LoadSMFWithFlags 调用之后的序列。
Available in OS X v10.3 and later. Declared in MusicPlayer.h.
【讨论】:
以上是关于播放多乐器 MIDI 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 中的长笛乐器从音符制作 MIDI 文件(music21 库)