Ios 音频套件麦克风输入+;MIDI输出

Ios 音频套件麦克风输入+;MIDI输出,ios,objective-c,audiokit,mikmidi,Ios,Objective C,Audiokit,Mikmidi,是否可以使用来收集麦克风输入,同时通过立体声扬声器播放MIDI文件中的音符? 我发现,我可以成功地做到每一个自己;我可以从AudioKit中收集麦克风频率,并使用MIKMIDI播放MIDI文件中的音符,但如果我同时使用它们,那么MIDI音符将在“内部硬件扬声器”(不太确定实际名称?有点像DOS游戏)上播放,而不是立体声扬声器,并且音符的振幅极低 音频套件的使用 这是我用来获取麦克风频率的唯一代码。还有其他代码,我使用频率数据,但它是无关的。重点是,如果我注释掉这段代码,MIKMIDI部分的工作与

是否可以使用来收集麦克风输入,同时通过立体声扬声器播放MIDI文件中的音符?

我发现,我可以成功地做到每一个自己;我可以从AudioKit中收集麦克风频率,并使用MIKMIDI播放MIDI文件中的音符,但如果我同时使用它们,那么MIDI音符将在“内部硬件扬声器”(不太确定实际名称?有点像DOS游戏)上播放,而不是立体声扬声器,并且音符的振幅极低

音频套件的使用 这是我用来获取麦克风频率的唯一代码。还有其他代码,我使用频率数据,但它是无关的。重点是,如果我注释掉这段代码,MIKMIDI部分的工作与预期一样,并通过立体声扬声器播放

- (void)setupAudio
{
    AKSettings.audioInputEnabled = true;

    self.microphone = [[AKMicrophone alloc] init];
    self.tracker = [[AKFrequencyTracker alloc] init:self.microphone hopSize:0 peakCount:0];
    self.silence = [[AKBooster alloc] init:self.tracker gain:0];

    [AudioKit setOutput:self.silence];
    [AudioKit start];
}
MIKMIDI用法
我不认为这与您的实现有任何关系,但MIKMIDI和AudioKit可能会在一些音频配置设置上发生争执。
- (void)playMidi:(NSUInteger)note withDuration:(float)duration
{
    if ( [DEFAULTS boolForKey:kPreferenceMIDIPlaybackEnabled] )
    {
        NSDate * startDate = [NSDate date];
        NSDate * endDate = [startDate dateByAddingTimeInterval:duration];

        MIKMIDINoteOnCommand * noteOn = [MIKMIDINoteOnCommand noteOnCommandWithNote:note velocity:127 channel:0 timestamp:startDate];
        MIKMIDINoteOffCommand * noteOff = [MIKMIDINoteOffCommand noteOffCommandWithNote:note velocity:0 channel:0 timestamp:endDate];

        [self.synthesizer handleMIDIMessages:@[noteOn, noteOff]];
    }
}