Ios MIKMIDI soundfont预设选择

Ios MIKMIDI soundfont预设选择,ios,swift,midi,mikmidi,Ios,Swift,Midi,Mikmidi,我在Swift中成功地完成了以下工作: 创建了一个MIKMIDI音序器 为音序器添加了一个音轨 将soundfont加载到该曲目的内置合成器 将MIDI事件添加到曲目中 触发了音序器上的播放 是否可以选择多音色声音字体中的预设?检查sequencer track引用的MIKMIDISynthesizer实例的availableInstruments属性会向日志控制台报告一个空数组。代码如下: let _ = try sequence.addTrack() let track = sequen

我在Swift中成功地完成了以下工作:

  • 创建了一个MIKMIDI音序器
  • 为音序器添加了一个音轨
  • 将soundfont加载到该曲目的内置合成器
  • 将MIDI事件添加到曲目中
  • 触发了音序器上的播放
是否可以选择多音色声音字体中的预设?检查sequencer track引用的MIKMIDISynthesizer实例的availableInstruments属性会向日志控制台报告一个空数组。代码如下:

let _ = try sequence.addTrack()
let track = sequence.tracks[0]
let trackSynth = sequencer.builtinSynthesizerForTrack(track)

if let soundfont = NSBundle.mainBundle().URLForResource("fluid_gm", withExtension: "sf2") {
    do {
        try  trackSynth?.loadSoundfontFromFileAtURL(soundfont)
          print(trackSynth!.availableInstruments)
        } catch {

        }
    }


   let note1 = MIKMIDINoteEvent(timeStamp:0.0,note:60,velocity:100,duration:5,channel:0)
   let note2 = MIKMIDINoteEvent(timeStamp:0.0,note:63,velocity:100,duration:5,channel:0)
   let note3 = MIKMIDINoteEvent(timeStamp:1.0,note:60,velocity:0,duration:5,channel:0)
   let note4 = MIKMIDINoteEvent(timeStamp:1.0,note:63,velocity:0,duration:5,channel:0)
   track.addEvents([note1!,note2!,note3!,note4!])
   sequencer.sequence = sequence
   sequencer.startPlayback()