2017-03-20 11 views
7

나는 간단해야하는 것처럼 보이기 위해 노력하고 있습니다. Mac 응용 프로그램에서 MIDI 메시지를 듣고 기존 AVAudioUnit 악기의 음을 연주하는 데 사용합니다.AVAudioUnit에서 CoreMIDI 입력 사용

가설 : 내가 (scheduleMIDIEventBlock 통해) 내 AVAudioUnit의 AUAudioUnit에서 얻을 수 (A MIDIClientRef와 MIDIInputPortCreateWithBlock를 통해) 내 CoreMIDI 클라이언트와 관련된 MIDIReadBlock과 AUScheduleMIDIEventBlock 사이에 다리를 작성해야합니다. 이것은 미가공 MIDI 데이터로 돌아 다니기 때문에 복잡 할 것 같습니다. 오디오 유닛이 CoreMIDI와 함께 사용하기 쉬운 일종의 MIDI 추상화를 지원해야한다고 생각하지만 관련 예제를 찾을 수 없습니다. 이의. AV/AUAudioUnit에 MIDIOutputPortCreate을 사용하는 방법이 있습니까?

MIDI 입력을 오디오 장치에 직접 연결하는 작업 예제 (이상적으로는 Swift 3 사용)가 현재 나와있는 관련 리소스를 알고 있다면 해당 링크도 공유하십시오. 이러한 API에 대한 설명서의 희소성은 매우 실망 스럽습니다. 감사!

답변

0

받은 패킷을 통해 MIDIReadBlock 루프에 있습니다. 각 패킷의 MIDI 상태에 따라 audioUnit에 적절한 기기 이벤트 (예 : 메모)를 보냅니다.

osstatus = MusicDeviceMIDIEvent(audioUnit, midiCmd...