Ich versuche CoreAudio/AudioToolbox zu verwenden, um mehrere MIDI-Dateien mit verschiedenen MIDISynth-Knoten abzuspielen. Ich habe die Sampler in einen MultiChanelMixer verdrahtet, der wiederum in die IO-Einheit verdrahtet ist. Ich möchte die verschiedenen Eingangsvolumina unabhängig voneinander ändern können. Ich versuche, dies mit dieser Zeile:Die Eingangslautstärke des MultiChanelMixer AudioUnit-Busses kann nicht eingestellt werden
AudioUnitSetParameter(mixerUnit, kMultiChannelMixerParam_Volume, kAudioUnitScope_Input, UInt32(trackIndex), volume, 0)
Das Problem ist, dass trackIndex
0 Stellt Einstellung jeder Eingang in den Mischer kommt, nicht nur den einen Bus wie ich es erwartet habe. Hier
ist die Ausgabe von CAShow
des Master-Graph
AudioUnitGraph 0xC590003:
Member Nodes:
node 1: 'auou' 'rioc' 'appl', instance 0x60000002d580 O I
node 2: 'aumx' 'mcmx' 'appl', instance 0x60000002d680 O I
node 3: 'aumu' 'msyn' 'appl', instance 0x60000002db60 O I
node 4: 'aumu' 'msyn' 'appl', instance 0x60000002ef20 O I
node 5: 'aumu' 'msyn' 'appl', instance 0x60000002df00 O I
node 6: 'aumu' 'msyn' 'appl', instance 0x60800022d820 O I
Connections:
node 2 bus 0 => node 1 bus 0 [ 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
node 3 bus 0 => node 2 bus 0 [ 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
node 4 bus 0 => node 2 bus 1 [ 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
node 5 bus 0 => node 2 bus 2 [ 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
node 6 bus 0 => node 2 bus 3 [ 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
CurrentState:
mLastUpdateError=0, eventsToProcess=F, isInitialized=T, isRunning=T (2)
Hier wird die Klasse schrieb ich all dies zu kontrollieren: https://gist.github.com/jadar/26d9625c875ce91dd2ad0ad63dfd8f80
Der einzige Ort, an dem ich Sie mit kMultiChannelMixerParam_Volume in Ihrer Klasse sehe, ist mit kAudioUnitScope_Input. Zusätzlich zum Einstellen der Lautstärke jedes Samplers auf den Mixer können Sie die Ausgabe des Mixers als Ganzes mit kAudioUnitScope_Output einstellen. –