#include #include int main(int argc, char *argv[]) { AUGraph AudioGraph; NewAUGraph(&AudioGraph); ComponentDescription cd; AUNode OutputNode; AudioUnit OutputUnit; cd.componentManufacturer = kAudioUnitManufacturer_Apple; cd.componentFlags = 0; cd.componentFlagsMask = 0; cd.componentType = kAudioUnitType_Output; cd.componentSubType = kAudioUnitSubType_DefaultOutput; AUGraphNewNode(AudioGraph, &cd, 0, NULL, &OutputNode); AUGraphGetNodeInfo(AudioGraph, OutputNode, 0, 0, 0, &OutputUnit); AUNode MixerNode; AudioUnit MixerUnit; cd.componentManufacturer = kAudioUnitManufacturer_Apple; cd.componentFlags = 0; cd.componentFlagsMask = 0; cd.componentType = kAudioUnitType_Mixer; cd.componentSubType = kAudioUnitSubType_StereoMixer; AUGraphNewNode(AudioGraph, &cd, 0, NULL, &MixerNode); AUGraphGetNodeInfo(AudioGraph, MixerNode, 0, 0, 0, &MixerUnit); AUGraphConnectNodeInput(AudioGraph, MixerNode, 0, OutputNode, 0); AUGraphOpen(AudioGraph); AUGraphInitialize(AudioGraph); AUGraphStart(AudioGraph); AUNode SynthNode; AudioUnit SynthUnit; cd.componentManufacturer = kAudioUnitManufacturer_Apple; cd.componentFlags = 0; cd.componentFlagsMask = 0; cd.componentType = kAudioUnitType_MusicDevice; cd.componentSubType = kAudioUnitSubType_DLSSynth; AUGraphNewNode(AudioGraph, &cd, 0, NULL, &SynthNode); AUGraphGetNodeInfo(AudioGraph, SynthNode, 0, 0, 0, &SynthUnit); AUGraphConnectNodeInput(AudioGraph, SynthNode, 0, MixerNode, 0); AUGraphUpdate(AudioGraph, NULL); CAShow(AudioGraph); MusicDeviceMIDIEvent(SynthUnit, 0x90, 60, 127, 0); sleep(1); MusicDeviceMIDIEvent(SynthUnit, 0x90, 62, 127, 0); sleep(1); MusicDeviceMIDIEvent(SynthUnit, 0x90, 64, 127, 0); sleep(1); sleep(5); return(0); }