Last active
December 23, 2024 17:29
-
-
Save derekmc/f223518b02d86e0ba04199660a203770 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<style> | |
/* CSS */ | |
#c0{ | |
border: 2px solid blue; | |
} | |
@media (orientation:portrait){ | |
body { | |
margin: 0; | |
overflow: hidden; | |
transform-origin: right; | |
transform: translate(-50vh, 50vh) rotate(90deg); | |
writing-mode: vertical-rl; | |
} | |
.panel{ | |
transform: rotate(-90deg) translate(0vw, -50vh) ; | |
writing-mode: vertical-rl; | |
margin: 0; | |
overflow: hidden; | |
transform-origin: right; | |
writing-mode: horizontal-rl; | |
position: absolute; | |
top:0; bottom: 0; left: 0; | |
} | |
.panel button{ | |
padding: 9px; | |
} | |
} | |
body{ | |
margin: 0; | |
overflow: hidden; | |
} | |
.panel{ | |
position: absolute; | |
bottom: 0; left: 0; right: 0; | |
text-align: center; | |
z-index: 999; | |
padding: 12px; | |
background: #000; | |
color: #fff; | |
font-family: sans-serif; | |
} | |
.panel button{ | |
background: #fff; | |
color: #000; | |
font-weight: bold; | |
border: none; | |
font-size: 20px; | |
border-radius: 12px; | |
padding: 9px; | |
margin: 5px 5px; | |
} | |
/* END */ | |
</style> | |
</head> | |
<body> | |
<div class="markdown-src"> | |
<!-- HTML --> | |
<canvas id='c0'></canvas> | |
<div class='panel'> | |
Click above to focus page then click or type to see chord codes. | |
<!--<br><br> | |
<button id='record()'>Record</button> | |
<button id='play()'>Play</button> | |
<button id='load()'>Load</button> | |
<button id='tempo()'>Tempo</button>--> | |
</div> | |
<!-- END --> | |
</div> | |
<div style="display: none;"></div> | |
<script> | |
let datakey = "__HTML_NOTES__:notedataid=DPjVRX6o2y" | |
let inframe = (window!=window.top) | |
window.Note = {} | |
window.Note.data = | |
/* JSON */ | |
{}; | |
/* END */ | |
(function(){ | |
window.Note.save = saveData | |
window.Note.load = loadData | |
window.Note.autoSave = autoSave | |
function getNoteModule(){ | |
if(!window['Note']) window.Note = {} | |
return window.Note | |
} | |
function loadData(){ | |
let note = getNoteModule() | |
if(!inframe){ | |
try{ | |
let savedata = localStorage.getItem(datakey) | |
if(savedata && savedata.length){ | |
note.data = JSON.parse(savedata) | |
} | |
window.addEventListener("message", onMessage) | |
} catch(e){ | |
console.log("No local data") | |
console.log(e) | |
} | |
} else { | |
return note.data | |
} | |
} | |
let firstLogCall = true | |
let originalLogFunc = console.log | |
function log(x, ...rest){ | |
if(firstLogCall) | |
document.body.appendChild(document.createElement("hr")) | |
else | |
document.body.appendChild(document.createElement("br")) | |
document.body.appendChild( | |
document.createTextNode(x + " " + rest.join(" "))) | |
firstLogCall = false | |
originalLogFunc(x, ...rest) | |
} | |
console.log = log | |
let SaveInterval = 500 | |
window.addEventListener("load", ()=>{ | |
convertMarkdown() | |
autoSave() | |
loadData() // dont wait for async | |
}) | |
let saveIntervalRef = null | |
function autoSave(enable){ | |
if(enable === undefined) enable = true | |
clearInterval(saveIntervalRef) | |
if(enable){ | |
saveIntervalRef = window.setInterval(saveData, SaveInterval) | |
} | |
} | |
// this is preferred over a 'localstorage' polyfill for a frame, | |
// so the programmer doesn't assume this is the browsers localstorage | |
function saveData(){ | |
let note = getNoteModule() | |
if(inframe){ | |
let msg_obj = { | |
action: "saveData", | |
data: JSON.stringify(note['data']) | |
} | |
let message = JSON.stringify(msg_obj) | |
window.parent.postMessage(message) | |
} else { | |
localStorage.setItem(datakey, JSON.stringify(note['data'])) | |
} | |
} | |
let md_subs = [ | |
/(\n|^)\s*######\s([^\s#].*)\n*/g, "\n<h6 id=\"$2\">$2</h6>\n", | |
/(\n|^)\s*#####\s([^\s#].*)\n*/g, "\n<h5 id=\"$2\">$2</h5>\n", | |
/(\n|^)\s*####\s*([^\s#].*)\n*/g, "\n<h4 id=\"$2\">$2</h4>\n", | |
/(\n|^)\s*###\s*([^\s#].*)\n*/g, "\n<h3 id=\"$2\">$2</h3>\n", | |
/(\n|^)\s*##\s*([^\s#].*)\n*/g, "\n<h2 id=\"$2\">$2</h2>\n", | |
/(\n|^)\s*#\s*([^\s#].*)\n*/g, "\n<h1 id=\"$2\">$2</h1>\n", | |
/\n(\s*)[\*\-](.*)/g, '\n<ul><li>$2</li></ul>', | |
/\n+\n(?=[^#\n])/g, "\n\n<br><br>", | |
/\n+\n/g, "\n", | |
/__([^_\n]*)__/g, "<b>$1</b>", | |
/\*\*([^_\n]*)\*\*/g, "<b>$1</b>", | |
/_([^_\n]*)_/g, "<i>$1</i>", | |
/\*([^_\n]*)\*/g, "<i>$1</i>", | |
/\!\[([^\]\n]*)\]\(([^\)\n]*)\)/g, "<img src=\"$2\" alt=\"$1\"></img>", | |
/\[([^\]\n]*)\]\(([^\)\n]*)\)/g, "<a href=\"$2\" target=\"_blank\">$1</a>", | |
] | |
function onMessage(){ | |
try{ | |
let message = JSON.parse(e.data) | |
// console.log('received message', message) | |
if(message.hasOwnProperty("event")){ | |
if(message.event == "keydown" && typeof keydown != "undefined"){ | |
keydown(message) | |
} | |
if(message.event == "keyup" && typeof keyup != "undefined"){ | |
keydown(message) | |
} | |
} | |
} catch(e){ | |
console.warn("error processing message: " + e.data) | |
} | |
} | |
function convertMarkdown(){ | |
let containers = document.getElementsByClassName("markdown-src") | |
for(let j=0; j<containers.length; ++j){ | |
let container = containers[j] | |
let src = container.innerHTML | |
for(var i=0; i<md_subs.length-1; i += 2){ | |
var search = md_subs[i] | |
var replace = md_subs[i+1] | |
src = src.replace(search, replace) | |
} | |
container.innerHTML = src | |
} | |
} | |
})() | |
//window.addEventListener('load', htmlNotesMainFunc) | |
//function htmlNotesMainFunc(){ | |
/* JS */ | |
let imgdata = "data:image/png;base64,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" | |
let base36 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' | |
let resetTime = 12*1000 | |
let dt = 200 | |
let keyrows = [74, 59, 107, 127, 143, 196, 178, 263] | |
let keydx = 68.8, keysize = 60 | |
let temp = {} | |
function reset(){ | |
console.info('Resetting temp vars') | |
temp = { | |
dirty: true, | |
activeKeys: {}, | |
holdKeys: {}, | |
portrait: false, | |
shiftPress: false, | |
resetTimeout: null, | |
} | |
resize() | |
} | |
function delayReset(){ | |
clearTimeout(temp.resetTimeout) | |
temp.resetTimeout = setTimeout(reset, resetTime) | |
} | |
let keyaddresses = qw` | |
0-0 0-2 0-3 0-7 0-8 0-10 | |
1-0 1-1 1-2 1-7 1-8 1-9 | |
2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 | |
3-2 3-3 3-5 3-6` | |
let keynames = qw` | |
1 3 4 8 9 - | |
q w e i o p | |
s d f g h j k l | |
c v n m` | |
let keyvalues = qw` | |
8 3 3 3 3 8 | |
4 2 2 2 2 4 | |
1 1 4 8 8 4 1 1 | |
G C C G` | |
let keydigits = qw` | |
1 1 0 2 3 3 | |
1 1 0 2 3 3 | |
1 0 0 0 2 2 2 3 | |
0 0 2 2` | |
let keyfingers = qw` | |
3 2 1 5 6 7 | |
3 2 1 5 6 7 | |
2 1 0 0 4 4 5 6 | |
0 0 4 4` | |
window.addEventListener('load', main) | |
function addBase36(x, y){ | |
let n = base36.indexOf(x) | |
let m = base36.indexOf(y) | |
if(n < 0 || m < 0){ | |
console.warn("invalid base36 digit", n , m) | |
} | |
let s = n + m | |
return (s > 35? '1' : '') + base36[s%36] | |
} | |
function resize(){ | |
let width = window.innerWidth | |
let height = window.innerHeight | |
temp.portrait = height > width | |
if(temp.portrait){ // show sideways in portrait | |
[width, height] = [height, width] } | |
id('c0').width = width - 4 | |
id('c0').height = height - 5 | |
} | |
function main(){ | |
reset() | |
window.addEventListener('mousedown', mousedown) | |
window.addEventListener('keydown', keydown) | |
window.addEventListener('keyup', keyup) | |
window.addEventListener('resize', resize) | |
window.addEventListener('mousedown', delayReset) | |
window.addEventListener('keydown', delayReset) | |
window.addEventListener('keyup', delayReset) | |
window.addEventListener('resize', delayReset) | |
setInterval(draw, dt) | |
setTimeout(()=>temp.dirty=true, 1500) | |
setTimeout(()=>id('c0').focus(),1000) | |
} | |
function touchstart(e){ | |
e.preventDefault() | |
mousedown({clientX: e.targetTouches[0].clientX, | |
clientY: e.targetTouches[0].clientY}) | |
} | |
function mousedown(e){ | |
let x = e.clientX, y = e.clientY | |
let w = id('c0').width, h = id('c0').height | |
if(temp.portrait){ // show sideways in portrait | |
[x, y] = [y, h-x]; | |
console.info('portrait', x, y, w, h) | |
} | |
x = Math.round(1000*x/w) | |
y = Math.round(1000*y/w) | |
let keyIndex = null | |
for(let j=0; j<4; ++j){ | |
if(keyIndex !== null) break | |
let x0 = keyrows[2*j], y0 = keyrows[2*j+1] | |
for(let i=0; i<12-j; ++i){ | |
let x1 = x0 + keydx*i | |
if(x > x1 && x < x1 + keysize && y > y0 && y < y0 + keysize){ | |
let keyaddress = j + '-' + i | |
keyIndex = keyaddresses.indexOf(keyaddress) | |
console.info('key', keyaddress, keyIndex) | |
if(keyIndex < 0) keyIndex = null | |
else break | |
} | |
} | |
} | |
if(keyIndex == null){ | |
// clear active and hold keys | |
temp.activeKeys = {} | |
temp.holdKeys = {} | |
} else { | |
// toggle the active and hold keys | |
if(temp.activeKeys[keyIndex] || temp.holdKeys[keyIndex]){ | |
delete temp.holdKeys[keyIndex] | |
delete temp.activeKeys[keyIndex] | |
} else { | |
//temp.activeKeys[keyIndex] = 1 | |
temp.holdKeys[keyIndex] = 1 | |
for(let i=0; i<keyfingers.length; ++i){ | |
if(i != keyIndex && keyfingers[i] == keyfingers[keyIndex]){ | |
delete temp.holdKeys[i] | |
delete temp.activeKeys[i] | |
} | |
} | |
} | |
} | |
//console.info(x, y) | |
} | |
function draw(){ | |
//if(!temp.dirty) return | |
temp.dirty = false | |
let {width, height} = id('c0') | |
let img = new Image | |
let ctx = id('c0').getContext('2d') | |
img.src = imgdata | |
ctx.fillStyle = 'black' | |
ctx.fillRect(0, 0, width, height) | |
let w = img.naturalWidth, h = img.naturalHeight | |
let scale = width/w | |
ctx.drawImage(img, 0, 0, scale*w, scale*h) | |
let hold = Object.keys(temp.holdKeys) | |
//console.info('active', hold, hold.map(i=>keyaddresses[i])) | |
let skip = hold.length > 0? hold.map(i=>keyaddresses[i]) : keyaddresses | |
drawKeyCovers(ctx, skip) | |
ctx.fillStyle = '#fff' | |
drawCodes(ctx, scale*w/2, scale*h + 15) | |
ctx.textAlign = 'center' | |
ctx.fillStyle = '#fff' | |
ctx.font = "18px arial" | |
ctx.textBaseline = 'top' | |
ctx.fillText('Chord-20-20 System', width/2, 10) | |
ctx.textBaseline = 'bottom' | |
ctx.font = "14px arial" | |
//ctx.fillText('Click keyboard to focus and type to see chord codes.', width/2, 0.85*height - 40) | |
} | |
function drawKeyCovers(ctx, skip){ | |
let w = id('c0').width | |
let s = w/1000 | |
ctx.fillStyle = 'rgba(0,15,30,0.82)' | |
for(let j=0; j<4; ++j){ | |
let x0 = keyrows[2*j], y = keyrows[2*j+1] | |
for(let i=0; i<12-j; ++i){ | |
if(skip.indexOf(j + "-" + i) >= 0) | |
continue | |
let x = x0 + keydx*i | |
ctx.fillRect(s*x, s*y, s*keysize, s*keysize) | |
} | |
} | |
} | |
function drawCodes(ctx, x, y){ | |
let hold = Object.keys(temp.holdKeys) | |
let code = qw`0 0 0 0` | |
for(let i=0; i<hold.length; ++i){ | |
let n = hold[i] | |
let pos = keydigits[n] | |
let val = keyvalues[n] | |
code[pos] = addBase36(code[pos], val) | |
} | |
if(code[1] == '0' && code[3] == '0'){ | |
code[1] = code[3] = ' ' | |
} | |
ctx.textAlign = 'center' | |
ctx.textBaseline = 'hanging' | |
ctx.font = "30px monospace" | |
ctx.fillText(code.join(' '), x, y) | |
//console.info('code', code.join(' ')) | |
} | |
function keydown(e){ | |
let k = e.key.toLowerCase() | |
//console.log('key', k) | |
let i = keynames.indexOf(k) | |
if(i >= 0 && !temp.activeKeys[i]){ | |
temp.dirty = true | |
temp.activeKeys[i] = temp.holdKeys[i] = 1 | |
for(let j=0; j<keyfingers.length; ++j){ | |
if(i != j && keyfingers[i] == keyfingers[j]){ | |
delete temp.holdKeys[j]} | |
} | |
} | |
} | |
function keyup(e){ | |
let k = e.key.toLowerCase() | |
let i = keynames.indexOf(k) | |
if(i >= 0){ | |
//console.info(`keyup: '${k}' #${i}`) | |
temp.dirty = true | |
delete temp.activeKeys[i] | |
//delete temp.holdKeys[i] | |
if(Object.keys(temp.activeKeys).length == 0){ | |
temp.holdKeys = {} | |
} | |
} | |
} | |
function qw(parts, ...rest){ | |
let s = '' | |
for(let i=0; i<rest.length; ++i){ | |
s += parts[i] + rest[i]} | |
s += parts[rest.length] | |
return s.trim().split(/\s+/) | |
} | |
function id(x){ | |
return document.getElementById(x) | |
} | |
/* END */ | |
//} | |
</script> | |
</body> | |
<html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment