Get microphone FFT input without playback


I am trying to get the spectrum data from a smartphone’s microphone, but I don’t want the microphone audio to play in the scene. (The clip is being recorded and loops)

Evidently, the audiosource must be playing in order to fetch the spectrum data, so I presumed that putting “audioSource.muted = true” would do the trick. This also mutes the spectrum data however.

The common workaround suggested currently is to create a mixer group that puts the volume to -80db, and assign that to the microphone audiosource. Doing this currently on iOS bugs out my global game volume however, making it impossible to increase the maximum volume above 50% (Unity 5.5.2p4)

Any suggestions on how I can achieve getting the spectrum data without having to actually play the recorded audioclip?

See this answer:

I never really worked with microphone input. However when you can access the PCM data you could try my FFT implementation