播放多乐器MIDI文件

时间:2012-09-20 17:31:37

标签: ios core-audio coremidi

我一直在使用MusicPlayerMusicSequence类来播放MIDI文件。但是,我想知道如何为不同的频道指定乐器。 MusicPlayer对程序更改事件的默认响应是什么?我可以告诉MusicPlayer某些采样器使用某些采样器吗?或者是将我自己的功能设置为MIDI端点,然后使用MusicDeviceMIDIEvent()自行处理音符播放以指定采样器的唯一方法?

1 个答案:

答案 0 :(得分:0)

您可以为MusicSequence中的不同曲目指定不同的乐器。 (MusicTrack API)我认为MusicPlayer不会对频道本身做任何事情。您可以指定在加载MIDI文件时将频道转换为曲目。

  

音乐序列加载标志

     

用于配置MusicSequenceFileLoad和的行为的标志   MusicSequenceFileLoadData函数。

     

enum {kMusicSequenceLoadSMF_ChannelsToTracks =(1<< 0)};的typedef   UInt32 MusicSequenceLoadFlags;

     

常量

     

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.