
Keyboard latency - darwhy
https://danluu.com/keyboard-latency/
======
colanderman
I'm surprised the "humans don't notice 100 ms" argument is even made. That's
trivially debunkable with a simple blind A/B test at the command line using
`sleep 0.1` with and without `sleep` aliased to `true`. To my eyes, the delay
is obvious at 100 ms, noticeable at 50 ms, barely perceptible at 20 ms, and
unnoticeable at 10 ms.

Not to mention that 100 ms is musically a 16th note at 150 bpm. Being off by a
16th note even at that speed is – especially for percussive instruments –
_obvious_.

On the other hand, if you told me to strike a key less than 100 ms _after_
some visual stimuli, I'm sure I _couldn 't_ do it – _that 's_ what "reaction
time" is.

~~~
pdkl95
> strike a key less than 100 ms after some visual stimuli, I'm sure I couldn't
> do it

The video game "Super Hexagon"[1] is a surprisingly interesting demonstration
of this limitation, and how the mind tries to workaround the problem. The
higher difficulties ("hexagonest"[2]) seem impossible at first. In the easier
levels you can _react_ , but now the time it takes to see the scree, parse the
simple graphics, recognize that you need to turn left to avo##CRASH##...##GAME
OVER##, You quickly learn that if you _think_ about the game, you are
guaranteed to fail due to insufficient reaction time. Winning requires a
mental state possible related to meditation: don't think, let the muscle
memory do it's job (maybe from a faster path limited to the spinal-chord and
brain-stem?).

