1

现在,我成功地创建了一个 MIKMIDISequence 序列。但是,我不知道如何将声音字体与该序列联系起来。我的问题是,如何为 MIKMIDISequence 分配声音字体?

4

1 回答 1

1

而不是在序列上设置声音字体,您应该使用-loadSoundfontFromFileAtURL:error:ofMIKMIDISynthesizer来这样做。

假设您正在使用MIKMIDISequencer播放序列,您可以使用-builtinSynthesizerForTrack:on获取每个轨道的合成器MIKMIDISequencer。请注意,序列中的每个轨道都有一个合成器,因此如果您的序列有多个轨道,您可以/应该为每个轨道加载声音字体。

就像是:

for (MIKMIDITrack *track in sequence.tracks) {
    MIKMIDISynthesizer *synth = [sequencer builtInSynthesizerForTrack:track]
    NSError *error = nil;
    if (![synth loadSoundfontFromFileAtURL:soundfontURL error:&error]) {
        NSLog(@"Error loading soundfont (%@) into synthesizer for track (%@): %@", sondfontURL, track, synthesizer);
    }
}
于 2015-12-17T18:42:51.930 回答