Jouer une note MIDI

CoreCore Membre
janvier 2005 modifié dans API AppKit #1
Bonjour,

Je cherche à  jouer une note MIDI toute simple de hauteur et de durée déterminée, comment s'y prendre ?

J'ai repéré MIDINoteMessage mais je trouve la doc apple a ce sujet très peu detaillé

Merci d'avance !

Réponses

  • CoreCore Membre
    04:31 modifié #2
    C'est avec une immense joie que je vais apporter une reponse, ca changera de mes questions de newbie habituelles.

    <br /><br />  AUGraph AudioGraph;<br />  NewAUGraph(&amp;AudioGraph);<br /><br />  ComponentDescription cd;<br />  AUNode OutputNode;<br />  AudioUnit OutputUnit;<br /><br />  cd.componentManufacturer = kAudioUnitManufacturer_Apple;<br />  cd.componentFlags = 0;<br />  cd.componentFlagsMask = 0;<br />  cd.componentType = kAudioUnitType_Output;<br />  cd.componentSubType = kAudioUnitSubType_DefaultOutput;<br /><br />  AUGraphNewNode(AudioGraph, &amp;cd, 0, NULL, &amp;OutputNode);<br />  AUGraphGetNodeInfo(AudioGraph, OutputNode, 0, 0, 0, &amp;OutputUnit);<br /><br />  AUNode MixerNode;<br />  AudioUnit MixerUnit;<br /><br />  cd.componentManufacturer = kAudioUnitManufacturer_Apple;<br />  cd.componentFlags = 0;<br />  cd.componentFlagsMask = 0;<br />  cd.componentType = kAudioUnitType_Mixer;<br />  cd.componentSubType = kAudioUnitSubType_StereoMixer;<br /><br />  AUGraphNewNode(AudioGraph, &amp;cd, 0, NULL, &amp;MixerNode);<br />  AUGraphGetNodeInfo(AudioGraph, MixerNode, 0, 0, 0, &amp;MixerUnit);<br /><br />  AUGraphConnectNodeInput(AudioGraph, MixerNode, 0, OutputNode, 0);<br /><br />  AUGraphOpen(AudioGraph);<br />  AUGraphInitialize(AudioGraph);<br />  AUGraphStart(AudioGraph);<br /><br />  AUNode SynthNode;<br />  AudioUnit SynthUnit  <br />  cd.componentManufacturer = kAudioUnitManufacturer_Apple;<br />  cd.componentFlags = 0;<br />  cd.componentFlagsMask = 0;<br />  cd.componentType = kAudioUnitType_MusicDevice;<br />  cd.componentSubType = kAudioUnitSubType_DLSSynth;<br />  <br />   AUGraphNewNode(AudioGraph, &amp;cd, 0, NULL, &amp;SynthNode);<br />  AUGraphGetNodeInfo(AudioGraph, SynthNode, 0, 0, 0, &amp;SynthUnit);<br /><br />  AUGraphConnectNodeInput(AudioGraph, SynthNode, 0, MixerNode, 0);<br /><br />  AUGraphUpdate(AudioGraph, NULL);<br />  CAShow(AudioGraph);<br />    <br />    AudioUnitSetParameter(SynthUnit, kMusicDeviceParam_ReverbVolume, kAudioUnitScope_Global, 0, -50, 0) ;<br />  <br />  <br />MusicDeviceMIDIEvent(SynthUnit, 0x90, 60, 127, 0);<br /><br />sleep(4) ;
    
Connectez-vous ou Inscrivez-vous pour répondre.