[1]
[https://www.youtube.com/watch?v=UrPXBSh4mqU](https://www.youtube.com/watch?v=UrPXBSh4mqU)

[2] I _finally_ got a winning 62.09s a few days ago, after many months
starting at a high score of 58.57

~~~
BoppreH
This is also clear on rhythm games like Stepmania. Here's a random video from
a keyboard user:

[https://youtu.be/TWiMnENdcyY?t=56](https://youtu.be/TWiMnENdcyY?t=56)

At this speed the player is reacting (and hitting with correct timing) about
ten notes (arrows) per second. This is possible by memorizing and reacting to
_group patterns_ instead of individual notes, but more importantly, reacting
unconsciously.

A player can play at this level without conscious attention, even while
holding a conversation, or while focusing at different parts of the screen, or
spaced out. It feels like the fingers play by themselves.

This is so automatic that the player may have little feedback on how well they
are doing. They may think they are making blunders and about to lose, while
"the fingers" have correctly hit every note so far.

Definitely feels like a faster neural path was built.

~~~
pdkl95
A big difference between Hexagon and most other rhythm games like Stepmania,
Beatmanias IIDX, Guitar Hero, _etc_ , is that pattern is the same. Just like
musicians memorize complex music that they later perform[1] with precise
timing, the same is possible for these step/note patterns. I've personally
seen someone perform one of the insane speed/note-density DDR songs
_blindfolded_. Humans have surprisingly good internal timing and mechanical
ability, _iff_ you can memorize/practice it before hand.

Super Hexagon doesn't allow _any_ of that. The game is randomly generated each
time, making memorization impossible. It's 100% reaction against the incoming
wall pattern, with no pauses. Except you don't actually have time to "react".

I recommend this[2] essay that does a much better (and more poetic) job of
explaining how uniquely Supper Hexagon interacts with human perception.

[1]
[https://www.youtube.com/watch?v=JRUwpUqSFbI](https://www.youtube.com/watch?v=JRUwpUqSFbI)

[2]
[https://problemmachine.wordpress.com/2015/04/11/hexagon/](https://problemmachine.wordpress.com/2015/04/11/hexagon/)

~~~
GuB-42
Rhythm games are not about memorization, unless you call pattern recognition
and muscle memory memorization.

First of all, players don't need to memorize the charts. Take a good player,
give him an entirely new chart and he will perform much better than any
beginner ever will, even with memorization. Shuffle mode, where the notes are
mixed and therefore can't be memorized is just a minor handicap. Much, much
easier than memorizing a whole song.

There are two things at work here.

The reaction time is actually not that short. For high level play, players
typically set notes to appear about 500ms before action. At that rate, anyone
can hit a single note, the difficulty is that there are lots of them.

The difference between experienced players and beginners is that experiences
players recognize blocks instead of single notes, just like you read entire
words rather than individual letters.

------
korethr
IMO, a better measure would be from activation of the switch, as opposed to
the beginning of key travel. I don't start waiting for the character to appear
on my screen from the moment I begin to press down. My anticipation begins
when I feel the tactile feedback of the switch activating (or the switch
bottoming out on switches that don't offer tactile feedback). On a keyboard
with good tactile feedback, I might not move the switch through it's full
travel -- just a little bit above and below the activation and reset points.

~~~
Nition
I wouldn't be surprised if the Apple keyboard is the fastest just because it
has very shallow keys.

~~~
andyfleming
That's fine though. It's about the experience end-to-end. I love the apple
keyboards. I still type faster on them than other keyboards, including high-
end mechanical keyboards. The short keys and actuation feel responsive, yet
I've never felt like I've accidentally triggered a key.

~~~
bhj
Agreed, and I don't understand the hate many people (seem to) have for them -
the most ergonomic keyboards are those that require the least amount of
repetitive motion. Not that there isn't an adjustment period, but some seem to
pull out their Jump To Conclusion mats a little early.

~~~
ewjordan
"the most ergonomic keyboards are those that require the least amount of
repetitive motion"

Not sure I can agree with that. I was using one of the Apple keyboards for
quite a long time while running liveops on an online game (which meant rapid
response whenever incidents happened, jumping into shells and constantly
typing like my life depended on it), and developed fairly severe wrist
problems within a couple months. To the point where I almost had to leave the
job on disability, per my doctor's orders.

On the recommendation of a friend, before taking that step I tried switching
to a Kinesis Advantage for the better wrist alignment and less "hard"
keystroke bottom as compared to the chiclets on the Apple keyboard. It was a
bit of a learning curve (~2 weeks to get up to full typing speed when using it
every day, a couple more to push past it), but at the end of it my wrists got
better almost instantly, and I never had problems again. My typing speed went
up as well.

I'm not sure how much of that improvement is due to the better alignment of
keys (there's almost no hand movement when typing, and your wrists are always
neutral) and how much is due to the bigger key action and softer bottom, to be
fair.

Edit: it's worth mentioning that I'm also a boxer and a piano player, so my
wrists take a lot of abuse on a regular basis. YMMV and if you're not having
problems, I definitely found the Apple keyboards to be very easy and fast to
use.

~~~
Moru
About 18 years ago I started typing on a Microsoft Natural Keyboard Elite.
That helped a lot with my wrists. Since then I have upgraded a few times but
always the Natural range of keyboards from Microsoft. They are a lot cheaper
than the Kinesis Advantage and easier to learn I guess. I would love to try a
Kinesis though but don't dare for that price :-)

~~~
gh02t
The Advantage is certainly an investment, but I found it worthwhile. They last
for eons, they're built like a tank. If you have significant wrist problems
you might be able to talk your employer into paying for one, I know a couple
people who have done that.

The Natural keyboards are good, but IMO the Kinesis is a worthwhile upgrade
for the mechanical switches, programmability and durability.

The Kinesis keyboards are actually heavily inspired by an _even more_
expensive keyboard called the Maltron.
[http://www.maltron.com/store/p21/Maltron_L89_dual_hand_fully...](http://www.maltron.com/store/p21/Maltron_L89_dual_hand_fully_ergonomic_%283D%29_keyboard_-
_US_English.html)

------
Stenzel
Compare with musical keyboards where not only key number but also the velocity
matters, so each key has two electrical contacts, and the whole thing is
usually scanned around 10kHz for proper velocity measurement. Although key
contacts are arranged in a diode matrix, the latency is usually below 2 ms,
even with good old MIDI.

So neither the keyboard matrix nor the debouncing justify a latency of 10 ms
or above.

It is nice to see that latency is an issue in gaming now, similar to realtime
audio, where most operating systems are still not very usable - with the
exception of OS X.

~~~
xigency
Now to learn to type with a keyboard... or game I suppose.

~~~
stevelosh
Have fun:
[http://joon.be/portfolio/canabalt-100/](http://joon.be/portfolio/canabalt-100/)

------
rubatuga
I've done a simple test with my Macbook Air, using the app "Is It Snappy", as
mentioned in the comments. I used the keyboard on my macbook, which is a
chiclet style mechanism. The tests were all done in triplicate except for
TextEdit, (only twice)

TextEdit: ~81 ms from key depression to when LCD pixels begin to shift. For
Sublime Text: ~86 ms. Both of these text editors are pretty well matched.

However, if you boot into Recovery Mode in macOS, you gain access to a GUI
without a V-synced/tripled framebuffer. Terminal in Recovery Mode: ~57 ms

Finally, the kicker. macOS users have always had access to a terminal
interface upon boot called single-user mode:

Single User Mode: 37.5ms (all three measurements were the same)

If you want to experience what the latency on old computers felt like while
typing, simply reboot your mac, and while it's starting up, hold 'Command +
S'!

~~~
rasz
try with charger plugged in, macs throttle polling to save power.

~~~
rubatuga
That's only true if your battery is low, and mine was above 80%

------
jtl999
I have something interesting about USB input latency to share.

In 2014 I built a new computer with a i5-4590 CPU, ASUS Z97-A motherboard and
8GB of Kingston DDR3-1866 memory.

One thing I instantly noticed was that my mouse (Logitech G400) would feel
"delayed" compared to my older computer from 2010 (i3-550, Intel DH55HC
motherboard). I could have the same OS (tested Win7 and Ubuntu), GPU and
monitor between both computers and switch, and the difference was that
obvious.

Another problem I had was DPC latency under Windows with driver:
"usbport.sys". USB audio would drop out in correlation with DPC latency spikes
and I believe it was related to the mouse latency. Under Ubuntu I had the same
problem and logged a dmesg message that said "retire_capture_urb: x callbacks
suppressed", with the same symptoms.

I got so frustrated I stopped using the new desktop and went back to my old
desktop and a new laptop for about 2 years, after wasting my time running
Prime95, MemTest86 for over 24 hours, and swapping the motherboard with
another model that let me disable HPET (Supermicro C7Z87-O)

In the end, last year I decided to work on it again and swap the memory with
some Corsair 2X4GB DDR3-1333 memory and just like that, the DPC lag spikes
were gone, USB audio didn't drop out and my mouse stopped lagging.

~~~
rubatuga
Are you implying it was the RAM?

~~~
jtl999
Yup. I still have both motherboards, the "broken" RAM and the good RAM
actually.

I didn't believe it at first, but just being able to move the mouse around and
play audio over USB and not having it lag was enough proof.

------
js2
I think this was posted to HN before, but in any case, related:

[http://isitsnappy.com/](http://isitsnappy.com/)

It's an iOS video app for measuring latency. The page has this about Apple
keyboards: "This one’s bizarre: the onboard keyboards on both the 2015 Macbook
Pro and Macbook Air have worse latency than an external keyboard. Plugging in
an external wireless keyboard improves response latency by 40 ms."

~~~
Dunedan
The MacBook Pro 2015 doesn't use an USB connection to connect the internal
keyboard when using macOS. Instead it uses SPI. Unlike the newer MacBook Pros
it still has the keyboard wired to USB, but doesn't use that because of power
saving reasons.

------
smallstepforman
The issue not mentioned in the article is number of lines on the keyboard
matrix used to detect keypresses. Cheaper non-gaming keyboards can only detect
up to 4 simultaneous keystrokes. Gaming keyboards can detect up to 6. That may
not sound like a significant difference, but if you're moving diagonally (eg.
W and D), running (Shift), holding an item (or use) (E) and jumping (space),
that is 5 keys which need to be processed. Moving from my older Gaming
keyboard to a generic Logitec keyboard, and I was no longer able to run
diagonally in FIFA games while doing trick moves. So the non gaming keyboard
made me stop playing that game.

------
Skunkleton
On linux, after keyboard has decided that a key has been pressed, and is ready
to tell USB about it.

1\. Wait for USB to poll.

2\. Handle interrupt urb generated by keyboard.

3\. Propagate the urb to the correct driver for completion

4\. Create input events for each key event in this urb. Don't forget to use
this to add to your randomness pool!

5\. Pass the key event to user space, and wake up readers.

6\. Some library reads the input event, and calls some sort of handler.

7\. Application logic updates the internal state as a result of a key press.

8\. Tells some library to redraw.

9\. Library redraws, and writes to the X server using x protocol.

10\. Magic occurs. I assume this magic is mostly just compositing windows and
copying to a frame buffer, but who knows?

11\. The magic pixies run across the wire from your PC to your monitor, and at
some future date, your monitor displays it.

Honestly, I am impressed that all of this gets done in less than 100ms.

~~~
nojvek
Computers are fast. 100ms is eons for things that just run on CPU. With a 2ghz
computer, you can count from 1 to almost a billion. That's a billion little
steps that can happen in the blank of an eye.

~~~
Skunkleton
The issue is that there are a bunch of steps that are polled (usb), or that
require many context switches/interactions with the scheduler. All of this
adds significant latency, regardless of the throughput of the CPU.

------
matthavener
PS/2 keyboards are used by serious gamers because the scan rate is higher than
USB.

See [https://superuser.com/questions/16893/do-usb-or-
ps-2-keyboar...](https://superuser.com/questions/16893/do-usb-or-
ps-2-keyboards-respond-faster)

~~~
HugoDaniel
do serious gamers avoid v-sync ? even at 120Hz they get at least ~8ms *
2(double buffer) latency right ?

~~~
dsr_
Yes, they want freesync or g-sync monitors with high refresh rates.

~~~
a_t48
Or a good enough machine so that you never dip below native framerate.

~~~
sgarman
Even so you would never use vsync as it will introduce input lag in most
gaming engines.

~~~
sgtmas2006
Most competitive players will have their own configs for competitive play etc.
I have tournament/LAN configs, online play configs, and my video settings
mostly stay the same. All tuned for lowest latency and highest visibility.

------
olegkikin
Measuring using sound should be more precise. Even a bad mic has orders of
magnitude more time resolution than a 240fps camera.

Something like click-to-beep.

------
ChuckMcM
I find my typing accuracy is affected by keyboard latency.

An interesting way to test this would be to use a sensor to note how the point
where a key was definitely "headed down" (say > 10% of its total travel) and
then waiting for the message to show up.

In older keyboards the main CPU was doing some of the debouncing so it knew
"right away" that a keyboard was pressed. That cuts down on latency as well.

Another test case might be to put a USB -> PS/2 adapter on the keyboard. This
lets the onboard CPU know to send the keycode as soon as it has decoded and
debounced it.

~~~
latigidigital
I'd really like to see more research done on this subject.

I clock about 15 keystrokes per second while typing full speed, and I find
serious issues with accuracy using most contemporary keyboards, even on gaming
and higher-end OEM equipment.

Edit: Some keyboards are also practically unusable due to dropped inputs above
a certain rate.

------
alasdair_
Isn't a big part of the reason "gaming" keyboards cost so much because they
can register more than three keys (sometimes four) being hit at the same time
- something many cheaper keyboards cannot do due to the way they are wired?

~~~
munchbunny
Yes, n-key rollover _sometimes_ comes up. In practice, I've only had it become
an issue in the wild either when more than one player is sharing the keyboard
or, in some rare games, primarily simulators, where you might need to hold
multiple keys.

~~~
lelandbatey
I've had keyboards which where marketed as professional keyboards have very
obvious problems with this. Specifically, I had a Logitech MX5500 and if you
where holding down the 'D' key and then pressed the 'S' key, the keyboard
would never send the 'S' key (though I might remember those keys backwards).
This is a problem because many a video game has you use the 'WASD' keys as
direction keys to control movement, so trying to move backwards and to the
right would fail.

So it's not like nobody experiences this problem.

~~~
jetpacktuxedo
As mentioned in my other comment, that is a symptom of ghosting, not of being
limited to the standard 6-key rollover set by the usb spec.

------
fred256
The experience of 100 ms latency is definitely noticeable. Ask anyone who's
ever ssh'd to a server across a continent or ocean. Empirically, I notice I
have a lot more typos in such a situation.

------
microcolonel
I've been experimenting with alternative protocols to HID. I'm not satisfied
with fixed-interval input polling out of sync with vsync; it takes way too
many samples to reach the desired latency (and especially jitter!) numbers.

As for keyboards, there's no real excuse not to just have a Bigass™ shift
register (or a couple) and address every keyswitch with a trace and an
interrupt crossbar. There's a limit to how cheap a good-enough keyboard can
ultimately be, so a difference of a few cents in BOM and assembly, and
slightly more intricate membrane layouts is not worth crying over.

The methodology here is broken for non-linear long-travel keyswitches, for
which the "point at which the key starts moving" is the wrong point to
measure. For example, I'm typing this on buckling-spring keyswitches. The
break for these switches is part way down the stroke, this is intentional and
does not contribute to "latency", since the intent of depressing the key above
the break is _not_ to send the keypress at that moment, but to be ready to
cross the break once the previous key has been pressed. This is very similar
to how good handgun triggers typically function: a light, firm, and smooth
_uptake_ before a _break_ , and hopefully with a _reset_ very near the
_break_. It communicates to the user how close they are to actuating the
switch.

In the case of linear long-travel switches (i.e. Cherry MX Red style
switches), it's harder to decide where to consider the key "pressed", but in
the case of non-linear long-travel switches (buckling spring, Cherry MX Blue)
it's clear that the _break_ is when the keypress should be registered, not the
beginning of the _uptake_. In the case of non-linear switches, they don't need
to bottom out to register keypresses, so they can have exceptionally low
latency. With sufficient spring stiffness, and a long enough heel, buckling
spring keyswitches should take less time to actuate than scissor-dome
switches.

Added:

Regarding the testing methodology, it seems like you could do better with a
combination of a motor, an armature, and a small strain gauge (or a
measurement of motor load). The motor will apply consistent force at
consistent peak acceleration between tests if you input consistent voltage.
For non-linear switches, you can measure the break time as a junction in the
applied force across the strain gauge or in the motor load on one of the
analog inputs on your logic analyzer; for linear switches, you can measure the
start of actuation the same way. Motor load would work just fine, since you're
not interested in the exact force exerted, and thus don't need to calibrate
for the efficiency of the motor.

~~~
secure
Super interesting post, thanks. Do you have any more details on your HID
alternative to share? You’ll need a custom USB driver for that, right?

------
ilaksh
This great article and the other recent one from him started me down the path
of thinking about an end-to-end optimized modern computer and operating
environment.

If you _could_ (not saying it's easy or even necessarily practical at all)
drop replace all of the slow stuff like high-latency keyboards, syscalls, CPU-
GPU communication (i.e. effective HSA) and build some proof-of-concept
operating environment (that was explicitly incompatible with existing stuff)..
I think you could get a pretty fast computer. It would be fun to try.

Anyway is there a Cherry MX keyboard that has low travel and low latency
overall?

~~~
jetpacktuxedo
Not sure about low latency (especially since this article seems to have failed
to test that at all...), but for low-profile cherry-style switches you could
look into the new low-profile Kailh switches, which are sort of based on the
old Cherry ML switches. The only manufactured board you can buy with these
right now is the Havit HV-KB390L[1], as far as I know.

If you are really tied to the cherry mx style you could check out the kailh
and cherry "speed" switches, which have slightly shorter travel distance and a
higher actuation point.

[1] [https://www.amazon.com/Mechanical-Keyboard-Extra-Thin-
Switch...](https://www.amazon.com/Mechanical-Keyboard-Extra-Thin-Switches-HV-
KB390L/dp/B0722GG88M)

------
snvzz
It would be cool to look at Linux vs the BSDs on this. BSDs (dragonfly and
openbsd) do feel like they react faster to keyboard input, but I've always
wondered whether it's actually faster or just imagined.

------
nikodunk
I just gotta say I LOVE these un-styled pages. I come across them more and
more – a result of us all being sick of bloated web?

~~~
geokon
You should try the readability mode in Firefox

------
grantwu
This article prompted the following questions for me:

1\. How well did the historical systems do, and why? Presumably non-negligible
key travel is not a modern invention.

2\. How much of the latency is key travel? (i.e. what korethr said)

3\. How exactly were the keys pressed/how fast were they pressed? All the
article says about the experimental setup is "The start-of-input was measured
by pressing two keys at once – one key on the keyboard and a button that was
also connected to the logic analyzer."

~~~
digi_owl
1\. i suspect it comes down only a single program having full reign of the
system at a time, and everything living in either RAM or ROM (no page faults
etc).

------
rbanffy
On the debouncing thing, Razer announced one with optical switches instead of
electrical.

~~~
enthdegree
Yep, also capacitive and Hall-effect switches don't need debouncing.

~~~
rbanffy
I think a couple of my Apple II clones had hall-effect keyboards. Too bad
their graphics are not very competitive today.

------
oskenso
So.. I noticed the huge latency difference between (Alt+Ctrl+F1) tty1 and
Gnome with X11. After some tests using "Is it snappy?" app and my das keyboard
I decided to check if Wayland had similar latency problems. After switching to
Wayland I cut 40ms off my keyboard latency.. hmm. I don't know why that is but
I assume there's some sort of frame buffer latency. The only thing I miss now
is Plank :[

------
gsich
Here is a video where someone is testing USB latency, although with USB hubs:

[https://www.youtube.com/watch?v=nbu3ySrRNVc](https://www.youtube.com/watch?v=nbu3ySrRNVc)

------
some1else
I'm looking for a low-latency, NKRO, chiclet-style keyboard. Would freak out
if it also had individual LED backlights. Build it, and I promise to
successfully market it as a musical instrument.

P.s.: I currently use external Apple keyboards to perform & make music (with
things like [http://qwerkey.xyz](http://qwerkey.xyz)).

------
rdl
Has anyone made the "direct wire to every key" keyboard? Getting rid of
debouncing would be kind of cool.

~~~
jotux
Wiring each key to an input would get rid of scanning, not debouncing.

------
wwarner
I've been wondering about this for longer than I care to admit. I always felt
the perceived responsiveness of my old sparc 20 was much better than pcs I
used 15 years later, and I thought it had to do with keyboard latency and
interrupt processing.

------
tesseract
I probably missed something but:

> It’s possible to get down to the 50ms range in well optimized games with a
> fancy gaming setup, and there’s one particularly impressive consumer device
> that can easily get below that.

Is the device in question mentioned anywhere?

~~~
wolf550e
Yes, the apple magic keyboard with 15ms latency.

~~~
tesseract
Oh. I guess I interpreted the passage I quoted as referring to a complete
keypress-to-display latency, which wasn't tabulated in the article (vs.
keypress-to-USB). And the Apple keyboard isn't that much of an outlier with
the next-fastest keyboard coming in at 20ms. So I'm a bit let down but I'll
accept it.

------
ksec
And Apple try very hard to optimize input latency on Apple Pencil which i
believe the newer version on iPad Pro is now sub 10ms?

I think we should have rule on OSX and iOS where this sub 10ms latency is
standard.

------
Thews
I'm using a das keyboard 4 on an iMac and did some tests to see what kind of
latency different programs had for the cursor moving with just personal
observations. iTerm seems to be significantly slower to move the cursor than
Chrome or TextEdit.

Before seeing this article I've thought that iTerm seemed slow before to show
text, it'd be nice to see a writeup on how long it took for text to render
after keyboard input on a few different programs to get developers to use the
same methods to keep this as quick as possible.

------
sturmeh
Completely missing the fact that enthusiast keyboards still prefer PS/2 for
NKRO (no key-rollover) and HW interrupt support which results in sub 10ms
delays.

~~~
vehementi
NKRO is N-key rollover, as opposed to 2-key rollover (limited to pressing 2
keys at once) - N meaning any number

------
greggman
I'm confused. the first claim is Apple 2 has a fast response The second claim
is that key travel matters. Short = faster

But Apple 2 keys are not short travel keys

------
unwttng
I feel so vindicated for gaming with an Apple keyboard on my Windows PC cus it
was the only thing I had hanging around

------
mxstbr
7 lines of CSS to make this website more readable:

    
    
        body {
          max-width: 40em;
          line-height: 1.5;
          font-size: 18px;
          margin: 0 auto;
          font-family: sans-serif;
        }
    

Copy and paste them into your DevTools and enjoy this great post!

~~~
majewsky
What's it with font-size recommendations getting larger and larger every year?
When I started writing CSS for my websites, the standard font-size was 12px
(sometimes 10 or 11).

~~~
some1else
The dot sizes of screens are decreasing. Also the resolutions were lower, so
we had to save space.

------
kazinator
You have to look at fingertip travel time, not keycap travel time, for a more
complete picture.

Those cracker-thin chicklets that comprise the Apple Magic keyboard will only
make you faster if you rest your fingertips on the caps.

That may not work so well in all games; it depends on the controls. If you
rest a finger on a certain key, but a situation requires you to use that
finger to react with a different (though near by) key, you're at a
disadvantage compared to having the finger raised so that it can strike either
key with equal speed.

------
kentt
Makes me wonder about the latency of bt keyboards as well as my custom made
keyboard controller _.

_ HHKB JP with Hasu's controller

------
petepete
I can't see the merit in that particular test. It's the actuation point that
matters.

For more depth than anyone really needs, see the r/mechanicalkeyboards wiki

[https://www.reddit.com/r/MechanicalKeyboards/wiki/switch_gui...](https://www.reddit.com/r/MechanicalKeyboards/wiki/switch_guides)

------
sgt
Has anyone benchmarked the keyboard latency of recent generations MacBook Pro
Retinas?

~~~
M4v3R
I don't have a way to measure raw USB events, but it takes around 90 ms
between me pressing a key on the Macbook's (2015 model) keyboard and a
character showing in the TextEdit.app.

~~~
skykooler
Some of that is surely in the OS and display however. I wonder how you'd go
about measuring the latency of a laptop keyboard?

~~~
wmf
Patch into the flex cable between the keyboard and motherboard. Maybe if Dan
and bunnie cross paths...

------
lolc
By coincidence I just replaced my last Apple Keyboard with an MS 4000 today. I
find it curious that they are both at the top of the list, even though I've
never considered hardware latency an issue.

------
hguhghuff
So maybe i could rig up my Apple 2 as a keyboard....

------
feelin_googley
"It all started because I had this feeling that some old computers feel much
more responsive than modern machines."

s/modern/recent/

"For example, an iMac G4 running macOS 9 or an Apple 2 both feel quicker than
my 4.2 GHz Kaby Lake system."

Kaby Lake system running OSX? I have one of the last G4 that came with OS9.
Based on intuition it would make audio applications "feel" slower, when OSX
came out I did not "upgrade", despite the marketing at the time. I guess I am
not the only one.

"It turns out the machines that feel quick are actually quick, much quicker
than my modern computer - computers from the 70s and 80s commonly have
keypress-to-screen-update latencies in the 30ms to 50ms range out of the box,
whereas modern computers are usually in the 100ms to 200ms range."

"... where we are today, where can buy a system with the CPU that gives you
the fastest single-threaded performance money can buy and get 6x the latency
of a machine from the 70s."

Methinks when someone spends that kind of money on a system, they will never
accept findings like these. They are not likely to respond "inquisitively" to
someone who describes achieving better speeds with a "less powerful" system
that costs a fraction of what they paid. More likely, they will try to
discredit them.

~~~
digi_owl
I suspect the culprit is not the hardware, but the software.

Back in the day there were very little between the keyboard and the screen,
and most of it were either in rom or in ram.

Never mind that unless one were dealing with a big iron or similar, multi-
tasking was a big nope.

These days most OSs have 10s to 100s of processes going right after a first
boot on a clean install. And all those can trip something at "random"
intervals.

~~~
subwayclub
Just the other day I replied to a Reddit thread, and told a gamer who
experienced periodic frame drops in CS:GO to check the other system processes.
He protested that he had nothing else running, but elsewhere in the thread a
Task Manager screenshot revealed that Windows 10 Smartscreen Filter was
chewing through files and bottlenecking the HDD(a problem I've also
experienced).

Basically, desktop Windows has crossed the threshold of "needs SSD" to perform
adequately. And in theory that shouldn't impact the performance of an older
game, but it does, because what happens next is that the scheduler
misallocates process time and throws off everything.

~~~
digi_owl
More like desktops in general, and smartphones as well even after the decade
long reboot, are running out of actual new stuff to cram in there (in a sense
the desktop, bar some security issues, was done with Windows 95).

Thus desktop developers keep adding questionable "quality of life" stuff like
file system indexers to justify their continued version releases (never mind
avoiding doing actual code maintenance).

------
ddade
I stopped after I read "Apple 2" for the second time.

