Some apps using microphone seem not to be able to do so

Hi,
I noticed this with two apps until now. One is a guitar tuner gStrings the other is Merlin bird recognition, Both need access to mic and it is granted in settings. With both when running the mic is in use symbol shows up, but no signal seems to reach the apps.
Merlin crashes after time then. Tried reinstalling them, no avail.

The same problem is reported by another user of Merlin at playstore, so I seem to be not alone with it.

Other apps have no problem there Birdnet (another bird recognizer), other tuners work.

1 Like

Hi bimbam and welcome to the community forum.

In the first instance I think it would be advisable to contact the publishers of these apps, since you’re obviously not alone in having problems (I read quite a few of the reviews on Google Play).

cohortor.org (gString) - the publisher’s website is unavailable, which doesn’t look very good to me.

You could also contact official Fairphone support directly about these problems and get their advice. Click > contactsupport < for more info.

I reported the problem with Merlin on October 1. I haven’t heard anything back yet.

For Merlin, my workaround is to record with Audio Recorder app (from FDroid), then import into Merlin. And then add location.
This is not a fun workaround, but it works.

2 Likes

I have the same issue with Merlin, thanks for the workaround @nereocystis

I have the same issue. No idea what causes this

Melin sound recording is not working for me either. It works on my wife’s FP4, but not on my FP5. A different app (BirdNET) is working however.

1 Like

Identical problem here. It worked perfectly on my Pixel 3a.

Hi, this would be a part of the crash log, I don’t know what it means but maybe someone else does. I think it is a problem with FF OS as one can see in the reviews on playstore only FP5 users complain.

ANR in com.labs.merlinbirdid.app (com.labs.merlinbirdid.app/edu.cornell.birds.merlin.home.IdentifyActivity)
PID: 16009
Reason: Input dispatching timed out (2a2d411 com.labs.merlinbirdid.app/edu.cornell.birds.merlin.home.IdentifyActivity (server) is not responding. Waited 5000ms for FocusEvent(hasFocus=false))
Parent: com.labs.merlinbirdid.app/edu.cornell.birds.merlin.home.IdentifyActivity
ErrorId: ec86813e-8d28-444d-84df-b655690ffcd8
Frozen: false
Load: 5.8 / 4.81 / 4.52
----- Output from /proc/pressure/memory -----
some avg10=0.00 avg60=0.03 avg300=0.01 total=557477247
full avg10=0.00 avg60=0.00 avg300=0.00 total=64384283
----- End output from /proc/pressure/memory -----

excerpt fom cpu usage
CPU usage from 60140ms to 0ms ago (2024-04-08 16:37:05.872 to 2024-04-08 16:38:06.012) with 99% awake:
27% 16009/com.labs.merlinbirdid.app: 26% user + 1% kernel / faults: 143334 minor 17 major

CPU usage from 42ms to 379ms later (2024-04-08 16:38:06.054 to 2024-04-08 16:38:06.391):
99% 16009/com.labs.merlinbirdid.app: 99% user + 0% kernel
99% 21038/LiveSpectrogram: 99% user + 0% kernel

Edit - another one:

FATAL EXCEPTION: ForkJoinPool-1-worker-1
Process: com.labs.merlinbirdid.app, PID: 16009
java.lang.IllegalArgumentException: capacity < 0: (-257 < 0)
at java.nio.Buffer.createCapacityException(Buffer.java:249)
at java.nio.ShortBuffer.allocate(ShortBuffer.java:149)
at edu.cornell.birds.merlin.audio.spectrogram.v2.impl.AudioSamplesMultiThreadedSpectrogramGenerator.createFrequencyDataBuffer(AudioSamplesMultiThreadedSpectrogramGenerator.kt:188)
at edu.cornell.birds.merlin.audio.spectrogram.v2.impl.AudioSamplesMultiThreadedSpectrogramGenerator.access$createFrequencyDataBuffer(AudioSamplesMultiThreadedSpectrogramGenerator.kt:18)
at edu.cornell.birds.merlin.audio.spectrogram.v2.impl.AudioSamplesMultiThreadedSpectrogramGenerator$getFrequencyData$2$1$1.invoke(AudioSamplesMultiThreadedSpectrogramGenerator.kt:73)
at edu.cornell.birds.merlin.audio.spectrogram.v2.impl.AudioSamplesMultiThreadedSpectrogramGenerator$getFrequencyData$2$1$1.invoke(AudioSamplesMultiThreadedSpectrogramGenerator.kt:61)
at edu.cornell.birds.merlin.audio.spectrogram.v2.FrequencyDataConverterPool.useInstance(FrequencyDataConverterPool.kt:25)
at edu.cornell.birds.merlin.audio.spectrogram.v2.impl.AudioSamplesMultiThreadedSpectrogramGenerator.getFrequencyData$lambda$2$lambda$1(AudioSamplesMultiThreadedSpectrogramGenerator.kt:61)
at edu.cornell.birds.merlin.audio.spectrogram.v2.impl.AudioSamplesMultiThreadedSpectrogramGenerator.$r8$lambda$qvvenPfGHwweUOiMLetbIi5-RDo(Unknown Source:0)
at edu.cornell.birds.merlin.audio.spectrogram.v2.impl.AudioSamplesMultiThreadedSpectrogramGenerator$$ExternalSyntheticLambda0.run(Unknown Source:14)
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1400)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:377)
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1185)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1658)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1625)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

