101 lines
4.3 KiB
Markdown
101 lines
4.3 KiB
Markdown
[Home](README.md)
|
|
|
|
# How to Use OboeTester
|
|
|
|
## Test Activities
|
|
|
|
Launch OboeTester and then select one of the test Activities.
|
|
|
|
### Test Output
|
|
|
|
Tap the green bar to expand the Settings display.
|
|
|
|
Test opening, starting, stopping and closing a stream.
|
|
Various stream parameters can be selected before opening.
|
|
While the stream is playing, the frame counts and stream state are displayed.
|
|
The latency is estimated based on the timestamp information.
|
|
|
|
Experiment with changing the buffer size to see if there are glitches when the size is high or low.
|
|
|
|
Experiment with changing the "Workload".
|
|
Watch the frame counters and the #XRuns.
|
|
The audio is expected to glitch when the workload is high because there is too much work
|
|
and the audio task misses its delivery deadlines.
|
|
|
|
The extra workload is generated by calculating a random number in a loop and then adding the result to the output at an inaudible level. This technique prevents the compiler optimizer from skipping the work.
|
|
|
|
### Test Input
|
|
|
|
Test input streams. Displays current volume as VU bars.
|
|
|
|
### Tap to Tone Latency
|
|
|
|
Measure touch screen latency plus audio output latency.
|
|
Open, Start, then tap on the screen with your fingertip.
|
|
The app will listen for the sound of your fingernail tapping the screen
|
|
and the resulting beep, and then measure the time between them.
|
|
If you use headphones then you can eliminate the latency caused by speaker protection.
|
|
If you use USB-MIDI input then you can eliminate the latency due to the touch screen, which is around 15-30 msec.
|
|
MIDI latency is generally under 1 msec.
|
|
|
|
### Record and Play
|
|
|
|
* Tap RECORD to record several seconds of audio. You should see the red VU meters move.
|
|
* Tap STOP then PLAY to play it back.
|
|
* Tap SHARE button to the recorded WAV file to GDrive, GMail or another app.
|
|
You can then examine the WAV file using a program like Audacity.
|
|
|
|
### Echo Input to Output
|
|
|
|
This test copies input to output and adds up to 3 seconds of delay.
|
|
This can be used to simulate high latency on a phone that supports low latency.
|
|
Try putting the phone to your ear with the added delay at 0 and try talking.
|
|
Then set it to about 700 msec and try talking on the phone. Notice how the echo can be very confusing.
|
|
|
|
The test will also display estimated "cold start latency" for full duplex streams.
|
|
|
|
### Round Trip Latency
|
|
|
|
This test works with either a [loopback adapter](https://source.android.com/devices/audio/latency/loopback) or through speakers.
|
|
Latency through the speakers will probably be higher.
|
|
It measures the input and output latency combined.
|
|
Set the volume somewhere in the middle.
|
|
|
|
The test works by sending a random series of bits encoded using smoothed Manchester Encoding.
|
|
This signal has a very sharp peak when we correlate output and input.
|
|
So it works at almost any volume. But the confidence will be higher at higher volumes.
|
|
|
|
### Glitch Test
|
|
|
|
This test works best with a loopback adapter. But it can also work in a quiet room.
|
|
It plays a sine wave and then tries to record and lock onto that sine wave.
|
|
If the actual input does not match the expected sine wave value then it is counted as a glitch.
|
|
The test will display the maximum time that it ran without seeing a glitch.
|
|
|
|
Look for the #XRuns display.
|
|
If #XRuns increments when a glitch occurs then the glitch is probably due to preemption of the audio task.
|
|
If #XRuns is not incrementing then the glitches may be due to AAudio MMAP tuning errors in the HAL.
|
|
|
|
### Auto Glitch Test
|
|
|
|
Measure glitches for various combinations of input and output settings.
|
|
Change the test duration to a high value and let it run for a while.
|
|
If you get glitches in one configuration then you can investigate using the previous manual Glitch Test.
|
|
The Share button will let you email the report to yourself.
|
|
|
|
### Test Disconnect
|
|
|
|
You can test whether the disconnect logic is working in Android by plugging or unplugging a headset.
|
|
Just follow the instructions in red. You will get a report at the end that you can SHARE by GMail or Drive.
|
|
|
|
### Data Paths
|
|
|
|
This checks for dead speaker and mic channels, dead Input Presets and other audio data path problems.
|
|
|
|
1. Tap "DATA PATHS" button.
|
|
1. Unplug or disconnect any headphones.
|
|
1. Set volume to medium high.
|
|
1. Place the phone on a table in a quiet room and hit START.
|
|
1. Wait a few minutes, quietly, for the test to complete. You will hear some sine tones.
|
|
1. You will get a report at the end that you can SHARE by GMail or Drive.
|