Topics

No soundinput on Mac OSX 10.14.6 when transmitting with plutosdr and PlutoSDR in general #osx #plutosdr

Rainer Fritz
 

Hi!
First thanks to all for the great effort to make such a great software!
I installed sdrangel via macports which is V4.14.4.
It seems like there is no audio coming into sdrangel as it also doesn't show up in systemprefs-security-microphone. Normally with the
beginning in OSX 10.14. and newer, the application requests permission and if given it is shown there in the systemprefs. Probably the
reason why it gets no signal? The transmit trigger goes through, but no modulation.
TX works only if I have the Pluto connected remotely on a raspberry pi via SoapySDR. When I have it connected locally and connect
locally via SoapySDR it behaves somehow strange. Can not get TX to work, but also in RX there are samples coming in, but on the
waterfall I see only a DC spike in the middle and nothing more...

One other observation I had:
I had to install SoapySDR first to get access to the plutosdr hw, because the plutosdr plugin is not coming with the macports version.
Is it possible to compile them locally and add them when installed with macports? I mean simply adding the compiled libraries of the
plugin or do i need to compile the whole application?

RTL-SDRs are recognized fine, but my FuncubeDonglePro + not. I can see it in the list of USB devices and the libraries are there in the
plugins directory of sdrangel, but it gets not recognized. But that could be MacOS specific. Gqrx can access it.

Would be really great if there would be a guide how to compile it on mac...

Any help would be much appreciated!
Thanks a lot!
Rainer

