gkasten / drrickorang Goto Github PK
View Code? Open in Web Editor NEWDr. Rick O'Rang
Dr. Rick O'Rang
In the LoopbackApp would it be possible to display whether the device is reporting the low_latency and pro flags? - Don Turner
On behalf of a partner
we encountered the following errors when building the app in the Android Studio.
Error:Could not find com.android.tools.build:gradle-experimental:0.11.1.
Searched in the following locations:
file:/C:/Program Files/Android/Android Studio/gradle/m2repository/com/android/tools/build/gradle-experimental/0.11.1/gradle-experimental-0.11.1.pom
file:/C:/Program Files/Android/Android Studio/gradle/m2repository/com/android/tools/build/gradle-experimental/0.11.1/gradle-experimental-0.11.1.jar
https://jcenter.bintray.com/com/android/tools/build/gradle-experimental/0.11.1/gradle-experimental-0.11.1.pom
https://jcenter.bintray.com/com/android/tools/build/gradle-experimental/0.11.1/gradle-experimental-0.11.1.jar
Required by:
project :
On a Pixel XL I'm unable to set a buffer size of 96 frames which is the burst size. The minimum buffer size I can select is 192.
Steps to repro
Expected result
Actual result
I could not find a link to the Play Store app in the README files here. I also could not find a mention in the Android docs regarding latency. Maybe they are there but are hard to find.
https://play.google.com/store/apps/details?id=org.drrickorang.loopback
Seems a little odd given that the application is built primarily to communicate over the headphone jack. Might want to use FRONT_LEFT instead.
Would it be possible to extend the App so that it can build using the Oboe library?
The documentation for Oboe states that it wraps both OpenSL ES and AAudio, so that ideally, we should just see the same result as the best of these two. However, having Oboe as an option would show that that is indeed the case in practice.
When I build this project, I meet the problem:
"Linker failed while linking libloopback.so."
Build info is :
org.gradle.nativeplatform.toolchain.internal.CommandLineToolInvocationFailure: Linker failed while linking libloopback.so.
How to solve this problem?
REPRODUCE
Run an app or command that captures audio in the background.
The "libaaudio/examples/input_monitor" shell command can be launched:
adb shell input_monitor -pl -s5000
Launch Rick ORang Loopback
Select AAudio in Settings
Click "Calibrate Sound Level Now"
EXPECT
An error message saying that input could not be started.
ACTUAL
No message.
But the logcat has error messages
Note that permission and collision issues are not detected until the stream is started.
11-14 07:37:53.278 6265 8631 D AAudio : AAudioStream_requestStart(0x7dda1f3b40) called --------------
11-14 07:37:53.278 6265 8631 D : PlayerBase::start() from IPlayer
11-14 07:37:53.281 841 1140 W APM_AudioPolicyManager: startInput(222) failed: other input 102 already started
11-14 07:37:53.283 6265 8631 D AAudio : AAudioStream_requestStart(0x7dda1f3b40) returned -895 ---------
From what I could understand, this code passes a sine tone of 719 Hz frequency through the loopback cable and measure the latency through the loop. Is it possible to replace the sine by any other waveform in the code and pass it though, for a latency test?
Some devices have an initial severe DC offset that distorts the measurement. This can confuse the auto-correlation calculation. The DC offset usually dies down after 50 - 500 msec.
We should detect DC offset and wait for it to die down. If the DC offset is too severe then we should reject the measurement so that the DC offset problem can be addressed.
We could also add a DC blocker on the input to the auto-correlator to improve the auto-correlation result.
https://www.dsprelated.com/freebooks/filters/DC_Blocker.html
If the loopback test records nothing (because, for instance, the loopback adapter is broken) then the little overview wave in the top right hand corner shows some kind of default wave that looks legit. That's confusing because it at first appears that the recording succeeded. Recording failure should clear that overview box so it's more obvious that we recorded silence.
Test device: Samsung Galaxy S9 running Android 8.0.0 G960FXXS2BRI1
Steps to repro:
Expected result:
Actual result
To Reproduce:
EXPECT
Calibration to succeed.
ACTUAL
App crashes with an assert.
An excerpt of the log file is attached. log_loopback_assert.txt
Here are a few lines:
10-04 17:46:44.764 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
10-04 17:46:44.767 F DEBUG : Abort message: 'ASSERTION FAILED: 0x0 != 0x2
10-04 17:46:44.771 F DEBUG : #2 pc 000000000001501c /data/app/org.drrickorang.loopback-kx-gm_2skZEYAw5fB5LFhw==/lib/arm64/libloopback.so (slesInit+2536)
10-04 17:46:44.771 F DEBUG : #3 pc 0000000000016334 /data/app/org.drrickorang.loopback-kx-gm_2skZEYAw5fB5LFhw==/lib/arm64/libloopback.so
I see that number fairly often, particularly if the input gain is too low or the signal path is noisy. So the confidence is probably very low. But the app still tries to give some kind of latency value.
People tend to ignore the confidence value and think 8.06 is a real number.
Maybe if the confidence is below a threshold then no latency value should be reported.
To REPRODUCE:
Insert fun plug
Turn up volume to about 80%
Launch Loopback app
Press Calibrate Sound Level button
EXPECT
Just calibrate volume
ACTUAL
The Glitch test icon turns red indicating that it is running.
Sometimes the calibration sows a latency result.
Sometimes the Glitch test stays red and the Latency Test does not show a result.
If you run the latency test multiple times it starts to work.
can we please have this apk upgraded to the latest LW platform/version.
currently this apk is not working for any of the LW platform with 28+ android Version.
i have fixed this issue locally and its working for me.
if someone can help to Fix and Maintain this apk for LW platforms that would be great
-sarath
Hi,Glenn Kasten
I Insert the headset that it is damaged and return mAverage is 0.0 in loopback project,How can I fix this issue?
Thanks.
Hi,gkasten
We found the issue with the latency test results of 8.1 system,the result is wrong,how can I fix issue?
Thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.