Allowing robust internal recording of "silencable" sources (like digital synthesisers)
I tried to use android-audio-recorder (version v.3.5.21, Redmi 8 Pro, Android 11) for recording my own playing with DroidSynth (just in case: the original OSS project has no binary releases, but a slightly modified fork does).
Steps to reproduce
- The setting of the "Recording Source" is set to "Internal Audio".
- click the record button (see the system confirmation dialog ) and after 2 seconds see the message "Mic Muted" ( "Android 9 (Pie) and above prevent idle background apps ...." ), then press ok.
- switch to the synth app and play for some time
- return to the recorder for saving and see that the recording is silent.
I suspect that it has something to do with how the recorder app works while detecting silences, because I can record with the following trick.
- Start a music player (AIMP in my case) and start some track
- Switch to audio recorder. Start recording, no error messages, the waveform shows that the record is on
- Switch to the player and pause the playing track
- Switch to the synth app and play in it
- Return to the audio recorder, save the recording and hear that the fragment after the player pause is successfully recorded. (I even could play along the music track and hear my playing in the record)
Another trick that works (partially) is "split apps" mode when I can see both apps (recorder and synth) and while the recorder shows the same "Mic Muted" message after every 2 seconds of silence, it still records what I played. I mentioned partially because I can not unsplit this pair to continue recording because the recorder fails to record afterwards.
Another observation that I currently use ADV Screen Recorder (com.blogspot.byterevapps.lollipopscreenrecorder) for my recordings and it works ok. It also triggers system confirmation dialog after adding a new video, but records successfully when I play in the synth app after getting there long after 2 seconds pause.
My suggestion is if the recorder makes something special while detecting the silence, there might be a setting to suppress this special logic for cases like mine