1*bf47c682SAndroid Build Coastguard Worker## WALT Latency Timer ## 2*bf47c682SAndroid Build Coastguard Worker 3*bf47c682SAndroid Build Coastguard Worker**DISCLAIMER:** This is not an official Google product. 4*bf47c682SAndroid Build Coastguard Worker 5*bf47c682SAndroid Build Coastguard Worker * [Post about WALT on Android Developers Blog](http://android-developers.blogspot.ca/2016/04/a-new-method-to-measure-touch-and-audio.html) 6*bf47c682SAndroid Build Coastguard Worker * [Instructional videos showing how to use WALT](https://www.youtube.com/playlist?list=PLd6Fi7WgXfcCEJg1FDqNCoQfpWo7W3J5a) 7*bf47c682SAndroid Build Coastguard Worker * [Detailed usage instructions](docs/usage/WALT_usage.md) 8*bf47c682SAndroid Build Coastguard Worker * Mailing list - [walt-discuss](https://groups.google.com/forum/#!forum/walt-discuss) 9*bf47c682SAndroid Build Coastguard Worker * Low-traffic mailing list for major announcements [walt-announce](https://groups.google.com/forum/#!forum/walt-announce) 10*bf47c682SAndroid Build Coastguard Worker 11*bf47c682SAndroid Build Coastguard WorkerWALT is designed to measure the latency of physical sensors and outputs on phones and computers. It can currently perform the following measurements: 12*bf47c682SAndroid Build Coastguard Worker 13*bf47c682SAndroid Build Coastguard Worker * [Tap latency](docs/TapLatency.md) - time from the moment a finger-like probe touches down (or up) on the screen 14*bf47c682SAndroid Build Coastguard Worker until the kernel timestamps an ACTION_DOWN (or ACTION_UP) event. This physical contact with 15*bf47c682SAndroid Build Coastguard Worker the screen is timed using an accelerometer mounted on the probe. 16*bf47c682SAndroid Build Coastguard Worker * [Drag latency](docs/DragLatency.md) (scroll). 17*bf47c682SAndroid Build Coastguard Worker * [Screen draw latency](docs/ScreenLatency.md) - using a photodiode that detects whether the screen is black or white. 18*bf47c682SAndroid Build Coastguard Worker * [Audio output and microphone latencies](docs/AudioLatency.md). 19*bf47c682SAndroid Build Coastguard Worker * MIDI input and output latencies 20*bf47c682SAndroid Build Coastguard Worker 21*bf47c682SAndroid Build Coastguard WorkerThe WALT app for Android can be 22*bf47c682SAndroid Build Coastguard Worker[installed from Google Play](https://play.google.com/store/apps/details?id=org.kamrik.latency.walt) 23*bf47c682SAndroid Build Coastguard Workeror downloaded in the [releases section](https://github.com/google/walt/releases); the iOS app must be built from source. 24*bf47c682SAndroid Build Coastguard Worker 25*bf47c682SAndroid Build Coastguard Worker 26*bf47c682SAndroid Build Coastguard Worker 27*bf47c682SAndroid Build Coastguard Worker 28*bf47c682SAndroid Build Coastguard Worker## Notes 29*bf47c682SAndroid Build Coastguard Worker* Hardware build instructions can be found in this repository under `hardware/`. 30*bf47c682SAndroid Build Coastguard Worker* Clock synchronization details are described [here](android/WALT/app/src/main/jni/README.md). 31*bf47c682SAndroid Build Coastguard Worker* The Android/iOS device and Teensy clocks have a tendency to diverge due to 32*bf47c682SAndroid Build Coastguard Worker differing clock frequencies. This means they will go out of sync after 33*bf47c682SAndroid Build Coastguard Worker several minutes. The workaround is to use the app to re-sync the 34*bf47c682SAndroid Build Coastguard Worker clocks. Some, but not all tests in the app will sync the clocks when starting a measurement. 35*bf47c682SAndroid Build Coastguard Worker* Python code used to communicate with WALT from Linux and ChromeOS can be found 36*bf47c682SAndroid Build Coastguard Worker [here](https://chromium.googlesource.com/chromiumos/platform/touchbot/+/master/quickstep/). 37*bf47c682SAndroid Build Coastguard Worker 38