1 Like

yes i am affected too… logcat shows

...
AndroidRuntime: FATAL EXCEPTION: ForkJoinPool-1-worker-1
AndroidRuntime: Process: com.labs.merlinbirdid.app, PID: 27006
AndroidRuntime: java.lang.IllegalArgumentException: capacity < 0: (-257 < 0)
AndroidRuntime:        at java.nio.Buffer.createCapacityException(Buffer.java:249)
AndroidRuntime:        at java.nio.ShortBuffer.allocate(ShortBuffer.java:149)
AndroidRuntime:        at edu.cornell.birds.merlin.audio.spectrogram.v2.impl.A
...

after asking google… this seems to be some kind of integer overflow or so… the buffer size is big

update: the integrated example sounds from birds work fine. i think the local recording gives bogus data and the exception in the log is the visualization library choking on it…

so why is the recording not working correctly?

Just a humble guess: Could there be several ways to initialize the mic/recording and this is one that doesn’t work on FP5 OS?

yeah or fp5 does not fallback gracefully when the initialization is not perfect… the app seems to work fine on other devices. with an fp3 i had no problems…

Some other lines from the log(s) filtered for 1041 1214 which seems to be about audio, filtered again for error as this would be above 600 lines then.

1712753911.634 1041 1214 4136 D ACDB-LOADER: Error: ACDB_CMD_GET_PERSISTENT_AUDPROC_INSTANCE_COMMON_TABLE_SIZE returned -18
1712753911.634 1041 1214 4136 D ACDB-LOADER: Error: Invalid Audproc persist size = -18
1712753911.652 1041 1214 4136 D ACDB-LOADER: Error: ACDB_CMD_GET_AUDPROC_INSTANCE_GAIN_DEP_STEP_TABLE_SIZE Returned = -19
1712753911.652 1041 1214 4136 D ACDB-LOADER: Error: ACDB AudProc vol returned = -19
1712753917.324 1041 1214 28448 D ACDB-LOADER: Error: ACDB_CMD_GET_AUDPROC_INSTANCE_COMMON_TABLE_SIZE Returned = -19
1712753917.324 1041 1214 28448 D ACDB-LOADER: Error: ACDB audproc returned = -19

I hope this not too boring… another log(s) excerpt regarding sample rates, maybe there is a problem with sample rates, I see 48000 and 44100.

