Playing back audio input (audio in > audio out) and pitch shifting


#1

I’m quite inexperienced with Cinder and am trying to play back audio input (microphone) in real time through the device’s built in speakers - and hopefully changing the pitch of the audio out.

I built something that worked perfectly about 4 years ago using an AudioUnit cinderblock, but it seems that block is no longer supported and the latest commit still flags a load of errors in Cinder 0.9.1 / Xcode 9.4.1. I’ve tried an array of other methods (FMOD, native audio etc) and had a look at openFrameworks, but I’m hoping there’s a solution using Cinder.

Can anyone advise if it’s still possible to playback an audio in (microphone) via an audio out (built in speakers) in realtime, and ideally change the pitch (I’m guessing sample rate). So the user hears their voice higher or lower than they are speaking?

Any advice would be a great help!


#2

Routing an input to the output is simple.
Take de audio/nputAnalyser example and connect the input to the main output:

mInputDeviceNode >> ctx->getOutput();

The pitch is another story,