Loopback App
Refresh Screen
Pause
Round-Trip\nLatency Test
FX Disabled Loopback 2
Save Results
Unzoom
Zoom Out
Zoom In
About
Recorder
Player
Frequency vs. Recorder Buffer Period (ms) Plot
Frequency vs. Player Buffer Period (ms) Plot
Buffer Period\n& Glitch Test
Calibrate Sound Level Now
Glitches
Total Number of Glitches:
In Full
Settings
Microphone Source
- DEFAULT
- MIC
- CAMCORDER
- VOICE_RECOGNITION
- VOICE_COMMUNICATION
- REMOTE_SUBMIX (Java only)
- UNPROCESSED (N or later)
Performance Mode
- DEFAULT
- NONE
- LATENCY
- LATENCY_EFFECTS
- POWER_SAVING
Test settings will appear here after the first test is run
SETTINGS
About
Sampling Rate
Round-trip audio latency testing app\n
using the Dr. Rick O\'Rang audio loopback dongle.\n
Authors: Ricardo Garcia (rago), Tzu-Yin Tai, and Brandon Swanson\n
Open source project on:\n
https://github.com/gkasten/drrickorang\n
References:\n
https://source.android.com/devices/audio/latency.html\n
https://goo.gl/dxcw0d\n\n\n
adb parameters: all parameters are optional. If not specified, defaults will be used.\n
-ei SF \t\t\t\t\t\t\t\t\t\t\t\t ####\t\t sampling frequency \n
-ei BS \t\t\t\t\t\t\t\t\t\t\t\t ####\t\t down sample block size \n
-es Filename \t\t\t\t\t\t\t ssss\t\t\t output filename \n
-ei MicSource \t\t\t\t\t\t\t ####\t\t microphone source\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 0: DEFAULT\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 1: MIC\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 2: CAMCORDER\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 3: VOICE_RECOGNITION\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 4: VOICE_COMMUNICATION\n
-ei AudioThread \t\t\t\t\t ####\t\t Audio Thread Type\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 0: Java\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 1: Native (SLES)\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 2: Native (AAudio)\n
-ei AudioLevel \t\t\t\t\t\t ####\t\t Audio Level [0:15]\n
-ei RecorderBuffer \t\t\t\t ####\t\t Recorder Buffer Frames\n
-ei PlayerBuffer \t\t\t\t\t\t ####\t\t Player Buffer Frames\n
-ei TestType \t\t\t\t\t\t\t\t ####\t\t Audio Test Type\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 222: Latency Test\n
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 223: Buffer Test\n
-ei BufferTestDuration \t ####\t\t Buffer Test Duration \n
-ei NumLoadThreads \t ####\t\t Number of Simulated Load Threads (0 - 20) \n
-ei CI \t ####\t\t Channel Index for USB Audio (0 - 8) \n
-ez CaptureSysTrace \t ####\t\t enable/disable systrace and bugreport capturing \n
-ez CaptureWavs \t ####\t\t enable/disable .wav file snippets capturing \n
-ei NumCaptures \t ####\t\t Number of systrace/bugreport and/or wav snippets to capture \n
-ei WaveDuration \t ####\t\t Duration in seconds of captured wave files
\n\n\n
Example: adb shell am start -n org.drrickorang.loopback/.LoopbackActivity \n
--ei SF 48000 --es FileName output --ei MicSource 3 --ei AudioThread 1 --ei AudioLevel 12
--ei TestType 223 --ei BufferTestDuration 5 --ez CaptureWavs true --ei NumCaptures 5
- 8000
- 11025
- 22050
- 44100
- 48000
Audio Thread Type
- Java
- native (SLES)
- native (AAudio)
Channel Index
- Mono
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Player Buffer (Frames) (Max: %1$d)
Recorder Buffer (Frames) (Max: %1$d)
Compute Default Settings
System Default Recorder Buffer
Buffer Test Duration (Seconds) (Max: %1$d)
Buffer Test Wave Plot Duration (Seconds)
(Max: %1$d)
Number of Simulated Load Threads
Systrace Captures During Test
BugReport Captures During Test
Wav Snippet Captures During Test
Calibrate sound level before latency test (experimental)
Number of Systrace/BugReport and or Wav Snippets to Capture
Frames to ignore at the start of the latency test (Max: %1$d)
Save Files To:
//mnt/sdcard/
Choose Filenames \n and Location
Glitches and Callbacks over Time
Compare All
To use this feature it is necessary to launch a shell script on the Android device using ADB
shell. This script is responsible for launching an asynchronous Systrace and writing its
buffer to file when signaled by the Loopback App.
\n\n
At the completion of the audio glitch/buffer test the Loopback App will signal the script to
exit so the script must be started before each test.
\n\n
The Loopback App places this script on the Android device when launched at
\n
/sdcard/Loopback/loopback_listener
\n\n
Trace Categories: The loopback_listener script takes as arguments the categories to be
tracked in the Systrace. By default the sched and audio categories are included. For a list
of available categories see\n
developer.android.com/tools/help/systrace.html
\n\n
Example invocation:\n
adb shell \"sh /sdcard/Loopback/loopback_listener load am\"
This feature is highly experimental. It will try various volume levels until it picks one
that it thinks is optimal. It has only been tested with the loopback plug and may fail
completely in open air.
Please disregard me.