Thats the output when I start sdrangel from terminal:
2020-05-15 15:36:25.114 (W) Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created.
2020-05-15 15:36:25.118 (I) SDRangel 4.14.4 Qt 5.14.2 64b x86_64 macOS Mojave (10.14) DSP Rx:24b Tx:16b PID 5245
2020-05-15 15:36:25.125 (I) MainSettings::MainSettings: settings file: format: 0 location: /Users/rainerfritz/Library/Preferences/com.f4exb.SDRangel.plist
2020-05-15 15:36:26.917 (I) PluginManager::loadPluginsDir: loaded plugin libchanalyzer.dylib
2020-05-15 15:36:26.922 (I) PluginManager::loadPluginsDir: loaded plugin libdemodam.dylib
2020-05-15 15:36:26.927 (I) PluginManager::loadPluginsDir: loaded plugin libdemodatv.dylib
2020-05-15 15:36:26.935 (I) PluginManager::loadPluginsDir: loaded plugin libdemodbfm.dylib
2020-05-15 15:36:27.101 (I) PluginManager::loadPluginsDir: loaded plugin libdemoddatv.dylib
2020-05-15 15:36:27.111 (I) PluginManager::loadPluginsDir: loaded plugin libdemoddsd.dylib
2020-05-15 15:36:27.119 (I) PluginManager::loadPluginsDir: loaded plugin libdemodfreedv.dylib
2020-05-15 15:36:27.122 (I) PluginManager::loadPluginsDir: loaded plugin libdemodlora.dylib
2020-05-15 15:36:27.126 (I) PluginManager::loadPluginsDir: loaded plugin libdemodnfm.dylib
2020-05-15 15:36:27.130 (I) PluginManager::loadPluginsDir: loaded plugin libdemodssb.dylib
2020-05-15 15:36:27.133 (I) PluginManager::loadPluginsDir: loaded plugin libdemodwfm.dylib
2020-05-15 15:36:27.137 (I) PluginManager::loadPluginsDir: loaded plugin libfilesource.dylib
2020-05-15 15:36:27.141 (I) PluginManager::loadPluginsDir: loaded plugin libfreqtracker.dylib
2020-05-15 15:36:27.145 (I) PluginManager::loadPluginsDir: loaded plugin libinputairspy.dylib
2020-05-15 15:36:27.150 (I) PluginManager::loadPluginsDir: loaded plugin libinputairspyhf.dylib
2020-05-15 15:36:27.156 (I) PluginManager::loadPluginsDir: loaded plugin libinputfcdpro.dylib
2020-05-15 15:36:27.160 (I) PluginManager::loadPluginsDir: loaded plugin libinputfcdproplus.dylib
2020-05-15 15:36:27.163 (I) PluginManager::loadPluginsDir: loaded plugin libinputfileinput.dylib
2020-05-15 15:36:27.171 (I) PluginManager::loadPluginsDir: loaded plugin libinputkiwisdr.dylib
2020-05-15 15:36:27.176 (I) PluginManager::loadPluginsDir: loaded plugin libinputlimesdr.dylib
2020-05-15 15:36:27.179 (I) PluginManager::loadPluginsDir: loaded plugin libinputlocal.dylib
2020-05-15 15:36:27.184 (I) PluginManager::loadPluginsDir: loaded plugin libinputremote.dylib
2020-05-15 15:36:27.188 (I) PluginManager::loadPluginsDir: loaded plugin libinputrtlsdr.dylib
2020-05-15 15:36:27.200 (I) PluginManager::loadPluginsDir: loaded plugin libinputsoapysdr.dylib
2020-05-15 15:36:27.205 (I) PluginManager::loadPluginsDir: loaded plugin libinputtestsource.dylib
2020-05-15 15:36:27.208 (I) PluginManager::loadPluginsDir: loaded plugin liblocalsink.dylib
2020-05-15 15:36:27.211 (I) PluginManager::loadPluginsDir: loaded plugin liblocalsource.dylib
2020-05-15 15:36:27.215 (I) PluginManager::loadPluginsDir: loaded plugin libmodam.dylib
2020-05-15 15:36:27.285 (I) PluginManager::loadPluginsDir: loaded plugin libmodatv.dylib
2020-05-15 15:36:27.289 (I) PluginManager::loadPluginsDir: loaded plugin libmodfreedv.dylib
2020-05-15 15:36:27.293 (I) PluginManager::loadPluginsDir: loaded plugin libmodnfm.dylib
2020-05-15 15:36:27.297 (I) PluginManager::loadPluginsDir: loaded plugin libmodssb.dylib
2020-05-15 15:36:27.302 (I) PluginManager::loadPluginsDir: loaded plugin libmodwfm.dylib
2020-05-15 15:36:27.305 (I) PluginManager::loadPluginsDir: loaded plugin liboutputfilesink.dylib
2020-05-15 15:36:27.308 (I) PluginManager::loadPluginsDir: loaded plugin liboutputlimesdr.dylib
2020-05-15 15:36:27.311 (I) PluginManager::loadPluginsDir: loaded plugin liboutputlocal.dylib
2020-05-15 15:36:27.315 (I) PluginManager::loadPluginsDir: loaded plugin liboutputremote.dylib
2020-05-15 15:36:27.319 (I) PluginManager::loadPluginsDir: loaded plugin liboutputsoapysdr.dylib
2020-05-15 15:36:27.322 (I) PluginManager::loadPluginsDir: loaded plugin liboutputtestsink.dylib
2020-05-15 15:36:27.326 (I) PluginManager::loadPluginsDir: loaded plugin libremotesink.dylib
2020-05-15 15:36:27.330 (I) PluginManager::loadPluginsDir: loaded plugin libudpsink.dylib
2020-05-15 15:36:27.333 (I) PluginManager::loadPluginsDir: loaded plugin libudpsource.dylib
[ERROR] SoapySSDPEndpoint::sendTo(udp://[ff02::c]:1900) = -1
  sendto(udp://[ff02::c]:1900) [65: No route to host]
2020-05-15 15:36:27.632 (W) AudioOutput::start: using system default device MacBook Pro Lautsprecher
2020-05-15 15:36:27.632 (I) AudioOutput::start: audio format OK
2020-05-15 15:36:27.715 (I) WebAPIServer::start: starting web API server at http://127.0.0.1:8091

Rainer Fritz
 

Hi!

As a follow up on the no audio input for transmit issue on the mac I wanted to show that all of the softwares have the <key>NSMicrophoneUsageDescription</key>
in their .plist file in the package, which probably triggers the message to be informed that it uses the audio input. It looks like:
<key>NSMicrophoneUsageDescription</key>
<string>This app requires microphone access to receive signals.</string>
which is from the WSJT-X app .plist file.
Has anyone success on transmitting with the Mac version from Macports?
Thx
Rainer

Fabio IZ0IBA 2220156
 

Hi Rainer, i made a test using HackRF in tx mode on 433.450 Mhz.  I can generate single tone, CW keying but no mic audio. It seems that Mac OSX input sources are not used. In the audio application menu 
Sdrangel do find audio devices but selecting one of them does not produce any effect.
73, Fabio. 

Rainer Fritz
 

Found now the correct paper in the Apple Devs papers. I assume we need to authorize usage of the microphone, which is then
enabling audio input (needed since OSX 10.14):
click here:
Apple_Dev_Audio_Auth
best,
Rainer

Rainer Fritz
 

Solution:
If you add the two lines in the Info.plist file via Terminal with:
sudo nano /Applications/MacPorts/SDRangel.app/Contents/Info.plist

<key>NSMicrophoneUsageDescription</key>
<string>This app requires microphone access to receive signals.</string>

It works, but I can not TX directly with the Macports version. Need to go via SoapySDR remote over
a raspberrypi which is very sluggish.
Any idea why the direct access to TX mode with the pluto on mac doesn't work? Can hit TX and enable
microphone but the pluto doesn't go into TX.
Very strange
Rainer

Fabio IZ0IBA 2220156
 
Edited

Hello i added the two lines to the Info.plist but still no audio from microphone. 
I checked in the System Preference -> Security & Privacy -> Privacy -> Microfphone  
but no Sdrangel app listed to enable.  It seems that the sdrangel app does not requested at all the access to the microphone
May something to check at the compile time ... i guess 

PS.  I found that launching the application from the build directory result in asking for access to the microphone and the audio works.
If i launch the application from Finder in Application (after installing the cpack dmg generated image it does not work)

Fabio.

Rainer Fritz
 

On my side it asked for microphone access when I started TX, not when I opened the app.
Now it is in the System Prefs - Security and is not asking anymore. So it behaves like it should now. See attachment. It's in German but you get it.

BR
Rainer

Fabio IZ0IBA 2220156
 
Edited

On my side when i launch the application from Finder Applications menu it does not ask for Microphone permission even if i have the entry in the Info.plist as you can see. 
at the end of the list .... may be i put the entires in the wrong order ?

<dict>

        <key>NSPrincipalClass</key>

        <string>NSApplication</string>

        <key>CFBundleDevelopmentRegion</key>

        <string>English</string>

        <key>CFBundleExecutable</key>

        <string>sdrangel</string>

        <key>CFBundleGetInfoString</key>

        <string>SDR Rx/Tx software for Airspy, Airspy HF+, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube</string>

        <key>CFBundleIconFile</key>

        <string>SDRangel.icns</string>

        <key>CFBundleIdentifier</key>

        <string>com.f4exb.SDRangel</string>

        <key>CFBundleInfoDictionaryVersion</key>

        <string>6.0</string>

        <key>CFBundleLongVersionString</key>

        <string>4.14.8-2-g213d5ed82</string>

        <key>CFBundleName</key>

        <string>sdrangel</string>

        <key>CFBundlePackageType</key>

        <string>APPL</string>

        <key>CFBundleSignature</key>

        <string>????</string>

        <key>CFBundleVersion</key>

        <string>4.14.8-2-g213d5ed82</string>

        <key>NSHumanReadableCopyright</key>

        <string>Copyright (c) 2019 Edouard Griffiths. All rights reserved.</string>

        <key>ForAppStore</key>

        <string>yes</string>

        <key>LSApplicationCategoryType</key>

        <string>public.app-category.education</string>

        <key>NSHighResolutionCapable</key>

        <string>True</string>

        <key>NSSupportsAutomaticGraphicsSwitching</key>

        <true/>

        <key>NSMicrophoneUsageDescription</key>

        <string>This app requires microphone access</string>

</dict>

</plist>


However if i open a terminal and go into /Applications/SDRangel.app/Content/MacOS  and manually launch the app with  "open SDRangel"
when attempting to transmit it asks for accessing the microphone and works.  However in Preference/Security&Privacy/Privacy/Microphone
I found that the enabled application is Terminal and not SDRAngel as you show me here. 

My osx is Catalina 10.15.5 so may be something has been changed by Apple about security microphone settings. 
Who knows ....  
This problem seems to be quite similar to what descripted here   
https://www.youtube.com/watch?v=NOpgzpaunHM
Launching the app from terminal solve the problem but how to fix that in the SDRangel code ?

73, Fabio



Rainer Fritz
 

Don't know how it is packaged when compiling is done, but I think at packaging the plist file is created, so
in this process it should add the two lines for mic access. As said, when I open the macports version with the
modified plist file it asked at the first time for access and is since then in the list of devices in the security settings.