Juce DemoRunner Example Projects get Audio Input, my "Spectrogram Tut."-Project doesn't


Hey folks,

I bought a new MacBook some time ago and some days back I installed the Projucer and, just to test everything is working fine, built the “Audio Input” and the “Spectrogram” tutorials.

After testing these I started thinking that something with my audio settings could be wrong, because in the Audio Input Tut. there was no audio comiong in, and in the spectrogram tut. there wasn’t anything drawn.

Later I opened the DemoRunner and built it.

When I ran it, my mac instantly asked me for the permission to use the macs microphone…

In there is a project called “Recording Audio”. This immediately worked fine, as I gave permission to the microphone.

So I looked around and found that the ask for permission for the microphone is probably done in the AudioDeviceManager Class…

But if this is a tutorial in the Juce website, i’d guess this should also work just fine?

On the computer I had before, a windows based PC, this also worked fine…

Does anyone have any suggestion what this could be or relate to?

For code - I exactly copied the code of the Spectrogram Analyser Project…
And the other one, the DemoRunner, is just the project inside the Juce Application folder…

Thanks for your time, Franz



Please make sure that the “Microphone Access” field in the Xcode (MacOSX) exporter settings (in Projucer) is enabled.

1 Like


YES! Thanks :smiley: What a trivial solution to this problem :smiley:

Would this actually also be possible to change inside the Code?

For example somewhere in the mentioned Audio Device Manager?




No. Enabling that setting makes Projucer write a specific key/value pair in the Info.plist file, so the OS knows that the program needs access to the microphone (and other audio inputs). It doesn’t change the C++ code.



The “Processing audio input” tutorial mentions this at the top:


If your operating system requires you to request permission to access the microphone (currently iOS, Android and macOS Mojave) then you will need to set the corresponding option under the relevant exporter in the Projucer and resave the project.

But I’ll add this note to the FFT tutorials too as it seems to be missing.