KLL Animation Question


#1

I like the built-in ‘fingerprints’ animation in the Kiibohd Configurator pretty well, but I am trying to change it up a little. Currently, every key press and release causes the LED to light up and turn off. I want to make it so that a key press lights it up, and it stays lit until I release. I thought of creating two animations, fingerprints_on and fingerprints_off, and having the press action trigger the first animation and the release trigger the second.

Here are the animations as defined in the JSON keymap:

"fingerprints_on": {
	"settings": "framedelay:2, framestretch, loops:1",
	"frames": [
		"P[r:i,c:i](0,0,0)",
		"P[r:i,c:i](0,0,0)",
		"P[r:i,c:i](71,71,71)",
		"P[r:i,c:i](119,119,119)",
		"P[r:i,c:i](171,171,171)",
		"P[r:i,c:i](226,226,226)",
		"P[r:i,c:i](255,255,255)",
		"P[r:i,c:i](255,255,255)"
	]
},
"fingerprints_off": {
	"settings": "framedelay:2, framestretch, loops:1",
	"frames": [
		"P[r:i,c:i](255,255,255)",
		"P[r:i,c:i](255,255,255)",
		"P[r:i,c:i](226,226,226)",
		"P[r:i,c:i](171,171,171)",
		"P[r:i,c:i](119,119,119)",
		"P[r:i,c:i](71,71,71)",
		"P[r:i,c:i](0,0,0)",
		"P[r:i,c:i](0,0,0)"
	]
}

From my meager (mis)understanding of the KLL spec, I thought the following custom KLL would work:

S[0x00-0x5F](P) : A[fingerprints_on](start);
S[0x00-0x5F](R) : A[fingerprints_off](start);

However, pressing a key and releasing a key still causes the LED to fade on and then fade off, just like the built-in fingerprints behavior. Sometimes the LED will also stay lit up after releasing the key, but pressing and releasing it will trigger the regular animation too.

I’m clearly doing something (everything?) wrong, but I can’t figure out what it is. Please help this ignorant newb :slight_smile: