diff --git a/define.dot b/define.dot index 8f7c5df..019c336 100644 --- a/define.dot +++ b/define.dot @@ -7,21 +7,7 @@ digraph settings { COMBO_FIRING_DECAY -> NUMBER_50 - HOMEY_HOLDING_TIME -> DIFFICULTY_LEVEL_HOLDING_TIME - - HOMEY_STREAK_DECAY -> DIFFICULTY_LEVEL_STREAK_DECAY - - INDEX_HOLDING_TIME -> DIFFICULTY_LEVEL_HOLDING_TIME - - INDEX_STREAK_DECAY -> DIFFICULTY_LEVEL_STREAK_DECAY - - PLAIN_HOLDING_TIME -> DIFFICULTY_LEVEL_HOLDING_TIME - - PLAIN_STREAK_DECAY -> DIFFICULTY_LEVEL_STREAK_DECAY - - SPACE_HOLDING_TIME -> DIFFICULTY_LEVEL_HOLDING_TIME - - SPACE_STREAK_DECAY -> DIFFICULTY_LEVEL_STREAK_DECAY + TAPPING_RESOLUTION -> NUMBER_150 RING1_FINGER_MOD -> LALT @@ -51,23 +37,25 @@ digraph settings { HOMEY_HOLDING_TYPE -> "\"tap-preferred\"" - HOMEY_HOLDING_TIME -> NUMBER_240 + HOMEY_HOLDING_TIME -> "+90" + + INDEX_HOLDING_TIME -> "+20" - INDEX_HOLDING_TIME -> NUMBER_170 + MIDDY_HOLDING_TIME -> "+50" - MIDDY_HOLDING_TIME -> NUMBER_200 + RING1_HOLDING_TIME -> "+80" - RING1_HOLDING_TIME -> NUMBER_230 + RING2_HOLDING_TIME -> RING1_HOLDING_TIME - PINKY_HOLDING_TIME -> NUMBER_260 + PINKY_HOLDING_TIME -> "+110" - HOMEY_STREAK_DECAY -> NUMBER_150 + HOMEY_STREAK_DECAY -> TAPPING_RESOLUTION - HOMEY_REPEAT_DECAY -> NUMBER_300 + HOMEY_REPEAT_DECAY -> "+150" CHORD_HOLDING_TYPE -> HOMEY_HOLDING_TYPE - CHORD_HOLDING_TIME -> NUMBER_100 + CHORD_HOLDING_TIME -> "-50" CHORD_STREAK_DECAY -> HOMEY_STREAK_DECAY @@ -75,31 +63,29 @@ digraph settings { INDEX_HOLDING_TYPE -> "\"tap-preferred\"" - INDEX_HOLDING_TIME -> NUMBER_170 - - INDEX_STREAK_DECAY -> NUMBER_100 + INDEX_STREAK_DECAY -> "-50" - INDEX_REPEAT_DECAY -> NUMBER_300 + INDEX_REPEAT_DECAY -> "+150" PLAIN_HOLDING_TYPE -> HOMEY_HOLDING_TYPE - PLAIN_HOLDING_TIME -> NUMBER_200 + PLAIN_HOLDING_TIME -> "+50" PLAIN_STREAK_DECAY -> HOMEY_STREAK_DECAY - PLAIN_REPEAT_DECAY -> NUMBER_300 + PLAIN_REPEAT_DECAY -> "+150" THUMB_HOLDING_TYPE -> "\"balanced\"" - THUMB_HOLDING_TIME -> NUMBER_200 + THUMB_HOLDING_TIME -> "+50" - THUMB_REPEAT_DECAY -> NUMBER_300 + THUMB_REPEAT_DECAY -> "+150" SPACE_HOLDING_TYPE -> THUMB_HOLDING_TYPE SPACE_HOLDING_TIME -> THUMB_HOLDING_TIME - SPACE_REPEAT_DECAY -> NUMBER_150 + SPACE_REPEAT_DECAY -> TAPPING_RESOLUTION PINKY_HOLDING_TYPE -> HOMEY_HOLDING_TYPE @@ -695,49 +681,76 @@ digraph settings { MOUSE_SCROLL_MAXIMUM_SPEED -> NUMBER_10 + + "+90" -> TAPPING_RESOLUTION [color=red] + + "+20" -> TAPPING_RESOLUTION [color=red] + + "+50" -> TAPPING_RESOLUTION [color=red] + + "+80" -> TAPPING_RESOLUTION [color=red] + + "+110" -> TAPPING_RESOLUTION [color=red] + + "+150" -> TAPPING_RESOLUTION [color=red] + + "-50" -> TAPPING_RESOLUTION [color=red] + } subgraph values { graph [rank=same] - "'L'" [label="'L'", style=filled, fillcolor=cyan, shape=diamond] + "'L'" [label="'L'", style=filled, fillcolor=cyan, shape=signature] + + "\"tap-preferred\"" [label="\"tap-preferred\"", style=filled, fillcolor=cyan, shape=signature] - "\"tap-preferred\"" [label="\"tap-preferred\"", style=filled, fillcolor=cyan, shape=diamond] + "+90" [label="+90", style=filled, fillcolor=cyan, shape=signature] - "\"balanced\"" [label="\"balanced\"", style=filled, fillcolor=cyan, shape=diamond] + "+150" [label="+150", style=filled, fillcolor=cyan, shape=signature] - "'N'" [label="'N'", style=filled, fillcolor=cyan, shape=diamond] + "-50" [label="-50", style=filled, fillcolor=cyan, shape=signature] + + "+50" [label="+50", style=filled, fillcolor=cyan, shape=signature] + + "\"balanced\"" [label="\"balanced\"", style=filled, fillcolor=cyan, shape=signature] + + "'N'" [label="'N'", style=filled, fillcolor=cyan, shape=signature] - NUMBER_50 [label="50", style=filled, fillcolor=yellow, shape=diamond] + NUMBER_50 [label="50", style=filled, fillcolor=yellow, shape=signature] - NUMBER_240 [label="240", style=filled, fillcolor=yellow, shape=diamond] + NUMBER_150 [label="150", style=filled, fillcolor=yellow, shape=signature] - NUMBER_170 [label="170", style=filled, fillcolor=yellow, shape=diamond] + NUMBER_500 [label="500", style=filled, fillcolor=yellow, shape=signature] - NUMBER_200 [label="200", style=filled, fillcolor=yellow, shape=diamond] + NUMBER_1 [label="1", style=filled, fillcolor=yellow, shape=signature] - NUMBER_230 [label="230", style=filled, fillcolor=yellow, shape=diamond] + NUMBER_10 [label="10", style=filled, fillcolor=yellow, shape=signature] - NUMBER_260 [label="260", style=filled, fillcolor=yellow, shape=diamond] + NUMBER_0 [label="0", style=filled, fillcolor=yellow, shape=signature] - NUMBER_150 [label="150", style=filled, fillcolor=yellow, shape=diamond] + NUMBER_300 [label="300", style=filled, fillcolor=yellow, shape=signature] + + NUMBER_600 [label="600", style=filled, fillcolor=yellow, shape=signature] + + - NUMBER_300 [label="300", style=filled, fillcolor=yellow, shape=diamond] + "+90" [label="+90", style=filled, fillcolor=salmon, shape=lpromoter] - NUMBER_100 [label="100", style=filled, fillcolor=yellow, shape=diamond] + "+20" [label="+20", style=filled, fillcolor=salmon, shape=lpromoter] - NUMBER_500 [label="500", style=filled, fillcolor=yellow, shape=diamond] + "+50" [label="+50", style=filled, fillcolor=salmon, shape=lpromoter] - NUMBER_1 [label="1", style=filled, fillcolor=yellow, shape=diamond] + "+80" [label="+80", style=filled, fillcolor=salmon, shape=lpromoter] - NUMBER_10 [label="10", style=filled, fillcolor=yellow, shape=diamond] + "+110" [label="+110", style=filled, fillcolor=salmon, shape=lpromoter] - NUMBER_0 [label="0", style=filled, fillcolor=yellow, shape=diamond] + "+150" [label="+150", style=filled, fillcolor=salmon, shape=lpromoter] - NUMBER_600 [label="600", style=filled, fillcolor=yellow, shape=diamond] + "-50" [label="-50", style=filled, fillcolor=salmon, shape=lpromoter] } } diff --git a/define.dot.erb b/define.dot.erb index 36ba0a6..87d998c 100644 --- a/define.dot.erb +++ b/define.dot.erb @@ -5,17 +5,24 @@ digraph settings { <% require 'set' numbers = Set.new + tapping_resolution_formulas = Set.new settings = {} `grep -A1 '^#ifndef' keymap.dtsi.min | grep '^#define'`.lines.each do |define| - (_define, key, value) = define.split + (_define, key, value) = define.chomp.split(/\s+/, 3) case value + when /TAPPING_RESOLUTION ([+\-]) (\d+)/ + warn({ formula: {key => $~} }) + value = "#{$1}#{$2}".inspect + tapping_resolution_formulas << value when /^["']/ - value = value.inspect + warn({ string: {key => value} }) + value = value.rstrip.inspect when /^\d+$/ + warn({ number: {key => value} }) numbers << value value = "NUMBER_#{value}" - when "\\" - warn({ skip: define }) + when "\\", /\(/ + warn({ definition: {key => value} }) next # skip this setting -- it's a complex multi-line definition end settings[key] = value @@ -24,17 +31,24 @@ digraph settings { <% end %> +<% tapping_resolution_formulas.each do |label| %> + <%= label %> -> TAPPING_RESOLUTION [color=red] +<% end %> } subgraph values { graph [rank=same] <% settings.values.grep(/^".*"$/).uniq.each do |string| %> - <%= string %> [label=<%= string %>, style=filled, fillcolor=cyan, shape=diamond] + <%= string %> [label=<%= string %>, style=filled, fillcolor=cyan, shape=signature] <% end %> <% numbers.each do |number| %> - NUMBER_<%= number %> [label="<%= number %>", style=filled, fillcolor=yellow, shape=diamond] + NUMBER_<%= number %> [label="<%= number %>", style=filled, fillcolor=yellow, shape=signature] + <% end %> + + <% tapping_resolution_formulas.each do |label| %> + <%= label %> [label=<%= label %>, style=filled, fillcolor=salmon, shape=lpromoter] <% end %> } } diff --git a/define.svg b/define.svg index 27326f5..d549b98 100644 --- a/define.svg +++ b/define.svg @@ -4,4222 +4,4252 @@ - - + + settings - + OPERATING_SYSTEM - -OPERATING_SYSTEM + +OPERATING_SYSTEM 'L' - -'L' + + + + +'L' OPERATING_SYSTEM->'L' - - + + COMBO_FIRING_DECAY - -COMBO_FIRING_DECAY + +COMBO_FIRING_DECAY NUMBER_50 - -50 + + + + +50 COMBO_FIRING_DECAY->NUMBER_50 - - + + - + -HOMEY_HOLDING_TIME - -HOMEY_HOLDING_TIME - - - -DIFFICULTY_LEVEL_HOLDING_TIME - -DIFFICULTY_LEVEL_HOLDING_TIME - - - -HOMEY_HOLDING_TIME->DIFFICULTY_LEVEL_HOLDING_TIME - - - - - -NUMBER_240 - -240 - - - -HOMEY_HOLDING_TIME->NUMBER_240 - - - - - -HOMEY_STREAK_DECAY - -HOMEY_STREAK_DECAY - - - -DIFFICULTY_LEVEL_STREAK_DECAY - -DIFFICULTY_LEVEL_STREAK_DECAY - - - -HOMEY_STREAK_DECAY->DIFFICULTY_LEVEL_STREAK_DECAY - - +TAPPING_RESOLUTION + +TAPPING_RESOLUTION - + NUMBER_150 - -150 - - - -HOMEY_STREAK_DECAY->NUMBER_150 - - - - - -INDEX_HOLDING_TIME - -INDEX_HOLDING_TIME - - - -INDEX_HOLDING_TIME->HOMEY_HOLDING_TIME - - - - - -INDEX_HOLDING_TIME->DIFFICULTY_LEVEL_HOLDING_TIME - - - - - -NUMBER_170 - -170 - - - -INDEX_HOLDING_TIME->NUMBER_170 - - - - - -INDEX_HOLDING_TIME->NUMBER_170 - - - - - -INDEX_STREAK_DECAY - -INDEX_STREAK_DECAY - - - -INDEX_STREAK_DECAY->HOMEY_STREAK_DECAY - - - - - -INDEX_STREAK_DECAY->DIFFICULTY_LEVEL_STREAK_DECAY - - - - - -NUMBER_100 - -100 - - - -INDEX_STREAK_DECAY->NUMBER_100 - - - - - -PLAIN_HOLDING_TIME - -PLAIN_HOLDING_TIME - - - -PLAIN_HOLDING_TIME->DIFFICULTY_LEVEL_HOLDING_TIME - - - - - -NUMBER_200 - -200 - - - -PLAIN_HOLDING_TIME->NUMBER_200 - - + + + + +150 - - -PLAIN_STREAK_DECAY - -PLAIN_STREAK_DECAY - - - -PLAIN_STREAK_DECAY->HOMEY_STREAK_DECAY - - - - - -PLAIN_STREAK_DECAY->DIFFICULTY_LEVEL_STREAK_DECAY - - - - - -SPACE_HOLDING_TIME - -SPACE_HOLDING_TIME - - - -SPACE_HOLDING_TIME->DIFFICULTY_LEVEL_HOLDING_TIME - - - - - -THUMB_HOLDING_TIME - -THUMB_HOLDING_TIME - - - -SPACE_HOLDING_TIME->THUMB_HOLDING_TIME - - - - - -SPACE_STREAK_DECAY - -SPACE_STREAK_DECAY - - - -SPACE_STREAK_DECAY->DIFFICULTY_LEVEL_STREAK_DECAY - - + + +TAPPING_RESOLUTION->NUMBER_150 + + - + RING1_FINGER_MOD - -RING1_FINGER_MOD + +RING1_FINGER_MOD - + LALT - -LALT + +LALT - + RING1_FINGER_MOD->LALT - - + + - + RING2_FINGER_MOD - -RING2_FINGER_MOD + +RING2_FINGER_MOD - + RALT - -RALT + +RALT - + RING2_FINGER_MOD->RALT - - + + - + INDEX_FINGER_MOD - -INDEX_FINGER_MOD + +INDEX_FINGER_MOD - + LSFT - -LSFT + +LSFT - + INDEX_FINGER_MOD->LSFT - - + + - + LEFT_PINKY_MOD - -LEFT_PINKY_MOD + +LEFT_PINKY_MOD - + PINKY_FINGER_MOD - -PINKY_FINGER_MOD + +PINKY_FINGER_MOD - + LEFT_PINKY_MOD->PINKY_FINGER_MOD - - + + - + RIGHT_PINKY_MOD - -RIGHT_PINKY_MOD + +RIGHT_PINKY_MOD - + RIGHT_PINKY_MOD->PINKY_FINGER_MOD - - + + - + LEFT_RING1_MOD - -LEFT_RING1_MOD + +LEFT_RING1_MOD - + LEFT_RING1_MOD->RING1_FINGER_MOD - - + + - + RIGHT_RING1_MOD - -RIGHT_RING1_MOD + +RIGHT_RING1_MOD - + RIGHT_RING1_MOD->RING1_FINGER_MOD - - + + - + LEFT_RING2_MOD - -LEFT_RING2_MOD + +LEFT_RING2_MOD - + LEFT_RING2_MOD->RING2_FINGER_MOD - - + + - + RIGHT_RING2_MOD - -RIGHT_RING2_MOD + +RIGHT_RING2_MOD - + RIGHT_RING2_MOD->RING2_FINGER_MOD - - + + - + LEFT_MIDDY_MOD - -LEFT_MIDDY_MOD + +LEFT_MIDDY_MOD - + MIDDY_FINGER_MOD - -MIDDY_FINGER_MOD + +MIDDY_FINGER_MOD - + LEFT_MIDDY_MOD->MIDDY_FINGER_MOD - - + + - + RIGHT_MIDDY_MOD - -RIGHT_MIDDY_MOD + +RIGHT_MIDDY_MOD - + RIGHT_MIDDY_MOD->MIDDY_FINGER_MOD - - + + - + LEFT_INDEX_MOD - -LEFT_INDEX_MOD + +LEFT_INDEX_MOD - + LEFT_INDEX_MOD->INDEX_FINGER_MOD - - + + - + RIGHT_INDEX_MOD - -RIGHT_INDEX_MOD + +RIGHT_INDEX_MOD - + RIGHT_INDEX_MOD->INDEX_FINGER_MOD - - + + - + HOMEY_HOLDING_TYPE - -HOMEY_HOLDING_TYPE + +HOMEY_HOLDING_TYPE - + "tap-preferred" - -"tap-preferred" + + + + +"tap-preferred" - + HOMEY_HOLDING_TYPE->"tap-preferred" - - + + + + + +HOMEY_HOLDING_TIME + +HOMEY_HOLDING_TIME + + + ++90 + ++90 + + + +HOMEY_HOLDING_TIME->+90 + + + + + ++90->TAPPING_RESOLUTION + + + + + +INDEX_HOLDING_TIME + +INDEX_HOLDING_TIME + + + +INDEX_HOLDING_TIME->HOMEY_HOLDING_TIME + + + + + ++20 + ++20 + + + +INDEX_HOLDING_TIME->+20 + + + + + ++20->TAPPING_RESOLUTION + + - + MIDDY_HOLDING_TIME - -MIDDY_HOLDING_TIME + +MIDDY_HOLDING_TIME - + MIDDY_HOLDING_TIME->HOMEY_HOLDING_TIME - - + + - - -MIDDY_HOLDING_TIME->NUMBER_200 - - + + ++50 + ++50 + + + +MIDDY_HOLDING_TIME->+50 + + + + + ++50->TAPPING_RESOLUTION + + - + RING1_HOLDING_TIME - -RING1_HOLDING_TIME + +RING1_HOLDING_TIME - + RING1_HOLDING_TIME->HOMEY_HOLDING_TIME - - + + - - -NUMBER_230 - -230 + + ++80 + ++80 - - -RING1_HOLDING_TIME->NUMBER_230 - - + + +RING1_HOLDING_TIME->+80 + + + + + ++80->TAPPING_RESOLUTION + + + + + +RING2_HOLDING_TIME + +RING2_HOLDING_TIME + + + +RING2_HOLDING_TIME->HOMEY_HOLDING_TIME + + + + + +RING2_HOLDING_TIME->RING1_HOLDING_TIME + + - + PINKY_HOLDING_TIME - -PINKY_HOLDING_TIME + +PINKY_HOLDING_TIME - + PINKY_HOLDING_TIME->HOMEY_HOLDING_TIME - - + + - - -NUMBER_260 - -260 + + ++110 + ++110 - - -PINKY_HOLDING_TIME->NUMBER_260 - - + + +PINKY_HOLDING_TIME->+110 + + + + + ++110->TAPPING_RESOLUTION + + + + + +HOMEY_STREAK_DECAY + +HOMEY_STREAK_DECAY + + + +HOMEY_STREAK_DECAY->TAPPING_RESOLUTION + + - + HOMEY_REPEAT_DECAY - -HOMEY_REPEAT_DECAY + +HOMEY_REPEAT_DECAY - - -NUMBER_300 - -300 + + ++150 + ++150 - - -HOMEY_REPEAT_DECAY->NUMBER_300 - - + + +HOMEY_REPEAT_DECAY->+150 + + + + + ++150->TAPPING_RESOLUTION + + - + CHORD_HOLDING_TYPE - -CHORD_HOLDING_TYPE + +CHORD_HOLDING_TYPE - + CHORD_HOLDING_TYPE->HOMEY_HOLDING_TYPE - - + + - + CHORD_HOLDING_TIME - -CHORD_HOLDING_TIME + +CHORD_HOLDING_TIME - - -CHORD_HOLDING_TIME->NUMBER_100 - - + + +-50 + +-50 + + + +CHORD_HOLDING_TIME->-50 + + + + + +-50->TAPPING_RESOLUTION + + - + CHORD_STREAK_DECAY - -CHORD_STREAK_DECAY + +CHORD_STREAK_DECAY - + CHORD_STREAK_DECAY->HOMEY_STREAK_DECAY - - + + - + CHORD_REPEAT_DECAY - -CHORD_REPEAT_DECAY + +CHORD_REPEAT_DECAY - + CHORD_REPEAT_DECAY->HOMEY_REPEAT_DECAY - - + + - + INDEX_HOLDING_TYPE - -INDEX_HOLDING_TYPE + +INDEX_HOLDING_TYPE - + INDEX_HOLDING_TYPE->HOMEY_HOLDING_TYPE - - + + - + INDEX_HOLDING_TYPE->"tap-preferred" - - + + + + + +INDEX_STREAK_DECAY + +INDEX_STREAK_DECAY + + + +INDEX_STREAK_DECAY->HOMEY_STREAK_DECAY + + + + + +INDEX_STREAK_DECAY->-50 + + - + INDEX_REPEAT_DECAY - -INDEX_REPEAT_DECAY + +INDEX_REPEAT_DECAY - + INDEX_REPEAT_DECAY->HOMEY_REPEAT_DECAY - - + + - - -INDEX_REPEAT_DECAY->NUMBER_300 - - + + +INDEX_REPEAT_DECAY->+150 + + - + PLAIN_HOLDING_TYPE - -PLAIN_HOLDING_TYPE + +PLAIN_HOLDING_TYPE - + PLAIN_HOLDING_TYPE->HOMEY_HOLDING_TYPE - - + + + + + +PLAIN_HOLDING_TIME + +PLAIN_HOLDING_TIME + + + +PLAIN_HOLDING_TIME->+50 + + + + + +PLAIN_STREAK_DECAY + +PLAIN_STREAK_DECAY + + + +PLAIN_STREAK_DECAY->HOMEY_STREAK_DECAY + + - + PLAIN_REPEAT_DECAY - -PLAIN_REPEAT_DECAY + +PLAIN_REPEAT_DECAY - - -PLAIN_REPEAT_DECAY->NUMBER_300 - - + + +PLAIN_REPEAT_DECAY->+150 + + - + THUMB_HOLDING_TYPE - -THUMB_HOLDING_TYPE + +THUMB_HOLDING_TYPE - + "balanced" - -"balanced" + + + + +"balanced" - + THUMB_HOLDING_TYPE->"balanced" - - + + - - -THUMB_HOLDING_TIME->NUMBER_200 - - + + +THUMB_HOLDING_TIME + +THUMB_HOLDING_TIME + + + +THUMB_HOLDING_TIME->+50 + + - + THUMB_REPEAT_DECAY - -THUMB_REPEAT_DECAY + +THUMB_REPEAT_DECAY - - -THUMB_REPEAT_DECAY->NUMBER_300 - - + + +THUMB_REPEAT_DECAY->+150 + + - + SPACE_HOLDING_TYPE - -SPACE_HOLDING_TYPE + +SPACE_HOLDING_TYPE - + SPACE_HOLDING_TYPE->THUMB_HOLDING_TYPE - - + + + + + +SPACE_HOLDING_TIME + +SPACE_HOLDING_TIME + + + +SPACE_HOLDING_TIME->THUMB_HOLDING_TIME + + - + SPACE_REPEAT_DECAY - -SPACE_REPEAT_DECAY + +SPACE_REPEAT_DECAY - - -SPACE_REPEAT_DECAY->NUMBER_150 - - + + +SPACE_REPEAT_DECAY->TAPPING_RESOLUTION + + - + PINKY_HOLDING_TYPE - -PINKY_HOLDING_TYPE + +PINKY_HOLDING_TYPE - + PINKY_HOLDING_TYPE->HOMEY_HOLDING_TYPE - - + + - + PINKY_CHORD_HOLDING_TYPE - -PINKY_CHORD_HOLDING_TYPE + +PINKY_CHORD_HOLDING_TYPE - + PINKY_CHORD_HOLDING_TYPE->CHORD_HOLDING_TYPE - - + + - + LEFT_PINKY_CHORD_HOLDING_TYPE - -LEFT_PINKY_CHORD_HOLDING_TYPE + +LEFT_PINKY_CHORD_HOLDING_TYPE - + LEFT_PINKY_CHORD_HOLDING_TYPE->PINKY_CHORD_HOLDING_TYPE - - + + - + RIGHT_PINKY_CHORD_HOLDING_TYPE - -RIGHT_PINKY_CHORD_HOLDING_TYPE + +RIGHT_PINKY_CHORD_HOLDING_TYPE - + RIGHT_PINKY_CHORD_HOLDING_TYPE->PINKY_CHORD_HOLDING_TYPE - - + + - + PINKY_CHORD_HOLDING_TIME - -PINKY_CHORD_HOLDING_TIME + +PINKY_CHORD_HOLDING_TIME - + PINKY_CHORD_HOLDING_TIME->CHORD_HOLDING_TIME - - + + - + LEFT_PINKY_CHORD_HOLDING_TIME - -LEFT_PINKY_CHORD_HOLDING_TIME + +LEFT_PINKY_CHORD_HOLDING_TIME - + LEFT_PINKY_CHORD_HOLDING_TIME->PINKY_CHORD_HOLDING_TIME - - + + - + RIGHT_PINKY_CHORD_HOLDING_TIME - -RIGHT_PINKY_CHORD_HOLDING_TIME + +RIGHT_PINKY_CHORD_HOLDING_TIME - + RIGHT_PINKY_CHORD_HOLDING_TIME->PINKY_CHORD_HOLDING_TIME - - + + - + PINKY_STREAK_DECAY - -PINKY_STREAK_DECAY + +PINKY_STREAK_DECAY - + PINKY_STREAK_DECAY->HOMEY_STREAK_DECAY - - + + - + PINKY_CHORD_STREAK_DECAY - -PINKY_CHORD_STREAK_DECAY + +PINKY_CHORD_STREAK_DECAY - + PINKY_CHORD_STREAK_DECAY->CHORD_STREAK_DECAY - - + + - + LEFT_PINKY_CHORD_STREAK_DECAY - -LEFT_PINKY_CHORD_STREAK_DECAY + +LEFT_PINKY_CHORD_STREAK_DECAY - + LEFT_PINKY_CHORD_STREAK_DECAY->PINKY_CHORD_STREAK_DECAY - - + + - + RIGHT_PINKY_CHORD_STREAK_DECAY - -RIGHT_PINKY_CHORD_STREAK_DECAY + +RIGHT_PINKY_CHORD_STREAK_DECAY - + RIGHT_PINKY_CHORD_STREAK_DECAY->PINKY_CHORD_STREAK_DECAY - - + + - + PINKY_REPEAT_DECAY - -PINKY_REPEAT_DECAY + +PINKY_REPEAT_DECAY - + PINKY_REPEAT_DECAY->HOMEY_REPEAT_DECAY - - + + - + PINKY_CHORD_REPEAT_DECAY - -PINKY_CHORD_REPEAT_DECAY + +PINKY_CHORD_REPEAT_DECAY - + PINKY_CHORD_REPEAT_DECAY->CHORD_REPEAT_DECAY - - + + - + LEFT_PINKY_CHORD_REPEAT_DECAY - -LEFT_PINKY_CHORD_REPEAT_DECAY + +LEFT_PINKY_CHORD_REPEAT_DECAY - + LEFT_PINKY_CHORD_REPEAT_DECAY->PINKY_CHORD_REPEAT_DECAY - - + + - + RIGHT_PINKY_CHORD_REPEAT_DECAY - -RIGHT_PINKY_CHORD_REPEAT_DECAY + +RIGHT_PINKY_CHORD_REPEAT_DECAY - + RIGHT_PINKY_CHORD_REPEAT_DECAY->PINKY_CHORD_REPEAT_DECAY - - + + - + RING1_HOLDING_TYPE - -RING1_HOLDING_TYPE + +RING1_HOLDING_TYPE - + RING1_HOLDING_TYPE->HOMEY_HOLDING_TYPE - - + + - + RING1_CHORD_HOLDING_TYPE - -RING1_CHORD_HOLDING_TYPE + +RING1_CHORD_HOLDING_TYPE - + RING1_CHORD_HOLDING_TYPE->CHORD_HOLDING_TYPE - - + + - + LEFT_RING1_CHORD_HOLDING_TYPE - -LEFT_RING1_CHORD_HOLDING_TYPE + +LEFT_RING1_CHORD_HOLDING_TYPE - + LEFT_RING1_CHORD_HOLDING_TYPE->RING1_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING1_CHORD_HOLDING_TYPE - -RIGHT_RING1_CHORD_HOLDING_TYPE + +RIGHT_RING1_CHORD_HOLDING_TYPE - + RIGHT_RING1_CHORD_HOLDING_TYPE->RING1_CHORD_HOLDING_TYPE - - + + - + RING1_CHORD_HOLDING_TIME - -RING1_CHORD_HOLDING_TIME + +RING1_CHORD_HOLDING_TIME - + RING1_CHORD_HOLDING_TIME->CHORD_HOLDING_TIME - - + + - + LEFT_RING1_CHORD_HOLDING_TIME - -LEFT_RING1_CHORD_HOLDING_TIME + +LEFT_RING1_CHORD_HOLDING_TIME - + LEFT_RING1_CHORD_HOLDING_TIME->RING1_CHORD_HOLDING_TIME - - + + - + RIGHT_RING1_CHORD_HOLDING_TIME - -RIGHT_RING1_CHORD_HOLDING_TIME + +RIGHT_RING1_CHORD_HOLDING_TIME - + RIGHT_RING1_CHORD_HOLDING_TIME->RING1_CHORD_HOLDING_TIME - - + + - + RING1_STREAK_DECAY - -RING1_STREAK_DECAY + +RING1_STREAK_DECAY - + RING1_STREAK_DECAY->HOMEY_STREAK_DECAY - - + + - + RING1_CHORD_STREAK_DECAY - -RING1_CHORD_STREAK_DECAY + +RING1_CHORD_STREAK_DECAY - + RING1_CHORD_STREAK_DECAY->CHORD_STREAK_DECAY - - + + - + LEFT_RING1_CHORD_STREAK_DECAY - -LEFT_RING1_CHORD_STREAK_DECAY + +LEFT_RING1_CHORD_STREAK_DECAY - + LEFT_RING1_CHORD_STREAK_DECAY->RING1_CHORD_STREAK_DECAY - - + + - + RIGHT_RING1_CHORD_STREAK_DECAY - -RIGHT_RING1_CHORD_STREAK_DECAY + +RIGHT_RING1_CHORD_STREAK_DECAY - + RIGHT_RING1_CHORD_STREAK_DECAY->RING1_CHORD_STREAK_DECAY - - + + - + RING1_REPEAT_DECAY - -RING1_REPEAT_DECAY + +RING1_REPEAT_DECAY - + RING1_REPEAT_DECAY->HOMEY_REPEAT_DECAY - - + + - + RING1_CHORD_REPEAT_DECAY - -RING1_CHORD_REPEAT_DECAY + +RING1_CHORD_REPEAT_DECAY - + RING1_CHORD_REPEAT_DECAY->CHORD_REPEAT_DECAY - - + + - + LEFT_RING1_CHORD_REPEAT_DECAY - -LEFT_RING1_CHORD_REPEAT_DECAY + +LEFT_RING1_CHORD_REPEAT_DECAY - + LEFT_RING1_CHORD_REPEAT_DECAY->RING1_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING1_CHORD_REPEAT_DECAY - -RIGHT_RING1_CHORD_REPEAT_DECAY + +RIGHT_RING1_CHORD_REPEAT_DECAY - + RIGHT_RING1_CHORD_REPEAT_DECAY->RING1_CHORD_REPEAT_DECAY - - + + - + RING2_HOLDING_TYPE - -RING2_HOLDING_TYPE + +RING2_HOLDING_TYPE - + RING2_HOLDING_TYPE->HOMEY_HOLDING_TYPE - - + + - + RING2_CHORD_HOLDING_TYPE - -RING2_CHORD_HOLDING_TYPE + +RING2_CHORD_HOLDING_TYPE - + RING2_CHORD_HOLDING_TYPE->CHORD_HOLDING_TYPE - - + + - + LEFT_RING2_CHORD_HOLDING_TYPE - -LEFT_RING2_CHORD_HOLDING_TYPE + +LEFT_RING2_CHORD_HOLDING_TYPE - + LEFT_RING2_CHORD_HOLDING_TYPE->RING2_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING2_CHORD_HOLDING_TYPE - -RIGHT_RING2_CHORD_HOLDING_TYPE + +RIGHT_RING2_CHORD_HOLDING_TYPE - + RIGHT_RING2_CHORD_HOLDING_TYPE->RING2_CHORD_HOLDING_TYPE - - - - - -RING2_HOLDING_TIME - -RING2_HOLDING_TIME - - - -RING2_HOLDING_TIME->HOMEY_HOLDING_TIME - - + + - + RING2_CHORD_HOLDING_TIME - -RING2_CHORD_HOLDING_TIME + +RING2_CHORD_HOLDING_TIME - + RING2_CHORD_HOLDING_TIME->CHORD_HOLDING_TIME - - + + - + LEFT_RING2_CHORD_HOLDING_TIME - -LEFT_RING2_CHORD_HOLDING_TIME + +LEFT_RING2_CHORD_HOLDING_TIME - + LEFT_RING2_CHORD_HOLDING_TIME->RING2_CHORD_HOLDING_TIME - - + + - + RIGHT_RING2_CHORD_HOLDING_TIME - -RIGHT_RING2_CHORD_HOLDING_TIME + +RIGHT_RING2_CHORD_HOLDING_TIME - + RIGHT_RING2_CHORD_HOLDING_TIME->RING2_CHORD_HOLDING_TIME - - + + - + RING2_STREAK_DECAY - -RING2_STREAK_DECAY + +RING2_STREAK_DECAY - + RING2_STREAK_DECAY->HOMEY_STREAK_DECAY - - + + - + RING2_CHORD_STREAK_DECAY - -RING2_CHORD_STREAK_DECAY + +RING2_CHORD_STREAK_DECAY - + RING2_CHORD_STREAK_DECAY->CHORD_STREAK_DECAY - - + + - + LEFT_RING2_CHORD_STREAK_DECAY - -LEFT_RING2_CHORD_STREAK_DECAY + +LEFT_RING2_CHORD_STREAK_DECAY - + LEFT_RING2_CHORD_STREAK_DECAY->RING2_CHORD_STREAK_DECAY - - + + - + RIGHT_RING2_CHORD_STREAK_DECAY - -RIGHT_RING2_CHORD_STREAK_DECAY + +RIGHT_RING2_CHORD_STREAK_DECAY - + RIGHT_RING2_CHORD_STREAK_DECAY->RING2_CHORD_STREAK_DECAY - - + + - + RING2_REPEAT_DECAY - -RING2_REPEAT_DECAY + +RING2_REPEAT_DECAY - + RING2_REPEAT_DECAY->HOMEY_REPEAT_DECAY - - + + - + RING2_CHORD_REPEAT_DECAY - -RING2_CHORD_REPEAT_DECAY + +RING2_CHORD_REPEAT_DECAY - + RING2_CHORD_REPEAT_DECAY->CHORD_REPEAT_DECAY - - + + - + LEFT_RING2_CHORD_REPEAT_DECAY - -LEFT_RING2_CHORD_REPEAT_DECAY + +LEFT_RING2_CHORD_REPEAT_DECAY - + LEFT_RING2_CHORD_REPEAT_DECAY->RING2_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING2_CHORD_REPEAT_DECAY - -RIGHT_RING2_CHORD_REPEAT_DECAY + +RIGHT_RING2_CHORD_REPEAT_DECAY - + RIGHT_RING2_CHORD_REPEAT_DECAY->RING2_CHORD_REPEAT_DECAY - - + + - + MIDDY_HOLDING_TYPE - -MIDDY_HOLDING_TYPE + +MIDDY_HOLDING_TYPE - + MIDDY_HOLDING_TYPE->HOMEY_HOLDING_TYPE - - + + - + MIDDY_CHORD_HOLDING_TYPE - -MIDDY_CHORD_HOLDING_TYPE + +MIDDY_CHORD_HOLDING_TYPE - + MIDDY_CHORD_HOLDING_TYPE->CHORD_HOLDING_TYPE - - + + - + LEFT_MIDDY_CHORD_HOLDING_TYPE - -LEFT_MIDDY_CHORD_HOLDING_TYPE + +LEFT_MIDDY_CHORD_HOLDING_TYPE - + LEFT_MIDDY_CHORD_HOLDING_TYPE->MIDDY_CHORD_HOLDING_TYPE - - + + - + RIGHT_MIDDY_CHORD_HOLDING_TYPE - -RIGHT_MIDDY_CHORD_HOLDING_TYPE + +RIGHT_MIDDY_CHORD_HOLDING_TYPE - + RIGHT_MIDDY_CHORD_HOLDING_TYPE->MIDDY_CHORD_HOLDING_TYPE - - + + - + MIDDY_CHORD_HOLDING_TIME - -MIDDY_CHORD_HOLDING_TIME + +MIDDY_CHORD_HOLDING_TIME - + MIDDY_CHORD_HOLDING_TIME->CHORD_HOLDING_TIME - - + + - + LEFT_MIDDY_CHORD_HOLDING_TIME - -LEFT_MIDDY_CHORD_HOLDING_TIME + +LEFT_MIDDY_CHORD_HOLDING_TIME - + LEFT_MIDDY_CHORD_HOLDING_TIME->MIDDY_CHORD_HOLDING_TIME - - + + - + RIGHT_MIDDY_CHORD_HOLDING_TIME - -RIGHT_MIDDY_CHORD_HOLDING_TIME + +RIGHT_MIDDY_CHORD_HOLDING_TIME - + RIGHT_MIDDY_CHORD_HOLDING_TIME->MIDDY_CHORD_HOLDING_TIME - - + + - + MIDDY_STREAK_DECAY - -MIDDY_STREAK_DECAY + +MIDDY_STREAK_DECAY - + MIDDY_STREAK_DECAY->HOMEY_STREAK_DECAY - - + + - + MIDDY_CHORD_STREAK_DECAY - -MIDDY_CHORD_STREAK_DECAY + +MIDDY_CHORD_STREAK_DECAY - + MIDDY_CHORD_STREAK_DECAY->CHORD_STREAK_DECAY - - + + - + LEFT_MIDDY_CHORD_STREAK_DECAY - -LEFT_MIDDY_CHORD_STREAK_DECAY + +LEFT_MIDDY_CHORD_STREAK_DECAY - + LEFT_MIDDY_CHORD_STREAK_DECAY->MIDDY_CHORD_STREAK_DECAY - - + + - + RIGHT_MIDDY_CHORD_STREAK_DECAY - -RIGHT_MIDDY_CHORD_STREAK_DECAY + +RIGHT_MIDDY_CHORD_STREAK_DECAY - + RIGHT_MIDDY_CHORD_STREAK_DECAY->MIDDY_CHORD_STREAK_DECAY - - + + - + MIDDY_REPEAT_DECAY - -MIDDY_REPEAT_DECAY + +MIDDY_REPEAT_DECAY - + MIDDY_REPEAT_DECAY->HOMEY_REPEAT_DECAY - - + + - + MIDDY_CHORD_REPEAT_DECAY - -MIDDY_CHORD_REPEAT_DECAY + +MIDDY_CHORD_REPEAT_DECAY - + MIDDY_CHORD_REPEAT_DECAY->CHORD_REPEAT_DECAY - - + + - + LEFT_MIDDY_CHORD_REPEAT_DECAY - -LEFT_MIDDY_CHORD_REPEAT_DECAY + +LEFT_MIDDY_CHORD_REPEAT_DECAY - + LEFT_MIDDY_CHORD_REPEAT_DECAY->MIDDY_CHORD_REPEAT_DECAY - - + + - + RIGHT_MIDDY_CHORD_REPEAT_DECAY - -RIGHT_MIDDY_CHORD_REPEAT_DECAY + +RIGHT_MIDDY_CHORD_REPEAT_DECAY - + RIGHT_MIDDY_CHORD_REPEAT_DECAY->MIDDY_CHORD_REPEAT_DECAY - - + + - + INDEX_CHORD_HOLDING_TYPE - -INDEX_CHORD_HOLDING_TYPE + +INDEX_CHORD_HOLDING_TYPE - + INDEX_CHORD_HOLDING_TYPE->CHORD_HOLDING_TYPE - - + + - + LEFT_INDEX_CHORD_HOLDING_TYPE - -LEFT_INDEX_CHORD_HOLDING_TYPE + +LEFT_INDEX_CHORD_HOLDING_TYPE - + LEFT_INDEX_CHORD_HOLDING_TYPE->INDEX_CHORD_HOLDING_TYPE - - + + - + RIGHT_INDEX_CHORD_HOLDING_TYPE - -RIGHT_INDEX_CHORD_HOLDING_TYPE + +RIGHT_INDEX_CHORD_HOLDING_TYPE - + RIGHT_INDEX_CHORD_HOLDING_TYPE->INDEX_CHORD_HOLDING_TYPE - - + + - + INDEX_CHORD_HOLDING_TIME - -INDEX_CHORD_HOLDING_TIME + +INDEX_CHORD_HOLDING_TIME - + INDEX_CHORD_HOLDING_TIME->CHORD_HOLDING_TIME - - + + - + LEFT_INDEX_CHORD_HOLDING_TIME - -LEFT_INDEX_CHORD_HOLDING_TIME + +LEFT_INDEX_CHORD_HOLDING_TIME - + LEFT_INDEX_CHORD_HOLDING_TIME->INDEX_CHORD_HOLDING_TIME - - + + - + RIGHT_INDEX_CHORD_HOLDING_TIME - -RIGHT_INDEX_CHORD_HOLDING_TIME + +RIGHT_INDEX_CHORD_HOLDING_TIME - + RIGHT_INDEX_CHORD_HOLDING_TIME->INDEX_CHORD_HOLDING_TIME - - + + - + INDEX_CHORD_STREAK_DECAY - -INDEX_CHORD_STREAK_DECAY + +INDEX_CHORD_STREAK_DECAY - + INDEX_CHORD_STREAK_DECAY->CHORD_STREAK_DECAY - - + + - + LEFT_INDEX_CHORD_STREAK_DECAY - -LEFT_INDEX_CHORD_STREAK_DECAY + +LEFT_INDEX_CHORD_STREAK_DECAY - + LEFT_INDEX_CHORD_STREAK_DECAY->INDEX_CHORD_STREAK_DECAY - - + + - + RIGHT_INDEX_CHORD_STREAK_DECAY - -RIGHT_INDEX_CHORD_STREAK_DECAY + +RIGHT_INDEX_CHORD_STREAK_DECAY - + RIGHT_INDEX_CHORD_STREAK_DECAY->INDEX_CHORD_STREAK_DECAY - - + + - + INDEX_CHORD_REPEAT_DECAY - -INDEX_CHORD_REPEAT_DECAY + +INDEX_CHORD_REPEAT_DECAY - + INDEX_CHORD_REPEAT_DECAY->CHORD_REPEAT_DECAY - - + + - + LEFT_INDEX_CHORD_REPEAT_DECAY - -LEFT_INDEX_CHORD_REPEAT_DECAY + +LEFT_INDEX_CHORD_REPEAT_DECAY - + LEFT_INDEX_CHORD_REPEAT_DECAY->INDEX_CHORD_REPEAT_DECAY - - + + - + RIGHT_INDEX_CHORD_REPEAT_DECAY - -RIGHT_INDEX_CHORD_REPEAT_DECAY + +RIGHT_INDEX_CHORD_REPEAT_DECAY - + RIGHT_INDEX_CHORD_REPEAT_DECAY->INDEX_CHORD_REPEAT_DECAY - - + + - + LEFT_PINKY_HOLDING_TYPE - -LEFT_PINKY_HOLDING_TYPE + +LEFT_PINKY_HOLDING_TYPE - + LEFT_PINKY_HOLDING_TYPE->PINKY_HOLDING_TYPE - - + + - + LEFT_PINKY_HOLDING_TIME - -LEFT_PINKY_HOLDING_TIME + +LEFT_PINKY_HOLDING_TIME - + LEFT_PINKY_HOLDING_TIME->PINKY_HOLDING_TIME - - + + - + LEFT_PINKY_STREAK_DECAY - -LEFT_PINKY_STREAK_DECAY + +LEFT_PINKY_STREAK_DECAY - + LEFT_PINKY_STREAK_DECAY->PINKY_STREAK_DECAY - - + + - + LEFT_PINKY_REPEAT_DECAY - -LEFT_PINKY_REPEAT_DECAY + +LEFT_PINKY_REPEAT_DECAY - + LEFT_PINKY_REPEAT_DECAY->PINKY_REPEAT_DECAY - - + + - + RIGHT_PINKY_HOLDING_TYPE - -RIGHT_PINKY_HOLDING_TYPE + +RIGHT_PINKY_HOLDING_TYPE - + RIGHT_PINKY_HOLDING_TYPE->PINKY_HOLDING_TYPE - - + + - + RIGHT_PINKY_HOLDING_TIME - -RIGHT_PINKY_HOLDING_TIME + +RIGHT_PINKY_HOLDING_TIME - + RIGHT_PINKY_HOLDING_TIME->PINKY_HOLDING_TIME - - + + - + RIGHT_PINKY_STREAK_DECAY - -RIGHT_PINKY_STREAK_DECAY + +RIGHT_PINKY_STREAK_DECAY - + RIGHT_PINKY_STREAK_DECAY->PINKY_STREAK_DECAY - - + + - + RIGHT_PINKY_REPEAT_DECAY - -RIGHT_PINKY_REPEAT_DECAY + +RIGHT_PINKY_REPEAT_DECAY - + RIGHT_PINKY_REPEAT_DECAY->PINKY_REPEAT_DECAY - - + + - + LEFT_RING1_HOLDING_TYPE - -LEFT_RING1_HOLDING_TYPE + +LEFT_RING1_HOLDING_TYPE - + LEFT_RING1_HOLDING_TYPE->RING1_HOLDING_TYPE - - + + - + LEFT_RING1_HOLDING_TIME - -LEFT_RING1_HOLDING_TIME + +LEFT_RING1_HOLDING_TIME - + LEFT_RING1_HOLDING_TIME->RING1_HOLDING_TIME - - + + - + LEFT_RING1_STREAK_DECAY - -LEFT_RING1_STREAK_DECAY + +LEFT_RING1_STREAK_DECAY - + LEFT_RING1_STREAK_DECAY->RING1_STREAK_DECAY - - + + - + LEFT_RING1_REPEAT_DECAY - -LEFT_RING1_REPEAT_DECAY + +LEFT_RING1_REPEAT_DECAY - + LEFT_RING1_REPEAT_DECAY->RING1_REPEAT_DECAY - - + + - + RIGHT_RING1_HOLDING_TYPE - -RIGHT_RING1_HOLDING_TYPE + +RIGHT_RING1_HOLDING_TYPE - + RIGHT_RING1_HOLDING_TYPE->RING1_HOLDING_TYPE - - + + - + RIGHT_RING1_HOLDING_TIME - -RIGHT_RING1_HOLDING_TIME + +RIGHT_RING1_HOLDING_TIME - + RIGHT_RING1_HOLDING_TIME->RING1_HOLDING_TIME - - + + - + RIGHT_RING1_STREAK_DECAY - -RIGHT_RING1_STREAK_DECAY + +RIGHT_RING1_STREAK_DECAY - + RIGHT_RING1_STREAK_DECAY->RING1_STREAK_DECAY - - + + - + RIGHT_RING1_REPEAT_DECAY - -RIGHT_RING1_REPEAT_DECAY + +RIGHT_RING1_REPEAT_DECAY - + RIGHT_RING1_REPEAT_DECAY->RING1_REPEAT_DECAY - - + + - + LEFT_RING2_HOLDING_TYPE - -LEFT_RING2_HOLDING_TYPE + +LEFT_RING2_HOLDING_TYPE - + LEFT_RING2_HOLDING_TYPE->RING2_HOLDING_TYPE - - + + - + LEFT_RING2_HOLDING_TIME - -LEFT_RING2_HOLDING_TIME + +LEFT_RING2_HOLDING_TIME - + LEFT_RING2_HOLDING_TIME->RING2_HOLDING_TIME - - + + - + LEFT_RING2_STREAK_DECAY - -LEFT_RING2_STREAK_DECAY + +LEFT_RING2_STREAK_DECAY - + LEFT_RING2_STREAK_DECAY->RING2_STREAK_DECAY - - + + - + LEFT_RING2_REPEAT_DECAY - -LEFT_RING2_REPEAT_DECAY + +LEFT_RING2_REPEAT_DECAY - + LEFT_RING2_REPEAT_DECAY->RING2_REPEAT_DECAY - - + + - + RIGHT_RING2_HOLDING_TYPE - -RIGHT_RING2_HOLDING_TYPE + +RIGHT_RING2_HOLDING_TYPE - + RIGHT_RING2_HOLDING_TYPE->RING2_HOLDING_TYPE - - + + - + RIGHT_RING2_HOLDING_TIME - -RIGHT_RING2_HOLDING_TIME + +RIGHT_RING2_HOLDING_TIME - + RIGHT_RING2_HOLDING_TIME->RING2_HOLDING_TIME - - + + - + RIGHT_RING2_STREAK_DECAY - -RIGHT_RING2_STREAK_DECAY + +RIGHT_RING2_STREAK_DECAY - + RIGHT_RING2_STREAK_DECAY->RING2_STREAK_DECAY - - + + - + RIGHT_RING2_REPEAT_DECAY - -RIGHT_RING2_REPEAT_DECAY + +RIGHT_RING2_REPEAT_DECAY - + RIGHT_RING2_REPEAT_DECAY->RING2_REPEAT_DECAY - - + + - + LEFT_MIDDY_HOLDING_TYPE - -LEFT_MIDDY_HOLDING_TYPE + +LEFT_MIDDY_HOLDING_TYPE - + LEFT_MIDDY_HOLDING_TYPE->MIDDY_HOLDING_TYPE - - + + - + LEFT_MIDDY_HOLDING_TIME - -LEFT_MIDDY_HOLDING_TIME + +LEFT_MIDDY_HOLDING_TIME - + LEFT_MIDDY_HOLDING_TIME->MIDDY_HOLDING_TIME - - + + - + LEFT_MIDDY_STREAK_DECAY - -LEFT_MIDDY_STREAK_DECAY + +LEFT_MIDDY_STREAK_DECAY - + LEFT_MIDDY_STREAK_DECAY->MIDDY_STREAK_DECAY - - + + - + LEFT_MIDDY_REPEAT_DECAY - -LEFT_MIDDY_REPEAT_DECAY + +LEFT_MIDDY_REPEAT_DECAY - + LEFT_MIDDY_REPEAT_DECAY->MIDDY_REPEAT_DECAY - - + + - + RIGHT_MIDDY_HOLDING_TYPE - -RIGHT_MIDDY_HOLDING_TYPE + +RIGHT_MIDDY_HOLDING_TYPE - + RIGHT_MIDDY_HOLDING_TYPE->MIDDY_HOLDING_TYPE - - + + - + RIGHT_MIDDY_HOLDING_TIME - -RIGHT_MIDDY_HOLDING_TIME + +RIGHT_MIDDY_HOLDING_TIME - + RIGHT_MIDDY_HOLDING_TIME->MIDDY_HOLDING_TIME - - + + - + RIGHT_MIDDY_STREAK_DECAY - -RIGHT_MIDDY_STREAK_DECAY + +RIGHT_MIDDY_STREAK_DECAY - + RIGHT_MIDDY_STREAK_DECAY->MIDDY_STREAK_DECAY - - + + - + RIGHT_MIDDY_REPEAT_DECAY - -RIGHT_MIDDY_REPEAT_DECAY + +RIGHT_MIDDY_REPEAT_DECAY - + RIGHT_MIDDY_REPEAT_DECAY->MIDDY_REPEAT_DECAY - - + + - + LEFT_INDEX_HOLDING_TYPE - -LEFT_INDEX_HOLDING_TYPE + +LEFT_INDEX_HOLDING_TYPE - + LEFT_INDEX_HOLDING_TYPE->INDEX_HOLDING_TYPE - - + + - + LEFT_INDEX_HOLDING_TIME - -LEFT_INDEX_HOLDING_TIME + +LEFT_INDEX_HOLDING_TIME - + LEFT_INDEX_HOLDING_TIME->INDEX_HOLDING_TIME - - + + - + LEFT_INDEX_STREAK_DECAY - -LEFT_INDEX_STREAK_DECAY + +LEFT_INDEX_STREAK_DECAY - + LEFT_INDEX_STREAK_DECAY->INDEX_STREAK_DECAY - - + + - + LEFT_INDEX_REPEAT_DECAY - -LEFT_INDEX_REPEAT_DECAY + +LEFT_INDEX_REPEAT_DECAY - + LEFT_INDEX_REPEAT_DECAY->INDEX_REPEAT_DECAY - - + + - + RIGHT_INDEX_HOLDING_TYPE - -RIGHT_INDEX_HOLDING_TYPE + +RIGHT_INDEX_HOLDING_TYPE - + RIGHT_INDEX_HOLDING_TYPE->INDEX_HOLDING_TYPE - - + + - + RIGHT_INDEX_HOLDING_TIME - -RIGHT_INDEX_HOLDING_TIME + +RIGHT_INDEX_HOLDING_TIME - + RIGHT_INDEX_HOLDING_TIME->INDEX_HOLDING_TIME - - + + - + RIGHT_INDEX_STREAK_DECAY - -RIGHT_INDEX_STREAK_DECAY + +RIGHT_INDEX_STREAK_DECAY - + RIGHT_INDEX_STREAK_DECAY->INDEX_STREAK_DECAY - - + + - + RIGHT_INDEX_REPEAT_DECAY - -RIGHT_INDEX_REPEAT_DECAY + +RIGHT_INDEX_REPEAT_DECAY - + RIGHT_INDEX_REPEAT_DECAY->INDEX_REPEAT_DECAY - - + + - + LEFT_RING1_PINKY_HOLDING_TYPE - -LEFT_RING1_PINKY_HOLDING_TYPE + +LEFT_RING1_PINKY_HOLDING_TYPE - + LEFT_RING1_PINKY_HOLDING_TYPE->LEFT_RING1_CHORD_HOLDING_TYPE - - + + - + LEFT_RING1_PINKY_HOLDING_TIME - -LEFT_RING1_PINKY_HOLDING_TIME + +LEFT_RING1_PINKY_HOLDING_TIME - + LEFT_RING1_PINKY_HOLDING_TIME->LEFT_RING1_CHORD_HOLDING_TIME - - + + - + LEFT_RING1_PINKY_STREAK_DECAY - -LEFT_RING1_PINKY_STREAK_DECAY + +LEFT_RING1_PINKY_STREAK_DECAY - + LEFT_RING1_PINKY_STREAK_DECAY->LEFT_RING1_CHORD_STREAK_DECAY - - + + - + LEFT_RING1_PINKY_REPEAT_DECAY - -LEFT_RING1_PINKY_REPEAT_DECAY + +LEFT_RING1_PINKY_REPEAT_DECAY - + LEFT_RING1_PINKY_REPEAT_DECAY->LEFT_RING1_CHORD_REPEAT_DECAY - - + + - + LEFT_RING2_PINKY_HOLDING_TYPE - -LEFT_RING2_PINKY_HOLDING_TYPE + +LEFT_RING2_PINKY_HOLDING_TYPE - + LEFT_RING2_PINKY_HOLDING_TYPE->LEFT_RING2_CHORD_HOLDING_TYPE - - + + - + LEFT_RING2_PINKY_HOLDING_TIME - -LEFT_RING2_PINKY_HOLDING_TIME + +LEFT_RING2_PINKY_HOLDING_TIME - + LEFT_RING2_PINKY_HOLDING_TIME->LEFT_RING2_CHORD_HOLDING_TIME - - + + - + LEFT_RING2_PINKY_STREAK_DECAY - -LEFT_RING2_PINKY_STREAK_DECAY + +LEFT_RING2_PINKY_STREAK_DECAY - + LEFT_RING2_PINKY_STREAK_DECAY->LEFT_RING2_CHORD_STREAK_DECAY - - + + - + LEFT_RING2_PINKY_REPEAT_DECAY - -LEFT_RING2_PINKY_REPEAT_DECAY + +LEFT_RING2_PINKY_REPEAT_DECAY - + LEFT_RING2_PINKY_REPEAT_DECAY->LEFT_RING2_CHORD_REPEAT_DECAY - - + + - + LEFT_MIDDY_PINKY_HOLDING_TYPE - -LEFT_MIDDY_PINKY_HOLDING_TYPE + +LEFT_MIDDY_PINKY_HOLDING_TYPE - + LEFT_MIDDY_PINKY_HOLDING_TYPE->LEFT_MIDDY_CHORD_HOLDING_TYPE - - + + - + LEFT_MIDDY_PINKY_HOLDING_TIME - -LEFT_MIDDY_PINKY_HOLDING_TIME + +LEFT_MIDDY_PINKY_HOLDING_TIME - + LEFT_MIDDY_PINKY_HOLDING_TIME->LEFT_MIDDY_CHORD_HOLDING_TIME - - + + - + LEFT_MIDDY_PINKY_STREAK_DECAY - -LEFT_MIDDY_PINKY_STREAK_DECAY + +LEFT_MIDDY_PINKY_STREAK_DECAY - + LEFT_MIDDY_PINKY_STREAK_DECAY->LEFT_MIDDY_CHORD_STREAK_DECAY - - + + - + LEFT_MIDDY_PINKY_REPEAT_DECAY - -LEFT_MIDDY_PINKY_REPEAT_DECAY + +LEFT_MIDDY_PINKY_REPEAT_DECAY - + LEFT_MIDDY_PINKY_REPEAT_DECAY->LEFT_MIDDY_CHORD_REPEAT_DECAY - - + + - + LEFT_INDEX_PINKY_HOLDING_TYPE - -LEFT_INDEX_PINKY_HOLDING_TYPE + +LEFT_INDEX_PINKY_HOLDING_TYPE - + LEFT_INDEX_PINKY_HOLDING_TYPE->LEFT_INDEX_CHORD_HOLDING_TYPE - - + + - + LEFT_INDEX_PINKY_HOLDING_TIME - -LEFT_INDEX_PINKY_HOLDING_TIME + +LEFT_INDEX_PINKY_HOLDING_TIME - + LEFT_INDEX_PINKY_HOLDING_TIME->LEFT_INDEX_CHORD_HOLDING_TIME - - + + - + LEFT_INDEX_PINKY_STREAK_DECAY - -LEFT_INDEX_PINKY_STREAK_DECAY + +LEFT_INDEX_PINKY_STREAK_DECAY - + LEFT_INDEX_PINKY_STREAK_DECAY->LEFT_INDEX_CHORD_STREAK_DECAY - - + + - + LEFT_INDEX_PINKY_REPEAT_DECAY - -LEFT_INDEX_PINKY_REPEAT_DECAY + +LEFT_INDEX_PINKY_REPEAT_DECAY - + LEFT_INDEX_PINKY_REPEAT_DECAY->LEFT_INDEX_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING1_PINKY_HOLDING_TYPE - -RIGHT_RING1_PINKY_HOLDING_TYPE + +RIGHT_RING1_PINKY_HOLDING_TYPE - + RIGHT_RING1_PINKY_HOLDING_TYPE->RIGHT_RING1_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING1_PINKY_HOLDING_TIME - -RIGHT_RING1_PINKY_HOLDING_TIME + +RIGHT_RING1_PINKY_HOLDING_TIME - + RIGHT_RING1_PINKY_HOLDING_TIME->RIGHT_RING1_CHORD_HOLDING_TIME - - + + - + RIGHT_RING1_PINKY_STREAK_DECAY - -RIGHT_RING1_PINKY_STREAK_DECAY + +RIGHT_RING1_PINKY_STREAK_DECAY - + RIGHT_RING1_PINKY_STREAK_DECAY->RIGHT_RING1_CHORD_STREAK_DECAY - - + + - + RIGHT_RING1_PINKY_REPEAT_DECAY - -RIGHT_RING1_PINKY_REPEAT_DECAY + +RIGHT_RING1_PINKY_REPEAT_DECAY - + RIGHT_RING1_PINKY_REPEAT_DECAY->RIGHT_RING1_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING2_PINKY_HOLDING_TYPE - -RIGHT_RING2_PINKY_HOLDING_TYPE + +RIGHT_RING2_PINKY_HOLDING_TYPE - + RIGHT_RING2_PINKY_HOLDING_TYPE->RIGHT_RING2_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING2_PINKY_HOLDING_TIME - -RIGHT_RING2_PINKY_HOLDING_TIME + +RIGHT_RING2_PINKY_HOLDING_TIME - + RIGHT_RING2_PINKY_HOLDING_TIME->RIGHT_RING2_CHORD_HOLDING_TIME - - + + - + RIGHT_RING2_PINKY_STREAK_DECAY - -RIGHT_RING2_PINKY_STREAK_DECAY + +RIGHT_RING2_PINKY_STREAK_DECAY - + RIGHT_RING2_PINKY_STREAK_DECAY->RIGHT_RING2_CHORD_STREAK_DECAY - - + + - + RIGHT_RING2_PINKY_REPEAT_DECAY - -RIGHT_RING2_PINKY_REPEAT_DECAY + +RIGHT_RING2_PINKY_REPEAT_DECAY - + RIGHT_RING2_PINKY_REPEAT_DECAY->RIGHT_RING2_CHORD_REPEAT_DECAY - - + + - + RIGHT_MIDDY_PINKY_HOLDING_TYPE - -RIGHT_MIDDY_PINKY_HOLDING_TYPE + +RIGHT_MIDDY_PINKY_HOLDING_TYPE - + RIGHT_MIDDY_PINKY_HOLDING_TYPE->RIGHT_MIDDY_CHORD_HOLDING_TYPE - - + + - + RIGHT_MIDDY_PINKY_HOLDING_TIME - -RIGHT_MIDDY_PINKY_HOLDING_TIME + +RIGHT_MIDDY_PINKY_HOLDING_TIME - + RIGHT_MIDDY_PINKY_HOLDING_TIME->RIGHT_MIDDY_CHORD_HOLDING_TIME - - + + - + RIGHT_MIDDY_PINKY_STREAK_DECAY - -RIGHT_MIDDY_PINKY_STREAK_DECAY + +RIGHT_MIDDY_PINKY_STREAK_DECAY - + RIGHT_MIDDY_PINKY_STREAK_DECAY->RIGHT_MIDDY_CHORD_STREAK_DECAY - - + + - + RIGHT_MIDDY_PINKY_REPEAT_DECAY - -RIGHT_MIDDY_PINKY_REPEAT_DECAY + +RIGHT_MIDDY_PINKY_REPEAT_DECAY - + RIGHT_MIDDY_PINKY_REPEAT_DECAY->RIGHT_MIDDY_CHORD_REPEAT_DECAY - - + + - + RIGHT_INDEX_PINKY_HOLDING_TYPE - -RIGHT_INDEX_PINKY_HOLDING_TYPE + +RIGHT_INDEX_PINKY_HOLDING_TYPE - + RIGHT_INDEX_PINKY_HOLDING_TYPE->RIGHT_INDEX_CHORD_HOLDING_TYPE - - + + - + RIGHT_INDEX_PINKY_HOLDING_TIME - -RIGHT_INDEX_PINKY_HOLDING_TIME + +RIGHT_INDEX_PINKY_HOLDING_TIME - + RIGHT_INDEX_PINKY_HOLDING_TIME->RIGHT_INDEX_CHORD_HOLDING_TIME - - + + - + RIGHT_INDEX_PINKY_STREAK_DECAY - -RIGHT_INDEX_PINKY_STREAK_DECAY + +RIGHT_INDEX_PINKY_STREAK_DECAY - + RIGHT_INDEX_PINKY_STREAK_DECAY->RIGHT_INDEX_CHORD_STREAK_DECAY - - + + - + RIGHT_INDEX_PINKY_REPEAT_DECAY - -RIGHT_INDEX_PINKY_REPEAT_DECAY + +RIGHT_INDEX_PINKY_REPEAT_DECAY - + RIGHT_INDEX_PINKY_REPEAT_DECAY->RIGHT_INDEX_CHORD_REPEAT_DECAY - - + + - + LEFT_PINKY_RING1_HOLDING_TYPE - -LEFT_PINKY_RING1_HOLDING_TYPE + +LEFT_PINKY_RING1_HOLDING_TYPE - + LEFT_PINKY_RING1_HOLDING_TYPE->LEFT_PINKY_CHORD_HOLDING_TYPE - - + + - + LEFT_PINKY_RING1_HOLDING_TIME - -LEFT_PINKY_RING1_HOLDING_TIME + +LEFT_PINKY_RING1_HOLDING_TIME - + LEFT_PINKY_RING1_HOLDING_TIME->LEFT_PINKY_CHORD_HOLDING_TIME - - + + - + LEFT_PINKY_RING1_STREAK_DECAY - -LEFT_PINKY_RING1_STREAK_DECAY + +LEFT_PINKY_RING1_STREAK_DECAY - + LEFT_PINKY_RING1_STREAK_DECAY->LEFT_PINKY_CHORD_STREAK_DECAY - - + + - + LEFT_PINKY_RING1_REPEAT_DECAY - -LEFT_PINKY_RING1_REPEAT_DECAY + +LEFT_PINKY_RING1_REPEAT_DECAY - + LEFT_PINKY_RING1_REPEAT_DECAY->LEFT_PINKY_CHORD_REPEAT_DECAY - - + + - + LEFT_RING2_RING1_HOLDING_TYPE - -LEFT_RING2_RING1_HOLDING_TYPE + +LEFT_RING2_RING1_HOLDING_TYPE - + LEFT_RING2_RING1_HOLDING_TYPE->LEFT_RING2_CHORD_HOLDING_TYPE - - + + - + LEFT_RING2_RING1_HOLDING_TIME - -LEFT_RING2_RING1_HOLDING_TIME + +LEFT_RING2_RING1_HOLDING_TIME - + LEFT_RING2_RING1_HOLDING_TIME->LEFT_RING2_CHORD_HOLDING_TIME - - + + - + LEFT_RING2_RING1_STREAK_DECAY - -LEFT_RING2_RING1_STREAK_DECAY + +LEFT_RING2_RING1_STREAK_DECAY - + LEFT_RING2_RING1_STREAK_DECAY->LEFT_RING2_CHORD_STREAK_DECAY - - + + - + LEFT_RING2_RING1_REPEAT_DECAY - -LEFT_RING2_RING1_REPEAT_DECAY + +LEFT_RING2_RING1_REPEAT_DECAY - + LEFT_RING2_RING1_REPEAT_DECAY->LEFT_RING2_CHORD_REPEAT_DECAY - - + + - + LEFT_MIDDY_RING1_HOLDING_TYPE - -LEFT_MIDDY_RING1_HOLDING_TYPE + +LEFT_MIDDY_RING1_HOLDING_TYPE - + LEFT_MIDDY_RING1_HOLDING_TYPE->LEFT_MIDDY_CHORD_HOLDING_TYPE - - + + - + LEFT_MIDDY_RING1_HOLDING_TIME - -LEFT_MIDDY_RING1_HOLDING_TIME + +LEFT_MIDDY_RING1_HOLDING_TIME - + LEFT_MIDDY_RING1_HOLDING_TIME->LEFT_MIDDY_CHORD_HOLDING_TIME - - + + - + LEFT_MIDDY_RING1_STREAK_DECAY - -LEFT_MIDDY_RING1_STREAK_DECAY + +LEFT_MIDDY_RING1_STREAK_DECAY - + LEFT_MIDDY_RING1_STREAK_DECAY->LEFT_MIDDY_CHORD_STREAK_DECAY - - + + - + LEFT_MIDDY_RING1_REPEAT_DECAY - -LEFT_MIDDY_RING1_REPEAT_DECAY + +LEFT_MIDDY_RING1_REPEAT_DECAY - + LEFT_MIDDY_RING1_REPEAT_DECAY->LEFT_MIDDY_CHORD_REPEAT_DECAY - - + + - + LEFT_INDEX_RING1_HOLDING_TYPE - -LEFT_INDEX_RING1_HOLDING_TYPE + +LEFT_INDEX_RING1_HOLDING_TYPE - + LEFT_INDEX_RING1_HOLDING_TYPE->LEFT_INDEX_CHORD_HOLDING_TYPE - - + + - + LEFT_INDEX_RING1_HOLDING_TIME - -LEFT_INDEX_RING1_HOLDING_TIME + +LEFT_INDEX_RING1_HOLDING_TIME - + LEFT_INDEX_RING1_HOLDING_TIME->LEFT_INDEX_CHORD_HOLDING_TIME - - + + - + LEFT_INDEX_RING1_STREAK_DECAY - -LEFT_INDEX_RING1_STREAK_DECAY + +LEFT_INDEX_RING1_STREAK_DECAY - + LEFT_INDEX_RING1_STREAK_DECAY->LEFT_INDEX_CHORD_STREAK_DECAY - - + + - + LEFT_INDEX_RING1_REPEAT_DECAY - -LEFT_INDEX_RING1_REPEAT_DECAY + +LEFT_INDEX_RING1_REPEAT_DECAY - + LEFT_INDEX_RING1_REPEAT_DECAY->LEFT_INDEX_CHORD_REPEAT_DECAY - - + + - + RIGHT_PINKY_RING1_HOLDING_TYPE - -RIGHT_PINKY_RING1_HOLDING_TYPE + +RIGHT_PINKY_RING1_HOLDING_TYPE - + RIGHT_PINKY_RING1_HOLDING_TYPE->RIGHT_PINKY_CHORD_HOLDING_TYPE - - + + - + RIGHT_PINKY_RING1_HOLDING_TIME - -RIGHT_PINKY_RING1_HOLDING_TIME + +RIGHT_PINKY_RING1_HOLDING_TIME - + RIGHT_PINKY_RING1_HOLDING_TIME->RIGHT_PINKY_CHORD_HOLDING_TIME - - + + - + RIGHT_PINKY_RING1_STREAK_DECAY - -RIGHT_PINKY_RING1_STREAK_DECAY + +RIGHT_PINKY_RING1_STREAK_DECAY - + RIGHT_PINKY_RING1_STREAK_DECAY->RIGHT_PINKY_CHORD_STREAK_DECAY - - + + - + RIGHT_PINKY_RING1_REPEAT_DECAY - -RIGHT_PINKY_RING1_REPEAT_DECAY + +RIGHT_PINKY_RING1_REPEAT_DECAY - + RIGHT_PINKY_RING1_REPEAT_DECAY->RIGHT_PINKY_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING2_RING1_HOLDING_TYPE - -RIGHT_RING2_RING1_HOLDING_TYPE + +RIGHT_RING2_RING1_HOLDING_TYPE - + RIGHT_RING2_RING1_HOLDING_TYPE->RIGHT_RING2_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING2_RING1_HOLDING_TIME - -RIGHT_RING2_RING1_HOLDING_TIME + +RIGHT_RING2_RING1_HOLDING_TIME - + RIGHT_RING2_RING1_HOLDING_TIME->RIGHT_RING2_CHORD_HOLDING_TIME - - + + - + RIGHT_RING2_RING1_STREAK_DECAY - -RIGHT_RING2_RING1_STREAK_DECAY + +RIGHT_RING2_RING1_STREAK_DECAY - + RIGHT_RING2_RING1_STREAK_DECAY->RIGHT_RING2_CHORD_STREAK_DECAY - - + + - + RIGHT_RING2_RING1_REPEAT_DECAY - -RIGHT_RING2_RING1_REPEAT_DECAY + +RIGHT_RING2_RING1_REPEAT_DECAY - + RIGHT_RING2_RING1_REPEAT_DECAY->RIGHT_RING2_CHORD_REPEAT_DECAY - - + + - + RIGHT_MIDDY_RING1_HOLDING_TYPE - -RIGHT_MIDDY_RING1_HOLDING_TYPE + +RIGHT_MIDDY_RING1_HOLDING_TYPE - + RIGHT_MIDDY_RING1_HOLDING_TYPE->RIGHT_MIDDY_CHORD_HOLDING_TYPE - - + + - + RIGHT_MIDDY_RING1_HOLDING_TIME - -RIGHT_MIDDY_RING1_HOLDING_TIME + +RIGHT_MIDDY_RING1_HOLDING_TIME - + RIGHT_MIDDY_RING1_HOLDING_TIME->RIGHT_MIDDY_CHORD_HOLDING_TIME - - + + - + RIGHT_MIDDY_RING1_STREAK_DECAY - -RIGHT_MIDDY_RING1_STREAK_DECAY + +RIGHT_MIDDY_RING1_STREAK_DECAY - + RIGHT_MIDDY_RING1_STREAK_DECAY->RIGHT_MIDDY_CHORD_STREAK_DECAY - - + + - + RIGHT_MIDDY_RING1_REPEAT_DECAY - -RIGHT_MIDDY_RING1_REPEAT_DECAY + +RIGHT_MIDDY_RING1_REPEAT_DECAY - + RIGHT_MIDDY_RING1_REPEAT_DECAY->RIGHT_MIDDY_CHORD_REPEAT_DECAY - - + + - + RIGHT_INDEX_RING1_HOLDING_TYPE - -RIGHT_INDEX_RING1_HOLDING_TYPE + +RIGHT_INDEX_RING1_HOLDING_TYPE - + RIGHT_INDEX_RING1_HOLDING_TYPE->RIGHT_INDEX_CHORD_HOLDING_TYPE - - + + - + RIGHT_INDEX_RING1_HOLDING_TIME - -RIGHT_INDEX_RING1_HOLDING_TIME + +RIGHT_INDEX_RING1_HOLDING_TIME - + RIGHT_INDEX_RING1_HOLDING_TIME->RIGHT_INDEX_CHORD_HOLDING_TIME - - + + - + RIGHT_INDEX_RING1_STREAK_DECAY - -RIGHT_INDEX_RING1_STREAK_DECAY + +RIGHT_INDEX_RING1_STREAK_DECAY - + RIGHT_INDEX_RING1_STREAK_DECAY->RIGHT_INDEX_CHORD_STREAK_DECAY - - + + - + RIGHT_INDEX_RING1_REPEAT_DECAY - -RIGHT_INDEX_RING1_REPEAT_DECAY + +RIGHT_INDEX_RING1_REPEAT_DECAY - + RIGHT_INDEX_RING1_REPEAT_DECAY->RIGHT_INDEX_CHORD_REPEAT_DECAY - - + + - + LEFT_PINKY_RING2_HOLDING_TYPE - -LEFT_PINKY_RING2_HOLDING_TYPE + +LEFT_PINKY_RING2_HOLDING_TYPE - + LEFT_PINKY_RING2_HOLDING_TYPE->LEFT_PINKY_CHORD_HOLDING_TYPE - - + + - + LEFT_PINKY_RING2_HOLDING_TIME - -LEFT_PINKY_RING2_HOLDING_TIME + +LEFT_PINKY_RING2_HOLDING_TIME - + LEFT_PINKY_RING2_HOLDING_TIME->LEFT_PINKY_CHORD_HOLDING_TIME - - + + - + LEFT_PINKY_RING2_STREAK_DECAY - -LEFT_PINKY_RING2_STREAK_DECAY + +LEFT_PINKY_RING2_STREAK_DECAY - + LEFT_PINKY_RING2_STREAK_DECAY->LEFT_PINKY_CHORD_STREAK_DECAY - - + + - + LEFT_PINKY_RING2_REPEAT_DECAY - -LEFT_PINKY_RING2_REPEAT_DECAY + +LEFT_PINKY_RING2_REPEAT_DECAY - + LEFT_PINKY_RING2_REPEAT_DECAY->LEFT_PINKY_CHORD_REPEAT_DECAY - - + + - + LEFT_RING1_RING2_HOLDING_TYPE - -LEFT_RING1_RING2_HOLDING_TYPE + +LEFT_RING1_RING2_HOLDING_TYPE - + LEFT_RING1_RING2_HOLDING_TYPE->LEFT_RING1_CHORD_HOLDING_TYPE - - + + - + LEFT_RING1_RING2_HOLDING_TIME - -LEFT_RING1_RING2_HOLDING_TIME + +LEFT_RING1_RING2_HOLDING_TIME - + LEFT_RING1_RING2_HOLDING_TIME->LEFT_RING1_CHORD_HOLDING_TIME - - + + - + LEFT_RING1_RING2_STREAK_DECAY - -LEFT_RING1_RING2_STREAK_DECAY + +LEFT_RING1_RING2_STREAK_DECAY - + LEFT_RING1_RING2_STREAK_DECAY->LEFT_RING1_CHORD_STREAK_DECAY - - + + - + LEFT_RING1_RING2_REPEAT_DECAY - -LEFT_RING1_RING2_REPEAT_DECAY + +LEFT_RING1_RING2_REPEAT_DECAY - + LEFT_RING1_RING2_REPEAT_DECAY->LEFT_RING1_CHORD_REPEAT_DECAY - - + + - + LEFT_MIDDY_RING2_HOLDING_TYPE - -LEFT_MIDDY_RING2_HOLDING_TYPE + +LEFT_MIDDY_RING2_HOLDING_TYPE - + LEFT_MIDDY_RING2_HOLDING_TYPE->LEFT_MIDDY_CHORD_HOLDING_TYPE - - + + - + LEFT_MIDDY_RING2_HOLDING_TIME - -LEFT_MIDDY_RING2_HOLDING_TIME + +LEFT_MIDDY_RING2_HOLDING_TIME - + LEFT_MIDDY_RING2_HOLDING_TIME->LEFT_MIDDY_CHORD_HOLDING_TIME - - + + - + LEFT_MIDDY_RING2_STREAK_DECAY - -LEFT_MIDDY_RING2_STREAK_DECAY + +LEFT_MIDDY_RING2_STREAK_DECAY - + LEFT_MIDDY_RING2_STREAK_DECAY->LEFT_MIDDY_CHORD_STREAK_DECAY - - + + - + LEFT_MIDDY_RING2_REPEAT_DECAY - -LEFT_MIDDY_RING2_REPEAT_DECAY + +LEFT_MIDDY_RING2_REPEAT_DECAY - + LEFT_MIDDY_RING2_REPEAT_DECAY->LEFT_MIDDY_CHORD_REPEAT_DECAY - - + + - + LEFT_INDEX_RING2_HOLDING_TYPE - -LEFT_INDEX_RING2_HOLDING_TYPE + +LEFT_INDEX_RING2_HOLDING_TYPE - + LEFT_INDEX_RING2_HOLDING_TYPE->LEFT_INDEX_CHORD_HOLDING_TYPE - - + + - + LEFT_INDEX_RING2_HOLDING_TIME - -LEFT_INDEX_RING2_HOLDING_TIME + +LEFT_INDEX_RING2_HOLDING_TIME - + LEFT_INDEX_RING2_HOLDING_TIME->LEFT_INDEX_CHORD_HOLDING_TIME - - + + - + LEFT_INDEX_RING2_STREAK_DECAY - -LEFT_INDEX_RING2_STREAK_DECAY + +LEFT_INDEX_RING2_STREAK_DECAY - + LEFT_INDEX_RING2_STREAK_DECAY->LEFT_INDEX_CHORD_STREAK_DECAY - - + + - + LEFT_INDEX_RING2_REPEAT_DECAY - -LEFT_INDEX_RING2_REPEAT_DECAY + +LEFT_INDEX_RING2_REPEAT_DECAY - + LEFT_INDEX_RING2_REPEAT_DECAY->LEFT_INDEX_CHORD_REPEAT_DECAY - - + + - + RIGHT_PINKY_RING2_HOLDING_TYPE - -RIGHT_PINKY_RING2_HOLDING_TYPE + +RIGHT_PINKY_RING2_HOLDING_TYPE - + RIGHT_PINKY_RING2_HOLDING_TYPE->RIGHT_PINKY_CHORD_HOLDING_TYPE - - + + - + RIGHT_PINKY_RING2_HOLDING_TIME - -RIGHT_PINKY_RING2_HOLDING_TIME + +RIGHT_PINKY_RING2_HOLDING_TIME - + RIGHT_PINKY_RING2_HOLDING_TIME->RIGHT_PINKY_CHORD_HOLDING_TIME - - + + - + RIGHT_PINKY_RING2_STREAK_DECAY - -RIGHT_PINKY_RING2_STREAK_DECAY + +RIGHT_PINKY_RING2_STREAK_DECAY - + RIGHT_PINKY_RING2_STREAK_DECAY->RIGHT_PINKY_CHORD_STREAK_DECAY - - + + - + RIGHT_PINKY_RING2_REPEAT_DECAY - -RIGHT_PINKY_RING2_REPEAT_DECAY + +RIGHT_PINKY_RING2_REPEAT_DECAY - + RIGHT_PINKY_RING2_REPEAT_DECAY->RIGHT_PINKY_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING1_RING2_HOLDING_TYPE - -RIGHT_RING1_RING2_HOLDING_TYPE + +RIGHT_RING1_RING2_HOLDING_TYPE - + RIGHT_RING1_RING2_HOLDING_TYPE->RIGHT_RING1_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING1_RING2_HOLDING_TIME - -RIGHT_RING1_RING2_HOLDING_TIME + +RIGHT_RING1_RING2_HOLDING_TIME - + RIGHT_RING1_RING2_HOLDING_TIME->RIGHT_RING1_CHORD_HOLDING_TIME - - + + - + RIGHT_RING1_RING2_STREAK_DECAY - -RIGHT_RING1_RING2_STREAK_DECAY + +RIGHT_RING1_RING2_STREAK_DECAY - + RIGHT_RING1_RING2_STREAK_DECAY->RIGHT_RING1_CHORD_STREAK_DECAY - - + + - + RIGHT_RING1_RING2_REPEAT_DECAY - -RIGHT_RING1_RING2_REPEAT_DECAY + +RIGHT_RING1_RING2_REPEAT_DECAY - + RIGHT_RING1_RING2_REPEAT_DECAY->RIGHT_RING1_CHORD_REPEAT_DECAY - - + + - + RIGHT_MIDDY_RING2_HOLDING_TYPE - -RIGHT_MIDDY_RING2_HOLDING_TYPE + +RIGHT_MIDDY_RING2_HOLDING_TYPE - + RIGHT_MIDDY_RING2_HOLDING_TYPE->RIGHT_MIDDY_CHORD_HOLDING_TYPE - - + + - + RIGHT_MIDDY_RING2_HOLDING_TIME - -RIGHT_MIDDY_RING2_HOLDING_TIME + +RIGHT_MIDDY_RING2_HOLDING_TIME - + RIGHT_MIDDY_RING2_HOLDING_TIME->RIGHT_MIDDY_CHORD_HOLDING_TIME - - + + - + RIGHT_MIDDY_RING2_STREAK_DECAY - -RIGHT_MIDDY_RING2_STREAK_DECAY + +RIGHT_MIDDY_RING2_STREAK_DECAY - + RIGHT_MIDDY_RING2_STREAK_DECAY->RIGHT_MIDDY_CHORD_STREAK_DECAY - - + + - + RIGHT_MIDDY_RING2_REPEAT_DECAY - -RIGHT_MIDDY_RING2_REPEAT_DECAY + +RIGHT_MIDDY_RING2_REPEAT_DECAY - + RIGHT_MIDDY_RING2_REPEAT_DECAY->RIGHT_MIDDY_CHORD_REPEAT_DECAY - - + + - + RIGHT_INDEX_RING2_HOLDING_TYPE - -RIGHT_INDEX_RING2_HOLDING_TYPE + +RIGHT_INDEX_RING2_HOLDING_TYPE - + RIGHT_INDEX_RING2_HOLDING_TYPE->RIGHT_INDEX_CHORD_HOLDING_TYPE - - + + - + RIGHT_INDEX_RING2_HOLDING_TIME - -RIGHT_INDEX_RING2_HOLDING_TIME + +RIGHT_INDEX_RING2_HOLDING_TIME - + RIGHT_INDEX_RING2_HOLDING_TIME->RIGHT_INDEX_CHORD_HOLDING_TIME - - + + - + RIGHT_INDEX_RING2_STREAK_DECAY - -RIGHT_INDEX_RING2_STREAK_DECAY + +RIGHT_INDEX_RING2_STREAK_DECAY - + RIGHT_INDEX_RING2_STREAK_DECAY->RIGHT_INDEX_CHORD_STREAK_DECAY - - + + - + RIGHT_INDEX_RING2_REPEAT_DECAY - -RIGHT_INDEX_RING2_REPEAT_DECAY + +RIGHT_INDEX_RING2_REPEAT_DECAY - + RIGHT_INDEX_RING2_REPEAT_DECAY->RIGHT_INDEX_CHORD_REPEAT_DECAY - - + + - + LEFT_PINKY_MIDDY_HOLDING_TYPE - -LEFT_PINKY_MIDDY_HOLDING_TYPE + +LEFT_PINKY_MIDDY_HOLDING_TYPE - + LEFT_PINKY_MIDDY_HOLDING_TYPE->LEFT_PINKY_CHORD_HOLDING_TYPE - - + + - + LEFT_PINKY_MIDDY_HOLDING_TIME - -LEFT_PINKY_MIDDY_HOLDING_TIME + +LEFT_PINKY_MIDDY_HOLDING_TIME - + LEFT_PINKY_MIDDY_HOLDING_TIME->LEFT_PINKY_CHORD_HOLDING_TIME - - + + - + LEFT_PINKY_MIDDY_STREAK_DECAY - -LEFT_PINKY_MIDDY_STREAK_DECAY + +LEFT_PINKY_MIDDY_STREAK_DECAY - + LEFT_PINKY_MIDDY_STREAK_DECAY->LEFT_PINKY_CHORD_STREAK_DECAY - - + + - + LEFT_PINKY_MIDDY_REPEAT_DECAY - -LEFT_PINKY_MIDDY_REPEAT_DECAY + +LEFT_PINKY_MIDDY_REPEAT_DECAY - + LEFT_PINKY_MIDDY_REPEAT_DECAY->LEFT_PINKY_CHORD_REPEAT_DECAY - - + + - + LEFT_RING1_MIDDY_HOLDING_TYPE - -LEFT_RING1_MIDDY_HOLDING_TYPE + +LEFT_RING1_MIDDY_HOLDING_TYPE - + LEFT_RING1_MIDDY_HOLDING_TYPE->LEFT_RING1_CHORD_HOLDING_TYPE - - + + - + LEFT_RING1_MIDDY_HOLDING_TIME - -LEFT_RING1_MIDDY_HOLDING_TIME + +LEFT_RING1_MIDDY_HOLDING_TIME - + LEFT_RING1_MIDDY_HOLDING_TIME->LEFT_RING1_CHORD_HOLDING_TIME - - + + - + LEFT_RING1_MIDDY_STREAK_DECAY - -LEFT_RING1_MIDDY_STREAK_DECAY + +LEFT_RING1_MIDDY_STREAK_DECAY - + LEFT_RING1_MIDDY_STREAK_DECAY->LEFT_RING1_CHORD_STREAK_DECAY - - + + - + LEFT_RING1_MIDDY_REPEAT_DECAY - -LEFT_RING1_MIDDY_REPEAT_DECAY + +LEFT_RING1_MIDDY_REPEAT_DECAY - + LEFT_RING1_MIDDY_REPEAT_DECAY->LEFT_RING1_CHORD_REPEAT_DECAY - - + + - + LEFT_RING2_MIDDY_HOLDING_TYPE - -LEFT_RING2_MIDDY_HOLDING_TYPE + +LEFT_RING2_MIDDY_HOLDING_TYPE - + LEFT_RING2_MIDDY_HOLDING_TYPE->LEFT_RING2_CHORD_HOLDING_TYPE - - + + - + LEFT_RING2_MIDDY_HOLDING_TIME - -LEFT_RING2_MIDDY_HOLDING_TIME + +LEFT_RING2_MIDDY_HOLDING_TIME - + LEFT_RING2_MIDDY_HOLDING_TIME->LEFT_RING2_CHORD_HOLDING_TIME - - + + - + LEFT_RING2_MIDDY_STREAK_DECAY - -LEFT_RING2_MIDDY_STREAK_DECAY + +LEFT_RING2_MIDDY_STREAK_DECAY - + LEFT_RING2_MIDDY_STREAK_DECAY->LEFT_RING2_CHORD_STREAK_DECAY - - + + - + LEFT_RING2_MIDDY_REPEAT_DECAY - -LEFT_RING2_MIDDY_REPEAT_DECAY + +LEFT_RING2_MIDDY_REPEAT_DECAY - + LEFT_RING2_MIDDY_REPEAT_DECAY->LEFT_RING2_CHORD_REPEAT_DECAY - - + + - + LEFT_INDEX_MIDDY_HOLDING_TYPE - -LEFT_INDEX_MIDDY_HOLDING_TYPE + +LEFT_INDEX_MIDDY_HOLDING_TYPE - + LEFT_INDEX_MIDDY_HOLDING_TYPE->LEFT_INDEX_CHORD_HOLDING_TYPE - - + + - + LEFT_INDEX_MIDDY_HOLDING_TIME - -LEFT_INDEX_MIDDY_HOLDING_TIME + +LEFT_INDEX_MIDDY_HOLDING_TIME - + LEFT_INDEX_MIDDY_HOLDING_TIME->LEFT_INDEX_CHORD_HOLDING_TIME - - + + - + LEFT_INDEX_MIDDY_STREAK_DECAY - -LEFT_INDEX_MIDDY_STREAK_DECAY + +LEFT_INDEX_MIDDY_STREAK_DECAY - + LEFT_INDEX_MIDDY_STREAK_DECAY->LEFT_INDEX_CHORD_STREAK_DECAY - - + + - + LEFT_INDEX_MIDDY_REPEAT_DECAY - -LEFT_INDEX_MIDDY_REPEAT_DECAY + +LEFT_INDEX_MIDDY_REPEAT_DECAY - + LEFT_INDEX_MIDDY_REPEAT_DECAY->LEFT_INDEX_CHORD_REPEAT_DECAY - - + + - + RIGHT_PINKY_MIDDY_HOLDING_TYPE - -RIGHT_PINKY_MIDDY_HOLDING_TYPE + +RIGHT_PINKY_MIDDY_HOLDING_TYPE - + RIGHT_PINKY_MIDDY_HOLDING_TYPE->RIGHT_PINKY_CHORD_HOLDING_TYPE - - + + - + RIGHT_PINKY_MIDDY_HOLDING_TIME - -RIGHT_PINKY_MIDDY_HOLDING_TIME + +RIGHT_PINKY_MIDDY_HOLDING_TIME - + RIGHT_PINKY_MIDDY_HOLDING_TIME->RIGHT_PINKY_CHORD_HOLDING_TIME - - + + - + RIGHT_PINKY_MIDDY_STREAK_DECAY - -RIGHT_PINKY_MIDDY_STREAK_DECAY + +RIGHT_PINKY_MIDDY_STREAK_DECAY - + RIGHT_PINKY_MIDDY_STREAK_DECAY->RIGHT_PINKY_CHORD_STREAK_DECAY - - + + - + RIGHT_PINKY_MIDDY_REPEAT_DECAY - -RIGHT_PINKY_MIDDY_REPEAT_DECAY + +RIGHT_PINKY_MIDDY_REPEAT_DECAY - + RIGHT_PINKY_MIDDY_REPEAT_DECAY->RIGHT_PINKY_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING1_MIDDY_HOLDING_TYPE - -RIGHT_RING1_MIDDY_HOLDING_TYPE + +RIGHT_RING1_MIDDY_HOLDING_TYPE - + RIGHT_RING1_MIDDY_HOLDING_TYPE->RIGHT_RING1_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING1_MIDDY_HOLDING_TIME - -RIGHT_RING1_MIDDY_HOLDING_TIME + +RIGHT_RING1_MIDDY_HOLDING_TIME - + RIGHT_RING1_MIDDY_HOLDING_TIME->RIGHT_RING1_CHORD_HOLDING_TIME - - + + - + RIGHT_RING1_MIDDY_STREAK_DECAY - -RIGHT_RING1_MIDDY_STREAK_DECAY + +RIGHT_RING1_MIDDY_STREAK_DECAY - + RIGHT_RING1_MIDDY_STREAK_DECAY->RIGHT_RING1_CHORD_STREAK_DECAY - - + + - + RIGHT_RING1_MIDDY_REPEAT_DECAY - -RIGHT_RING1_MIDDY_REPEAT_DECAY + +RIGHT_RING1_MIDDY_REPEAT_DECAY - + RIGHT_RING1_MIDDY_REPEAT_DECAY->RIGHT_RING1_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING2_MIDDY_HOLDING_TYPE - -RIGHT_RING2_MIDDY_HOLDING_TYPE + +RIGHT_RING2_MIDDY_HOLDING_TYPE - + RIGHT_RING2_MIDDY_HOLDING_TYPE->RIGHT_RING2_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING2_MIDDY_HOLDING_TIME - -RIGHT_RING2_MIDDY_HOLDING_TIME + +RIGHT_RING2_MIDDY_HOLDING_TIME - + RIGHT_RING2_MIDDY_HOLDING_TIME->RIGHT_RING2_CHORD_HOLDING_TIME - - + + - + RIGHT_RING2_MIDDY_STREAK_DECAY - -RIGHT_RING2_MIDDY_STREAK_DECAY + +RIGHT_RING2_MIDDY_STREAK_DECAY - + RIGHT_RING2_MIDDY_STREAK_DECAY->RIGHT_RING2_CHORD_STREAK_DECAY - - + + - + RIGHT_RING2_MIDDY_REPEAT_DECAY - -RIGHT_RING2_MIDDY_REPEAT_DECAY + +RIGHT_RING2_MIDDY_REPEAT_DECAY - + RIGHT_RING2_MIDDY_REPEAT_DECAY->RIGHT_RING2_CHORD_REPEAT_DECAY - - + + - + RIGHT_INDEX_MIDDY_HOLDING_TYPE - -RIGHT_INDEX_MIDDY_HOLDING_TYPE + +RIGHT_INDEX_MIDDY_HOLDING_TYPE - + RIGHT_INDEX_MIDDY_HOLDING_TYPE->RIGHT_INDEX_CHORD_HOLDING_TYPE - - + + - + RIGHT_INDEX_MIDDY_HOLDING_TIME - -RIGHT_INDEX_MIDDY_HOLDING_TIME + +RIGHT_INDEX_MIDDY_HOLDING_TIME - + RIGHT_INDEX_MIDDY_HOLDING_TIME->RIGHT_INDEX_CHORD_HOLDING_TIME - - + + - + RIGHT_INDEX_MIDDY_STREAK_DECAY - -RIGHT_INDEX_MIDDY_STREAK_DECAY + +RIGHT_INDEX_MIDDY_STREAK_DECAY - + RIGHT_INDEX_MIDDY_STREAK_DECAY->RIGHT_INDEX_CHORD_STREAK_DECAY - - + + - + RIGHT_INDEX_MIDDY_REPEAT_DECAY - -RIGHT_INDEX_MIDDY_REPEAT_DECAY + +RIGHT_INDEX_MIDDY_REPEAT_DECAY - + RIGHT_INDEX_MIDDY_REPEAT_DECAY->RIGHT_INDEX_CHORD_REPEAT_DECAY - - + + - + LEFT_PINKY_INDEX_HOLDING_TYPE - -LEFT_PINKY_INDEX_HOLDING_TYPE + +LEFT_PINKY_INDEX_HOLDING_TYPE - + LEFT_PINKY_INDEX_HOLDING_TYPE->LEFT_PINKY_CHORD_HOLDING_TYPE - - + + - + LEFT_PINKY_INDEX_HOLDING_TIME - -LEFT_PINKY_INDEX_HOLDING_TIME + +LEFT_PINKY_INDEX_HOLDING_TIME - + LEFT_PINKY_INDEX_HOLDING_TIME->LEFT_PINKY_CHORD_HOLDING_TIME - - + + - + LEFT_PINKY_INDEX_STREAK_DECAY - -LEFT_PINKY_INDEX_STREAK_DECAY + +LEFT_PINKY_INDEX_STREAK_DECAY - + LEFT_PINKY_INDEX_STREAK_DECAY->LEFT_PINKY_CHORD_STREAK_DECAY - - + + - + LEFT_PINKY_INDEX_REPEAT_DECAY - -LEFT_PINKY_INDEX_REPEAT_DECAY + +LEFT_PINKY_INDEX_REPEAT_DECAY - + LEFT_PINKY_INDEX_REPEAT_DECAY->LEFT_PINKY_CHORD_REPEAT_DECAY - - + + - + LEFT_RING1_INDEX_HOLDING_TYPE - -LEFT_RING1_INDEX_HOLDING_TYPE + +LEFT_RING1_INDEX_HOLDING_TYPE - + LEFT_RING1_INDEX_HOLDING_TYPE->LEFT_RING1_CHORD_HOLDING_TYPE - - + + - + LEFT_RING1_INDEX_HOLDING_TIME - -LEFT_RING1_INDEX_HOLDING_TIME + +LEFT_RING1_INDEX_HOLDING_TIME - + LEFT_RING1_INDEX_HOLDING_TIME->LEFT_RING1_CHORD_HOLDING_TIME - - + + - + LEFT_RING1_INDEX_STREAK_DECAY - -LEFT_RING1_INDEX_STREAK_DECAY + +LEFT_RING1_INDEX_STREAK_DECAY - + LEFT_RING1_INDEX_STREAK_DECAY->LEFT_RING1_CHORD_STREAK_DECAY - - + + - + LEFT_RING1_INDEX_REPEAT_DECAY - -LEFT_RING1_INDEX_REPEAT_DECAY + +LEFT_RING1_INDEX_REPEAT_DECAY - + LEFT_RING1_INDEX_REPEAT_DECAY->LEFT_RING1_CHORD_REPEAT_DECAY - - + + - + LEFT_RING2_INDEX_HOLDING_TYPE - -LEFT_RING2_INDEX_HOLDING_TYPE + +LEFT_RING2_INDEX_HOLDING_TYPE - + LEFT_RING2_INDEX_HOLDING_TYPE->LEFT_RING2_CHORD_HOLDING_TYPE - - + + - + LEFT_RING2_INDEX_HOLDING_TIME - -LEFT_RING2_INDEX_HOLDING_TIME + +LEFT_RING2_INDEX_HOLDING_TIME - + LEFT_RING2_INDEX_HOLDING_TIME->LEFT_RING2_CHORD_HOLDING_TIME - - + + - + LEFT_RING2_INDEX_STREAK_DECAY - -LEFT_RING2_INDEX_STREAK_DECAY + +LEFT_RING2_INDEX_STREAK_DECAY - + LEFT_RING2_INDEX_STREAK_DECAY->LEFT_RING2_CHORD_STREAK_DECAY - - + + - + LEFT_RING2_INDEX_REPEAT_DECAY - -LEFT_RING2_INDEX_REPEAT_DECAY + +LEFT_RING2_INDEX_REPEAT_DECAY - + LEFT_RING2_INDEX_REPEAT_DECAY->LEFT_RING2_CHORD_REPEAT_DECAY - - + + - + LEFT_MIDDY_INDEX_HOLDING_TYPE - -LEFT_MIDDY_INDEX_HOLDING_TYPE + +LEFT_MIDDY_INDEX_HOLDING_TYPE - + LEFT_MIDDY_INDEX_HOLDING_TYPE->LEFT_MIDDY_CHORD_HOLDING_TYPE - - + + - + LEFT_MIDDY_INDEX_HOLDING_TIME - -LEFT_MIDDY_INDEX_HOLDING_TIME + +LEFT_MIDDY_INDEX_HOLDING_TIME - + LEFT_MIDDY_INDEX_HOLDING_TIME->LEFT_MIDDY_CHORD_HOLDING_TIME - - + + - + LEFT_MIDDY_INDEX_STREAK_DECAY - -LEFT_MIDDY_INDEX_STREAK_DECAY + +LEFT_MIDDY_INDEX_STREAK_DECAY - + LEFT_MIDDY_INDEX_STREAK_DECAY->LEFT_MIDDY_CHORD_STREAK_DECAY - - + + - + LEFT_MIDDY_INDEX_REPEAT_DECAY - -LEFT_MIDDY_INDEX_REPEAT_DECAY + +LEFT_MIDDY_INDEX_REPEAT_DECAY - + LEFT_MIDDY_INDEX_REPEAT_DECAY->LEFT_MIDDY_CHORD_REPEAT_DECAY - - + + - + RIGHT_PINKY_INDEX_HOLDING_TYPE - -RIGHT_PINKY_INDEX_HOLDING_TYPE + +RIGHT_PINKY_INDEX_HOLDING_TYPE - + RIGHT_PINKY_INDEX_HOLDING_TYPE->RIGHT_PINKY_CHORD_HOLDING_TYPE - - + + - + RIGHT_PINKY_INDEX_HOLDING_TIME - -RIGHT_PINKY_INDEX_HOLDING_TIME + +RIGHT_PINKY_INDEX_HOLDING_TIME - + RIGHT_PINKY_INDEX_HOLDING_TIME->RIGHT_PINKY_CHORD_HOLDING_TIME - - + + - + RIGHT_PINKY_INDEX_STREAK_DECAY - -RIGHT_PINKY_INDEX_STREAK_DECAY + +RIGHT_PINKY_INDEX_STREAK_DECAY - + RIGHT_PINKY_INDEX_STREAK_DECAY->RIGHT_PINKY_CHORD_STREAK_DECAY - - + + - + RIGHT_PINKY_INDEX_REPEAT_DECAY - -RIGHT_PINKY_INDEX_REPEAT_DECAY + +RIGHT_PINKY_INDEX_REPEAT_DECAY - + RIGHT_PINKY_INDEX_REPEAT_DECAY->RIGHT_PINKY_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING1_INDEX_HOLDING_TYPE - -RIGHT_RING1_INDEX_HOLDING_TYPE + +RIGHT_RING1_INDEX_HOLDING_TYPE - + RIGHT_RING1_INDEX_HOLDING_TYPE->RIGHT_RING1_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING1_INDEX_HOLDING_TIME - -RIGHT_RING1_INDEX_HOLDING_TIME + +RIGHT_RING1_INDEX_HOLDING_TIME - + RIGHT_RING1_INDEX_HOLDING_TIME->RIGHT_RING1_CHORD_HOLDING_TIME - - + + - + RIGHT_RING1_INDEX_STREAK_DECAY - -RIGHT_RING1_INDEX_STREAK_DECAY + +RIGHT_RING1_INDEX_STREAK_DECAY - + RIGHT_RING1_INDEX_STREAK_DECAY->RIGHT_RING1_CHORD_STREAK_DECAY - - + + - + RIGHT_RING1_INDEX_REPEAT_DECAY - -RIGHT_RING1_INDEX_REPEAT_DECAY + +RIGHT_RING1_INDEX_REPEAT_DECAY - + RIGHT_RING1_INDEX_REPEAT_DECAY->RIGHT_RING1_CHORD_REPEAT_DECAY - - + + - + RIGHT_RING2_INDEX_HOLDING_TYPE - -RIGHT_RING2_INDEX_HOLDING_TYPE + +RIGHT_RING2_INDEX_HOLDING_TYPE - + RIGHT_RING2_INDEX_HOLDING_TYPE->RIGHT_RING2_CHORD_HOLDING_TYPE - - + + - + RIGHT_RING2_INDEX_HOLDING_TIME - -RIGHT_RING2_INDEX_HOLDING_TIME + +RIGHT_RING2_INDEX_HOLDING_TIME - + RIGHT_RING2_INDEX_HOLDING_TIME->RIGHT_RING2_CHORD_HOLDING_TIME - - + + - + RIGHT_RING2_INDEX_STREAK_DECAY - -RIGHT_RING2_INDEX_STREAK_DECAY + +RIGHT_RING2_INDEX_STREAK_DECAY - + RIGHT_RING2_INDEX_STREAK_DECAY->RIGHT_RING2_CHORD_STREAK_DECAY - - + + - + RIGHT_RING2_INDEX_REPEAT_DECAY - -RIGHT_RING2_INDEX_REPEAT_DECAY + +RIGHT_RING2_INDEX_REPEAT_DECAY - + RIGHT_RING2_INDEX_REPEAT_DECAY->RIGHT_RING2_CHORD_REPEAT_DECAY - - + + - + RIGHT_MIDDY_INDEX_HOLDING_TYPE - -RIGHT_MIDDY_INDEX_HOLDING_TYPE + +RIGHT_MIDDY_INDEX_HOLDING_TYPE - + RIGHT_MIDDY_INDEX_HOLDING_TYPE->RIGHT_MIDDY_CHORD_HOLDING_TYPE - - + + - + RIGHT_MIDDY_INDEX_HOLDING_TIME - -RIGHT_MIDDY_INDEX_HOLDING_TIME + +RIGHT_MIDDY_INDEX_HOLDING_TIME - + RIGHT_MIDDY_INDEX_HOLDING_TIME->RIGHT_MIDDY_CHORD_HOLDING_TIME - - + + - + RIGHT_MIDDY_INDEX_STREAK_DECAY - -RIGHT_MIDDY_INDEX_STREAK_DECAY + +RIGHT_MIDDY_INDEX_STREAK_DECAY - + RIGHT_MIDDY_INDEX_STREAK_DECAY->RIGHT_MIDDY_CHORD_STREAK_DECAY - - + + - + RIGHT_MIDDY_INDEX_REPEAT_DECAY - -RIGHT_MIDDY_INDEX_REPEAT_DECAY + +RIGHT_MIDDY_INDEX_REPEAT_DECAY - + RIGHT_MIDDY_INDEX_REPEAT_DECAY->RIGHT_MIDDY_CHORD_REPEAT_DECAY - - + + - + STICKY_1SHOT_DECAY - -STICKY_1SHOT_DECAY + +STICKY_1SHOT_DECAY - + NUMBER_500 - -500 + + + + +500 - + STICKY_1SHOT_DECAY->NUMBER_500 - - + + - + STICKY_HOLDING_TIME - -STICKY_HOLDING_TIME + +STICKY_HOLDING_TIME - + STICKY_HOLDING_TIME->CHORD_HOLDING_TIME - - + + - + SELECT_WORD_DELAY - -SELECT_WORD_DELAY + +SELECT_WORD_DELAY - + NUMBER_1 - -1 + + + + +1 - + SELECT_WORD_DELAY->NUMBER_1 - - + + - + UNICODE_TAP_DELAY - -UNICODE_TAP_DELAY + +UNICODE_TAP_DELAY - + UNICODE_TAP_DELAY->NUMBER_1 - - + + - + UNICODE_SEQ_DELAY - -UNICODE_SEQ_DELAY + +UNICODE_SEQ_DELAY - + NUMBER_10 - -10 + + + + +10 - + UNICODE_SEQ_DELAY->NUMBER_10 - - + + - + COMPOSE_KEY_LINUX - -COMPOSE_KEY_LINUX + +COMPOSE_KEY_LINUX - + COMPOSE_KEY_LINUX->RALT - - + + - + EMOJI_GENDER_SIGN_PRESET - -EMOJI_GENDER_SIGN_PRESET + +EMOJI_GENDER_SIGN_PRESET - + 'N' - -'N' + + + + +'N' - + EMOJI_GENDER_SIGN_PRESET->'N' - - + + - + EMOJI_SKIN_TONE_PRESET - -EMOJI_SKIN_TONE_PRESET + +EMOJI_SKIN_TONE_PRESET - + EMOJI_SKIN_TONE_PRESET->'N' - - + + - + EMOJI_HAIR_STYLE_PRESET - -EMOJI_HAIR_STYLE_PRESET + +EMOJI_HAIR_STYLE_PRESET - + EMOJI_HAIR_STYLE_PRESET->'N' - - + + - + MOUSE_MOTION_DELAY - -MOUSE_MOTION_DELAY + +MOUSE_MOTION_DELAY - + NUMBER_0 - -0 + + + + +0 - + MOUSE_MOTION_DELAY->NUMBER_0 - - + + - + MOUSE_MOTION_ACCELERATION_EXPONENT - -MOUSE_MOTION_ACCELERATION_EXPONENT + +MOUSE_MOTION_ACCELERATION_EXPONENT - + MOUSE_MOTION_ACCELERATION_EXPONENT->NUMBER_1 - - + + - + MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED - -MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED + +MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED + + + +NUMBER_300 + + + + +300 - + MOUSE_MOTION_TIME_TO_MAXIMUM_SPEED->NUMBER_300 - - + + - + MOUSE_MOTION_MAXIMUM_SPEED - -MOUSE_MOTION_MAXIMUM_SPEED + +MOUSE_MOTION_MAXIMUM_SPEED - + NUMBER_600 - -600 + + + + +600 - + MOUSE_MOTION_MAXIMUM_SPEED->NUMBER_600 - - + + - + MOUSE_SCROLL_DELAY - -MOUSE_SCROLL_DELAY + +MOUSE_SCROLL_DELAY - + MOUSE_SCROLL_DELAY->NUMBER_0 - - + + - + MOUSE_SCROLL_ACCELERATION_EXPONENT - -MOUSE_SCROLL_ACCELERATION_EXPONENT + +MOUSE_SCROLL_ACCELERATION_EXPONENT - + MOUSE_SCROLL_ACCELERATION_EXPONENT->NUMBER_0 - - + + - + MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED - -MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED + +MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED - + MOUSE_SCROLL_TIME_TO_MAXIMUM_SPEED->NUMBER_300 - - + + - + MOUSE_SCROLL_MAXIMUM_SPEED - -MOUSE_SCROLL_MAXIMUM_SPEED + +MOUSE_SCROLL_MAXIMUM_SPEED - + MOUSE_SCROLL_MAXIMUM_SPEED->NUMBER_10 - - + + diff --git a/keymap.dtsi b/keymap.dtsi index baf17a9..16dfb59 100644 --- a/keymap.dtsi +++ b/keymap.dtsi @@ -985,42 +985,37 @@ behaviors { // // DIFFICULTY_LEVEL specifies your level of expertise with this keymap. // It's meant to help newcomers gradually work their way up to mastery. - // You can disable this setting by omitting it or assigning a `0` zero. // - // #define DIFFICULTY_LEVEL 0 // custom (see defaults below) // #define DIFFICULTY_LEVEL 1 // novice (500ms) // #define DIFFICULTY_LEVEL 2 // slower (400ms) // #define DIFFICULTY_LEVEL 3 // normal (300ms) // #define DIFFICULTY_LEVEL 4 // faster (200ms) // #define DIFFICULTY_LEVEL 5 // expert (100ms) // - #if defined(DIFFICULTY_LEVEL) && DIFFICULTY_LEVEL > 0 - #define DIFFICULTY_LEVEL_HOLDING_TIME ((6 - DIFFICULTY_LEVEL) * 100) - #define DIFFICULTY_LEVEL_STREAK_DECAY (((6 - DIFFICULTY_LEVEL) * 50) + 100) - #ifndef HOMEY_HOLDING_TIME - #define HOMEY_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME - #endif - #ifndef HOMEY_STREAK_DECAY - #define HOMEY_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY - #endif - #ifndef INDEX_HOLDING_TIME - #define INDEX_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME - #endif - #ifndef INDEX_STREAK_DECAY - #define INDEX_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY - #endif - #ifndef PLAIN_HOLDING_TIME - #define PLAIN_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME - #endif - #ifndef PLAIN_STREAK_DECAY - #define PLAIN_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY - #endif - #ifndef SPACE_HOLDING_TIME - #define SPACE_HOLDING_TIME DIFFICULTY_LEVEL_HOLDING_TIME - #endif - #ifndef SPACE_STREAK_DECAY - #define SPACE_STREAK_DECAY DIFFICULTY_LEVEL_STREAK_DECAY + // You can disable this setting by omitting it or assigning a `0` zero, + // in which case it will default to my personal set of time thresholds. + // + // #define DIFFICULTY_LEVEL 0 // sunaku (150ms) + // + // No matter what difficulty level you choose, you can always override + // any settings in this keymap at the beginning of this configuration. + // + #ifdef DIFFICULTY_LEVEL + #if DIFFICULTY_LEVEL > 0 && DIFFICULTY_LEVEL < 6 + #ifndef TAPPING_RESOLUTION + #define TAPPING_RESOLUTION ((6 - DIFFICULTY_LEVEL) * 100) + #endif + #endif #endif + + // + // TAPPING_RESOLUTION specifies the maximum speed at which the keyboard + // confuses your taps as being holds when you type on home row mod keys. + // When you lower this value, the same confusion should still occur; but + // when you raise this value, you should be able to type normally again. + // + #ifndef TAPPING_RESOLUTION + #define TAPPING_RESOLUTION 150 #endif // @@ -1110,19 +1105,22 @@ behaviors { // (i.e. "register" them) for mod-click mouse usage (e.g. Ctrl-Click). // #ifndef HOMEY_HOLDING_TIME - #define HOMEY_HOLDING_TIME 240 + #define HOMEY_HOLDING_TIME (TAPPING_RESOLUTION + 90) #endif #ifndef INDEX_HOLDING_TIME - #define INDEX_HOLDING_TIME 170 + #define INDEX_HOLDING_TIME (TAPPING_RESOLUTION + 20) #endif #ifndef MIDDY_HOLDING_TIME - #define MIDDY_HOLDING_TIME 200 + #define MIDDY_HOLDING_TIME (TAPPING_RESOLUTION + 50) #endif #ifndef RING1_HOLDING_TIME - #define RING1_HOLDING_TIME 230 + #define RING1_HOLDING_TIME (TAPPING_RESOLUTION + 80) + #endif + #ifndef RING2_HOLDING_TIME + #define RING2_HOLDING_TIME RING1_HOLDING_TIME #endif #ifndef PINKY_HOLDING_TIME - #define PINKY_HOLDING_TIME 260 + #define PINKY_HOLDING_TIME (TAPPING_RESOLUTION + 110) #endif // @@ -1131,7 +1129,7 @@ behaviors { // unintended activation of home row mods when you're actively typing. // #ifndef HOMEY_STREAK_DECAY - #define HOMEY_STREAK_DECAY 150 + #define HOMEY_STREAK_DECAY TAPPING_RESOLUTION #endif // @@ -1139,7 +1137,7 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // #ifndef HOMEY_REPEAT_DECAY - #define HOMEY_REPEAT_DECAY 300 + #define HOMEY_REPEAT_DECAY (TAPPING_RESOLUTION + 150) #endif // "tap then hold" for key auto-repeat // @@ -1157,7 +1155,7 @@ behaviors { // This is specifically for secondary keypresses in multi-mod chords. // #ifndef CHORD_HOLDING_TIME - #define CHORD_HOLDING_TIME 100 + #define CHORD_HOLDING_TIME (TAPPING_RESOLUTION - 50) #endif // @@ -1193,22 +1191,13 @@ behaviors { #define INDEX_HOLDING_TYPE "tap-preferred" #endif - // - // INDEX_HOLDING_TIME defines how long you need to hold (milliseconds) - // index finger keys in order to send their modifiers to the computer - // (i.e. "register" them) for mod-click mouse usage (e.g. Shift-Click). - // - #ifndef INDEX_HOLDING_TIME - #define INDEX_HOLDING_TIME 170 - #endif - // // INDEX_STREAK_DECAY defines how long you need to wait (milliseconds) // after typing before you can use home row mods again. It prevents // unintended activation of home row mods when you're actively typing. // #ifndef INDEX_STREAK_DECAY - #define INDEX_STREAK_DECAY 100 + #define INDEX_STREAK_DECAY (TAPPING_RESOLUTION - 50) #endif // @@ -1216,7 +1205,7 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // #ifndef INDEX_REPEAT_DECAY - #define INDEX_REPEAT_DECAY 300 + #define INDEX_REPEAT_DECAY (TAPPING_RESOLUTION + 150) #endif // "tap then hold" for key auto-repeat // @@ -1239,7 +1228,7 @@ behaviors { // (i.e. "register" them) for mod-click mouse usage (e.g. Shift-Click). // #ifndef PLAIN_HOLDING_TIME - #define PLAIN_HOLDING_TIME 200 + #define PLAIN_HOLDING_TIME (TAPPING_RESOLUTION + 50) #endif // @@ -1256,7 +1245,7 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // #ifndef PLAIN_REPEAT_DECAY - #define PLAIN_REPEAT_DECAY 300 + #define PLAIN_REPEAT_DECAY (TAPPING_RESOLUTION + 150) #endif // "tap then hold" for key auto-repeat // @@ -1276,7 +1265,7 @@ behaviors { // a thumb key to activate a layer. Shorter holds are treated as taps. // #ifndef THUMB_HOLDING_TIME - #define THUMB_HOLDING_TIME 200 + #define THUMB_HOLDING_TIME (TAPPING_RESOLUTION + 50) #endif // @@ -1284,7 +1273,7 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // #ifndef THUMB_REPEAT_DECAY - #define THUMB_REPEAT_DECAY 300 + #define THUMB_REPEAT_DECAY (TAPPING_RESOLUTION + 150) #endif // "tap then hold" for key auto-repeat // @@ -1312,7 +1301,7 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // #ifndef SPACE_REPEAT_DECAY - #define SPACE_REPEAT_DECAY 150 + #define SPACE_REPEAT_DECAY TAPPING_RESOLUTION #endif // diff --git a/keymap.dtsi.erb b/keymap.dtsi.erb index 07532f4..6fcdb90 100644 --- a/keymap.dtsi.erb +++ b/keymap.dtsi.erb @@ -321,26 +321,48 @@ behaviors { // // DIFFICULTY_LEVEL specifies your level of expertise with this keymap. // It's meant to help newcomers gradually work their way up to mastery. - // You can disable this setting by omitting it or assigning a `0` zero. // - // #define DIFFICULTY_LEVEL 0 // custom (see defaults below) // #define DIFFICULTY_LEVEL 1 // novice (500ms) // #define DIFFICULTY_LEVEL 2 // slower (400ms) // #define DIFFICULTY_LEVEL 3 // normal (300ms) // #define DIFFICULTY_LEVEL 4 // faster (200ms) // #define DIFFICULTY_LEVEL 5 // expert (100ms) // - #if defined(DIFFICULTY_LEVEL) && DIFFICULTY_LEVEL > 0 - #define DIFFICULTY_LEVEL_HOLDING_TIME ((6 - DIFFICULTY_LEVEL) * 100) - #define DIFFICULTY_LEVEL_STREAK_DECAY (((6 - DIFFICULTY_LEVEL) * 50) + 100) + // You can disable this setting by omitting it or assigning a `0` zero, + // in which case it will default to my personal set of time thresholds. + // + // #define DIFFICULTY_LEVEL 0 // sunaku (150ms) + // + // No matter what difficulty level you choose, you can always override + // any settings in this keymap at the beginning of this configuration. + // + #ifdef DIFFICULTY_LEVEL + #if DIFFICULTY_LEVEL > 0 && DIFFICULTY_LEVEL < 6 + #ifndef TAPPING_RESOLUTION + #define TAPPING_RESOLUTION ((6 - DIFFICULTY_LEVEL) * 100) + #endif + #endif + #endif + + // + // TAPPING_RESOLUTION specifies the maximum speed at which the keyboard + // confuses your taps as being holds when you type on home row mod keys. + // When you lower this value, the same confusion should still occur; but + // when you raise this value, you should be able to type normally again. + // <% - %w[ HOMEY INDEX PLAIN SPACE ].each do |category| - %w[ HOLDING_TIME STREAK_DECAY ].each do |setting| - emit_setting_ifndef.("#{category}_#{setting}", "DIFFICULTY_LEVEL_#{setting}") + TAPPING_RESOLUTION = 150 # my personal threshold on Kailh Choc v1 Reds + emit_setting_ifndef.(:TAPPING_RESOLUTION, TAPPING_RESOLUTION) + + resolve_tap_timing = lambda do |milliseconds| + delta = milliseconds - TAPPING_RESOLUTION + if delta == 0 + "TAPPING_RESOLUTION" + else + "(TAPPING_RESOLUTION #{delta > 0 ? "+ #{delta}" : "- #{-delta}"})" end end %> - #endif // // ENFORCE_BILATERAL cancels out single-handed home row mods activation by @@ -409,11 +431,18 @@ behaviors { // (i.e. "register" them) for mod-click mouse usage (e.g. Ctrl-Click). // <% - emit_setting_ifndef.(:HOMEY_HOLDING_TIME, 240) # TAPPING_TERM + ALLOW_CROSSOVER_AFTER - emit_setting_ifndef.(:INDEX_HOLDING_TIME, 170) # base - emit_setting_ifndef.(:MIDDY_HOLDING_TIME, 200) # + 30 - emit_setting_ifndef.(:RING1_HOLDING_TIME, 230) # + 30 - emit_setting_ifndef.(:PINKY_HOLDING_TIME, 260) # + 30 + emit_setting_ifndef.(:HOMEY_HOLDING_TIME, resolve_tap_timing.(240)) + + INDEX_HOLDING_TIME = TAPPING_RESOLUTION + 20 # 170ms + MIDDY_HOLDING_TIME = INDEX_HOLDING_TIME + 30 # 200ms + RING1_HOLDING_TIME = MIDDY_HOLDING_TIME + 30 # 230ms + PINKY_HOLDING_TIME = RING1_HOLDING_TIME + 30 # 260ms + + emit_setting_ifndef.(:INDEX_HOLDING_TIME, resolve_tap_timing.(INDEX_HOLDING_TIME)) + emit_setting_ifndef.(:MIDDY_HOLDING_TIME, resolve_tap_timing.(MIDDY_HOLDING_TIME)) + emit_setting_ifndef.(:RING1_HOLDING_TIME, resolve_tap_timing.(RING1_HOLDING_TIME)) + emit_setting_ifndef.(:RING2_HOLDING_TIME, :RING1_HOLDING_TIME) + emit_setting_ifndef.(:PINKY_HOLDING_TIME, resolve_tap_timing.(PINKY_HOLDING_TIME)) %> // @@ -422,7 +451,7 @@ behaviors { // unintended activation of home row mods when you're actively typing. // <% - emit_setting_ifndef.(:HOMEY_STREAK_DECAY, 150) + emit_setting_ifndef.(:HOMEY_STREAK_DECAY, resolve_tap_timing.(150)) %> // @@ -430,7 +459,7 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // <% - emit_setting_ifndef.(:HOMEY_REPEAT_DECAY, 300) + emit_setting_ifndef.(:HOMEY_REPEAT_DECAY, resolve_tap_timing.(300)) %> // "tap then hold" for key auto-repeat // @@ -448,7 +477,7 @@ behaviors { // This is specifically for secondary keypresses in multi-mod chords. // <% - emit_setting_ifndef.(:CHORD_HOLDING_TIME, 100) + emit_setting_ifndef.(:CHORD_HOLDING_TIME, resolve_tap_timing.(100)) %> // @@ -484,22 +513,13 @@ behaviors { emit_setting_ifndef.(:INDEX_HOLDING_TYPE, '"tap-preferred"') %> - // - // INDEX_HOLDING_TIME defines how long you need to hold (milliseconds) - // index finger keys in order to send their modifiers to the computer - // (i.e. "register" them) for mod-click mouse usage (e.g. Shift-Click). - // - <% - emit_setting_ifndef.(:INDEX_HOLDING_TIME, 170) - %> - // // INDEX_STREAK_DECAY defines how long you need to wait (milliseconds) // after typing before you can use home row mods again. It prevents // unintended activation of home row mods when you're actively typing. // <% - emit_setting_ifndef.(:INDEX_STREAK_DECAY, 100) + emit_setting_ifndef.(:INDEX_STREAK_DECAY, resolve_tap_timing.(100)) %> // @@ -507,8 +527,8 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // <% - emit_setting_ifndef.(:INDEX_REPEAT_DECAY, 300) - %> // "tap then hold" for key auto-repeat + emit_setting_ifndef.(:INDEX_REPEAT_DECAY, resolve_tap_timing.(300)) + %> // "tap then hold" for key auto-repeat // // PLAIN_HOLDING_TYPE defines the flavor of ZMK hold-tap behavior to use @@ -530,7 +550,7 @@ behaviors { // (i.e. "register" them) for mod-click mouse usage (e.g. Shift-Click). // <% - emit_setting_ifndef.(:PLAIN_HOLDING_TIME, 200) + emit_setting_ifndef.(:PLAIN_HOLDING_TIME, resolve_tap_timing.(200)) %> // @@ -547,7 +567,7 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // <% - emit_setting_ifndef.(:PLAIN_REPEAT_DECAY, 300) + emit_setting_ifndef.(:PLAIN_REPEAT_DECAY, resolve_tap_timing.(300)) %> // "tap then hold" for key auto-repeat // @@ -567,7 +587,7 @@ behaviors { // a thumb key to activate a layer. Shorter holds are treated as taps. // <% - emit_setting_ifndef.(:THUMB_HOLDING_TIME, 200) + emit_setting_ifndef.(:THUMB_HOLDING_TIME, resolve_tap_timing.(200)) %> // @@ -575,7 +595,7 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // <% - emit_setting_ifndef.(:THUMB_REPEAT_DECAY, 300) + emit_setting_ifndef.(:THUMB_REPEAT_DECAY, resolve_tap_timing.(300)) %> // "tap then hold" for key auto-repeat // @@ -603,7 +623,7 @@ behaviors { // after tapping a key to hold it again in order to make it auto-repeat. // <% - emit_setting_ifndef.(:SPACE_REPEAT_DECAY, 150) + emit_setting_ifndef.(:SPACE_REPEAT_DECAY, resolve_tap_timing.(150)) %> //