3 ms·
Huh, this doesn't seem to handle commas or semicolons at all. I can't immediately see why, since string.toUpperCase() maps "," to "," and ";" to ";", as it shou
by doomrobo 12y ago
Huh, this doesn't seem to handle commas or semicolons at all. I can't immediately see why, since string.toUpperCase() maps "," to "," and ";" to ";", as it should. And switching input to
"uyvyu,pl,ynuuupl,kmk,,uyvuyvyu,pl,ynuuupl,kmk,,uyvppp;[[;plp;;;pl,kmk,ynuu,,,kmmml;pl,,kuu,lp;[,lp;l,"
completely breaks it about half way through.
Anyway, cool hack!
- peterjmag 12y agoThat's because the keydown event uses keyCode instead of charCode, and the two don't always match. Try typing Shift+U and then '[' on this page to see what I mean: http://unixpapa.com/js/testkey.html http://unixpapa.com/js/testkey.html. Since KeyboardJS is already loaded via requirejs, we can require it and then use it to get the keyCode for each character in the for loop. var KeyboardJS = require('lib/keyboard'); [...] for (var i = 0; i < input.length; ++i) { var code = KeyboardJS.key.code(input.charAt(i)); if (code) { soundArray.push(code); } else { soundArray.push(32); } } Here's an updated version of the script, using your example as input: https://gist.github.com/peterjmag/489364ca58330c348c33 https://gist.github.com/peterjmag/489364ca58330c348c33