Emacs, scsynth and Microphone Permissions

Hi y’all,

after happily using SuperCollider for sound synthesis in emacs for a few months, today I tried to dabble with SoundIn.

As it turns out, on Mac OS Catalina (10.15.7), you need Microphone Permissions to get sound into SuperCollider. Using the IDE this works as expected, and Emacs has microphone permissions, too:

Still, I don’t get any sound in.

I suspect this has to do with the fact that in emacs mode, SuperCollider launches a standalone scsynth process, which does not have microphone permissions:

$ ps aux | grep scsynth                                                                                                                                                           64|15:41:08
jrubisch         57662   0.4  0.1  5123704  29264   ??  S     3:39PM   0:03.09 /Applications/SuperCollider/SuperCollider.app/Contents/Resources/../Resources/scsynth -u 57110 -a 1024 -i 2 -o 2 -R 0 -l 1
jrubisch         58011   0.0  0.0  4408548    784 s030  S+    3:46PM   0:00.00 grep --color=auto scsynth

has anyone had this problem already, and solved it? thanks!

Hello Julian,

I have not solved the problem (no longer working with MacOS atm), but maybe this tip would help:
Have a look at the emacs code for booting the server:

(defun sclang-perform-server-command (command &rest args)
(sclang-eval-string
    (sclang-format "Server.named.at(%o.asSymbol).performList(\\tryPerform, %o.asSymbol.asArray ++ %o)"
  sclang-current-server command args)

nil))

It is performing the string for localhost obtained from sclang. So that throws the responsibility back to sclang itself. Meaning it runs exactly the same unix command as when booting from IDE. I know of someone working with Catalina who resorted to booting emacs from the terminal in order to have root privileges. Maybe that is something to try.

Cheers,
Iannis

1 Like

Thanks, I’ll give it a try! Very appreciated!

Heyall,

wanted to quickly return back to this and note that this can simply be solved by starting emacs from the terminal.

Then Terminal/iTerm/whatever will ask for mic privileges, problem solved!