1712753911.624 1041 1214 4136 I msm8974_platform: platform_check_and_set_codec_backend_cfg:becf: afe: bitwidth 16, samplerate 48000 channels 2, backend_idx 0 usecase = 1 device (speaker)
1712753911.624 1041 1214 4136 I msm8974_platform: platform_check_codec_backend_cfg:becf: afe: bitwidth 16, samplerate 48000 channels 2, backend_idx 0 usecase = 1 device (speaker)
1712753911.629 1041 1214 4136 D msm8974_platform: platform_check_codec_backend_cfg:becf: updated afe: bitwidth 16, samplerate 48000 channels 2,backend_idx 0 usecase = 1 device (speaker)
1712753911.629 1041 1214 4136 I msm8974_platform: platform_check_codec_backend_cfg:becf: afe: Codec selected backend: 0 updated bit width: 16 and sample rate: 48000
1712753911.633 1041 1214 4136 D ACDB-LOADER: ACDB → send_audio_cal, acdb_id = 102, path = 1, app id = 0x11132, sample rate = 48000, use_case = 0,buffer_idx_w_path =1, afe_sample_rate = 48000, cal_mode = 1, offset_index = 0
1712753911.650 1041 1214 4136 I audio_hw_utils: send_app_type_cfg_for_device PLAYBACK app_type 69937, acdb_dev_id 15, sample_rate 48000, snd_device_be_idx 52
1712753911.652 1041 1214 4136 D ACDB-LOADER: ACDB → send_audio_cal, acdb_id = 15, path = 0, app id = 0x11131, sample rate = 48000, use_case = 0,buffer_idx_w_path =0, afe_sample_rate = 48000, cal_mode = 1, offset_index = 0
1712753917.298 1041 1214 1214 D audio_hw_primary: adev_open_input_stream: enter: sample_rate(44100) channel_mask(0x10) devices(0x80000004) stream_handle(0xf22c4ed0) io_handle(398) source(6) format 5
1712753917.298 1041 1214 1214 D audio_hw_primary: adev_open_input_stream: enter: sample_rate(44100) channel_mask(0x10) devices(0x80000004) stream_handle(0xf22c4ed0) io_handle(398) source(6) format 1
1712753917.315 1041 1214 28448 I msm8974_platform: platform_check_and_set_capture_codec_backend_cfg:txbecf: afe: bitwidth 16, samplerate 44100, channel 1 format 1, backend_idx 8 usecase = 23 device (voice-rec-mic)
1712753917.315 1041 1214 28448 I msm8974_platform: platform_check_capture_codec_backend_cfg:txbecf: afe: Codec selected backend: 8 current bit width: 16 and sample rate: 44100, channels 1 format 1
1712753917.315 1041 1214 28448 I msm8974_platform: platform_check_capture_codec_backend_cfg:txbecf: afe: current backend bit_width 16 sample_rate 48000 channels 1, format 0
1712753917.315 1041 1214 28448 I msm8974_platform: platform_check_capture_codec_backend_cfg:txbecf: afe: Codec backend needs to be updated. new bit width: 16 new sample rate: 48000 new channel: 1 new format: 1
1712753917.315 1041 1214 28448 I msm8974_platform: platform_set_codec_backend_cfg:becf: afe: bitwidth 16, samplerate 48000 channels 1 format 1, backend_idx 8 device (voice-rec-mic)
1712753917.324 1041 1214 28448 I audio_hw_utils: send_app_type_cfg_for_device CAPTURE app_type 69938, acdb_dev_id 200, sample_rate 44100, snd_device_be_idx 194
1712753917.324 1041 1214 28448 D ACDB-LOADER: ACDB → send_audio_cal, acdb_id = 200, path = 1, app id = 0x11132, sample rate = 44100, use_case = 0,buffer_idx_w_path =1, afe_sample_rate = 48000, cal_mode = 1, offset_index = 0
1712753927.548 1041 1214 28448 I msm8974_platform: platform_check_and_set_capture_codec_backend_cfg:txbecf: afe: bitwidth 16, samplerate 44100, channel 1 format 1, backend_idx 8 usecase = 23 device (voice-rec-mic)
1712753927.548 1041 1214 28448 I msm8974_platform: platform_check_capture_codec_backend_cfg:txbecf: afe: Codec selected backend: 8 current bit width: 16 and sample rate: 44100, channels 1 format 1
1712753927.548 1041 1214 28448 I msm8974_platform: platform_check_capture_codec_backend_cfg:txbecf: afe: current backend bit_width 16 sample_rate 48000 channels 1, format 0
1712753927.548 1041 1214 28448 I msm8974_platform: platform_check_capture_codec_backend_cfg:txbecf: afe: Codec backend needs to be updated. new bit width: 16 new sample rate: 48000 new channel: 1 new format: 1
1712753927.548 1041 1214 28448 I msm8974_platform: platform_set_codec_backend_cfg:becf: afe: bitwidth 16, samplerate 48000 channels 1 format 1, backend_idx 8 device (voice-rec-mic)
1712753927.551 1041 1214 28448 I audio_hw_utils: send_app_type_cfg_for_device CAPTURE app_type 69938, acdb_dev_id 200, sample_rate 44100, snd_device_be_idx 194
1712753927.553 1041 1214 28448 D ACDB-LOADER: ACDB → send_audio_cal, acdb_id = 200, path = 1, app id = 0x11132, sample rate = 44100, use_case = 0,buffer_idx_w_path =1, afe_sample_rate = 48000, cal_mode = 1, offset_index = 0
1712753929.154 1041 1214 4136 I msm8974_platform: platform_check_and_set_codec_backend_cfg:becf: afe: bitwidth 16, samplerate 48000 channels 2, backend_idx 0 usecase = 1 device (speaker)

The issue should be solved with today’s update:

“An issue that was causing the microphone not to be accessible to third-party apps has been solved.”

4 Likes

It is! It’s working at last. Thank you to whoever fixed it

2 Likes

I am really happy! The update solved the problem. Thanks for that!

1 Like

Was this an FP5 OS upgrade which fixed Merlin?
I am now using CalyxOS and have the same problem with Merlin as i had on the official release

@nereocystis Yes, an FP5 update earlier this month fixed the Merlin problem. It’s a great app (now), and the phone is good too! I am using the default FP5 Android OS though.

1 Like

2 posts were split to a new topic: FP5 caller cant hear me