Audio Unit to capture sound from mic, add reverb ,then send to speaker

0

Sorry to bother again.

I used the audio graph processing method to play the mic-in and add effect to the sound to the speaker. When I use the AUGraph_1 : RIO_input->Converter-> AUiPodE->RIO_output, it works fine and I can hear the sound play back.

But when I use the AUGraph_2 : RIO_input->Converter-> AUReverb2->RIO_output, try to add some reverb, the thing goes wrong,and no sound at all.

here is the log printed by using CAShow:

AUGraph_1>>> node 1: 'auou' 'rioc' 'appl', instance 0x816f920 O I

node 2: 'aufc' 'conv' 'appl', instance 0x81713e0 O I

node 3: 'aufx' 'ipeq' 'appl', instance 0x8171740 O I

Connections:

node 1 bus 1 => node 2 bus 0 [ 2 ch, 0 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer]

node 2 bus 0 => node 3 bus 0 [ 2 ch, 44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved]

node 3 bus 0 => node 1 bus 0 [ 2 ch, 44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved]

AUGraph_2>>>>

node 1: 'auou' 'rioc' 'appl', instance 0x8151420 O

node 2: 'aufc' 'conv' 'appl', instance 0x7539df0 O

node 3: 'aufx' 'rvb2' 'appl', instance 0x7539210 O

Connections:

node 1 bus 1 => node 2 bus 0 [ 2 ch, 0 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer]

node 2 bus 0 => node 3 bus 0 [ 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]

node 3 bus 0 => node 1 bus 0 [ 2 ch, 0 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer]

Is there something wrong?

Please help me with this, any clue will be great appreciated.

Best

ios
core-audio
audiounit
asked on Stack Overflow Mar 6, 2013 by Vincent Chen

1 Answer

2

I did the same exercise but used a mixer unit instead of a converter as follows

AudioUnitGraph 0x13D000: Member Nodes: node 1: 'auou' 'rioc' 'appl', instance 0x7ac9100 O
node 2: 'aumx' 'mcmx' 'appl', instance 0x7acdee0 O
node 3: 'aufx' 'rvb2' 'appl', instance 0x7acf150 O
Connections: node 1 bus 1 => node 2 bus 1 [ 1 ch, 44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved] node 2 bus 0 => node 3 bus 0 [ 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved] node 3 bus 0 => node 1 bus 0 [ 2 ch, 0 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer]

I simplified the code from Audiograph http://zerokidz.com/audiograph/Home.html to do this as it is very well commented and explains the gotchas concerning the various ASBD formats.

answered on Stack Overflow Mar 7, 2013 by psybersonic

User contributions licensed under CC BY-SA 3.0