• Welcome to SpeedSolving.com — the world’s largest puzzle community!

    You’re currently browsing as a guest, which means you have limited access to discussions, resources, member profiles, and community features.

    Join 50,000+ cubers and puzzle enthusiasts from around the world to ask questions, share solves, improve faster, and be part of the community.

    Registration is free, fast, and easy — create your account today.

    Already a member? Log in here to hide this message and start participating.

Prisma Puzzle Timer

Really nice program. A couple of features I'd like to see:

Set off a timer thread when the timer stops for 2 or 3 (configurable seconds), that suppresses additional stop/starts. I find sometimes I double tap, then get congratulated on the 0.61 second solve for a 4x4 that I need to delete.

I think it would be also useful to be able to configure and select which instance of a puzzle you are using. I understand this can be done by configuring more puzzles, but it isn't quite the same. Would be very useful in working out exactly which cube is fastest for you.
 
Square-1 random state scrambler

WOOHOO! That would be the world's first. Well, third. But the first practical one, assuming you did it right.

Looking here, I don't see a while loop nor a shape probability distribution table, and I can't really figure out how the pieces go into the shape for getRandomState().
Have you read this thread?
 
I've been running this from eclipse. With the latest updates I needed to insert the following to the top of puzzletimer0.4.sql.

DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'SKEWB';
DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'FLOPPY-CUBE';
DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'TOWER-CUBE';
DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'RUBIKS-TOWER';
DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'RUBIKS-DOMINO';

DELETE FROM COLOR WHERE PUZZLE_ID = 'SKEWB';
DELETE FROM COLOR WHERE PUZZLE_ID = 'FLOPPY-CUBE';
DELETE FROM COLOR WHERE PUZZLE_ID = 'TOWER-CUBE';
DELETE FROM COLOR WHERE PUZZLE_ID = 'RUBIKS-TOWER';
DELETE FROM COLOR WHERE PUZZLE_ID = 'RUBIKS-DOMINO';

DELETE FROM PUZZLE WHERE PUZZLE_ID = 'SKEWB';
DELETE FROM PUZZLE WHERE PUZZLE_ID = 'FLOPPY-CUBE';
DELETE FROM PUZZLE WHERE PUZZLE_ID = 'TOWER-CUBE';
DELETE FROM PUZZLE WHERE PUZZLE_ID = 'RUBIKS-TOWER';
DELETE FROM PUZZLE WHERE PUZZLE_ID = 'RUBIKS-DOMINO';

DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = '2x2x2-CUBE-URF';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = '2x2x2-CUBE-SUBOPTIMAL-URF';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-CUBE-LU';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-CUBE-RU';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-CUBE-3OP-ORIENTATION-TRAINING';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-CUBE-3OP-PERMUTATION-TRAINING';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'PYRAMINX-SUBOPTIMAL-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'SQUARE-1-CUBE-SHAPE';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'SKEWB-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'SKEWB-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'FLOPPY-CUBE-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'FLOPPY-CUBE-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'TOWER-CUBE-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'TOWER-CUBE-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-TOWER-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-TOWER-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-DOMINO-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-DOMINO-RANDOM';
 
WOOHOO! That would be the world's first. Well, third. But the first practical one, assuming you did it right.

Looking here, I don't see a while loop nor a shape probability distribution table, and I can't really figure out how the pieces go into the shape for getRandomState().
Have you read this thread?

Yes, I read it.

I'll try to explain how the solver works.

It's a two phase solver as described by Jaap on his Square-1 webpage. The first phase brings the puzzle to cube shape with an even permutation of pieces. The second phase solves the puzzle using only moves that preserve cube shape ((3, 0); (6, 0); (-3, 0); (0, 3); (0, 6); (0, -3); (1, 0) / (-1, 0); (0, -1) / (0, 1)).

To guide the first phase IDA* search, two prune tables of size 19305 are used (one for even permutations and another for odd permutations). These tables are constructed using a simple BFS on the shape graph (always tracking permutation sign).

The seconds phase search is a boring move tables / prune tables / IDA*.

A random shape is choosen from a set constructed picking only the twistable shapes (there are 3678 of them). Then a random permutation of corners and edges is choosen and "applied" over the random shape.

Here is the distribution found:

1. 010110110111-010101011111 36/3678 = 0,009788
2. 010101010101-011111011111 5/3678 = 0,001359
3. 010110111111-010101010111 36/3678 = 0,009788
4. 010101010111-010110111111 36/3678 = 0,009788
5. 010101011111-010110110111 36/3678 = 0,009788
6. 010110111011-010111011011 24/3678 = 0,006525
7. 010111011011-010110111011 24/3678 = 0,006525
8. 010101010101-010111111111 8/3678 = 0,002175
9. 010101011111-010110111011 24/3678 = 0,006525
10. 010110111111-010101011011 24/3678 = 0,006525
11. 010111011011-010110110111 36/3678 = 0,009788
12. 010110111011-010111010111 16/3678 = 0,004350
13. 010111011011-010110101111 24/3678 = 0,006525
14. 010110101111-010101011111 24/3678 = 0,006525
15. 010101011111-010110101111 24/3678 = 0,006525
16. 011011011011-010110101111 8/3678 = 0,002175
17. 010110110111-010101111011 24/3678 = 0,006525
18. 010101110111-010110111011 24/3678 = 0,006525
19. 011110111111-010101010101 8/3678 = 0,002175
20. 010110101111-010101101111 16/3678 = 0,004350
21. 010101101111-010110101111 16/3678 = 0,004350
22. 010110110111-010101110111 36/3678 = 0,009788
23. 010101110111-010110110111 36/3678 = 0,009788
24. 010110110111-010101101111 24/3678 = 0,006525
25. 010110101111-010101110111 24/3678 = 0,006525
26. 010101110111-010110101111 24/3678 = 0,006525
27. 010101101111-010110110111 24/3678 = 0,006525
28. 010101010101-011011111111 8/3678 = 0,002175
29. 010110111011-011011011011 8/3678 = 0,002175
30. 011011011011-010110111011 8/3678 = 0,002175
31. 011011011011-010110110111 12/3678 = 0,003263
32. 010110101111-010101111011 16/3678 = 0,004350
33. 010101101111-010110111011 16/3678 = 0,004350
34. 010110111111-010101101011 12/3678 = 0,003263
35. 011111011111-010101010101 5/3678 = 0,001359
36. 010111010111-010101111011 16/3678 = 0,004350
37. 010101110111-010111011011 36/3678 = 0,009788
38. 010101010111-010111111011 36/3678 = 0,009788
39. 010111110111-010101011011 32/3678 = 0,008700
40. 010101111011-010101011111 24/3678 = 0,006525
41. 010101011011-010101111111 24/3678 = 0,006525
42. 011011110111-010101101011 12/3678 = 0,003263
43. 010111111111-010101010101 8/3678 = 0,002175
44. 010101010111-010111110111 48/3678 = 0,013051
45. 010111110111-010101010111 48/3678 = 0,013051
46. 010101110111-010111010111 24/3678 = 0,006525
47. 010111010111-010101110111 24/3678 = 0,006525
48. 011011011011-010111011011 12/3678 = 0,003263
49. 011011011111-010101010111 48/3678 = 0,013051
50. 010101010111-011011011111 48/3678 = 0,013051
51. 010111011011-011011011011 12/3678 = 0,003263
52. 010111010111-010101101111 16/3678 = 0,004350
53. 010101101111-010111010111 16/3678 = 0,004350
54. 010111101111-010101010111 36/3678 = 0,009788
55. 010101010111-010111101111 36/3678 = 0,009788
56. 010111101111-010101011011 24/3678 = 0,006525
57. 010101101111-010111011011 24/3678 = 0,006525
58. 010111011111-010101101011 16/3678 = 0,004350
59. 011011011011-010111010111 8/3678 = 0,002175
60. 010101101011-011101110111 4/3678 = 0,001088
61. 011011011111-010101011011 32/3678 = 0,008700
62. 011011101111-010101101011 12/3678 = 0,003263
63. 010101011111-011011011011 12/3678 = 0,003263
64. 010101010111-011011101111 36/3678 = 0,009788
65. 011011101111-010101010111 36/3678 = 0,009788
66. 010101010101-011110111111 8/3678 = 0,002175
67. 010101010111-010111011111 48/3678 = 0,013051
68. 010111010111-010101011111 24/3678 = 0,006525
69. 010101011111-010111010111 24/3678 = 0,006525
70. 010111011111-010101010111 48/3678 = 0,013051
71. 010111011011-010111011011 36/3678 = 0,009788
72. 010110111011-010110111011 16/3678 = 0,004350
73. 010101111011-010101111011 16/3678 = 0,004350
74. 011011011011-011011011011 4/3678 = 0,001088
75. 010111101111-010101101011 12/3678 = 0,003263
76. 010111011111-010101011011 32/3678 = 0,008700
77. 010101011111-010111011011 36/3678 = 0,009788
78. 010111011011-010111010111 24/3678 = 0,006525
79. 010110111011-010110110111 24/3678 = 0,006525
80. 010101111011-010101110111 24/3678 = 0,006525
81. 010101101111-011011011011 8/3678 = 0,002175
82. 011011011111-010101101011 16/3678 = 0,004350
83. 011011101111-010101011011 24/3678 = 0,006525
84. 010101011011-011101110111 8/3678 = 0,002175
85. 010110111011-010110101111 16/3678 = 0,004350
86. 010101101011-010101111111 12/3678 = 0,003263
87. 010101111011-010101101111 16/3678 = 0,004350
88. 011011111111-010101010101 8/3678 = 0,002175
89. 010111110111-010101101011 16/3678 = 0,004350
90. 010101110111-011011011011 12/3678 = 0,003263
91. 011011110111-010101011011 24/3678 = 0,006525
92. 010101010111-011011110111 36/3678 = 0,009788
93. 011011110111-010101010111 36/3678 = 0,009788
94. 010111010111-010110110111 24/3678 = 0,006525
95. 010110110111-010111010111 24/3678 = 0,006525
96. 010101011011-010110111111 24/3678 = 0,006525
97. 010110111011-010101011111 24/3678 = 0,006525
98. 010110110111-010111011011 36/3678 = 0,009788
99. 010111010111-010110111011 16/3678 = 0,004350
100. 010110101111-010111011011 24/3678 = 0,006525
101. 010110101111-010111010111 16/3678 = 0,004350
102. 010111010111-010110101111 16/3678 = 0,004350
103. 010110101111-011011011011 8/3678 = 0,002175
104. 010101111011-010110110111 24/3678 = 0,006525
105. 010110111011-010101110111 24/3678 = 0,006525
106. 010101111011-010110111011 16/3678 = 0,004350
107. 010110111011-010101111011 16/3678 = 0,004350
108. 010101010101-011101111111 8/3678 = 0,002175
109. 010110110111-011011011011 12/3678 = 0,003263
110. 010101111011-010110101111 16/3678 = 0,004350
111. 010110111011-010101101111 16/3678 = 0,004350
112. 010101101011-010110111111 12/3678 = 0,003263
113. 010101111011-010111010111 16/3678 = 0,004350
114. 010111011011-010101110111 36/3678 = 0,009788
115. 010111111011-010101010111 36/3678 = 0,009788
116. 010101011011-010111110111 32/3678 = 0,008700
117. 010101011111-010101111011 24/3678 = 0,006525
118. 010101111111-010101011011 24/3678 = 0,006525
119. 010101101011-011011110111 12/3678 = 0,003263
120. 010111011011-010101111011 24/3678 = 0,006525
121. 010101111011-010111011011 24/3678 = 0,006525
122. 010101011011-010111111011 24/3678 = 0,006525
123. 010111111011-010101011011 24/3678 = 0,006525
124. 010101010111-010101111111 36/3678 = 0,009788
125. 010101111111-010101010111 36/3678 = 0,009788
126. 010101011111-010101110111 36/3678 = 0,009788
127. 010101110111-010101011111 36/3678 = 0,009788
128. 010101101111-010101011111 24/3678 = 0,006525
129. 010101011111-010101101111 24/3678 = 0,006525
130. 010101011011-010111101111 24/3678 = 0,006525
131. 010111011011-010101101111 24/3678 = 0,006525
132. 010101101011-010111011111 16/3678 = 0,004350
133. 011011011011-010101011111 12/3678 = 0,003263
134. 011101110111-010101101011 4/3678 = 0,001088
135. 010101011011-011011011111 32/3678 = 0,008700
136. 010101101011-011011101111 12/3678 = 0,003263
137. 010111010111-011011011011 8/3678 = 0,002175
138. 011101110111-010101010111 12/3678 = 0,003263
139. 010101010111-011101110111 12/3678 = 0,003263
140. 010110101111-010110101111 16/3678 = 0,004350
141. 010101110111-010101110111 36/3678 = 0,009788
142. 010111010111-010111010111 16/3678 = 0,004350
143. 010110110111-010110110111 36/3678 = 0,009788
144. 010101101111-010101101111 16/3678 = 0,004350
145. 010101011111-010101011111 36/3678 = 0,009788
146. 010101101011-010111101111 12/3678 = 0,003263
147. 010111011011-010101011111 36/3678 = 0,009788
148. 010101011011-010111011111 32/3678 = 0,008700
149. 010111010111-010111011011 24/3678 = 0,006525
150. 010110110111-010110111011 24/3678 = 0,006525
151. 010101110111-010101111011 24/3678 = 0,006525
152. 011101111111-010101010101 8/3678 = 0,002175
153. 011101110111-010101011011 8/3678 = 0,002175
154. 010101101011-011011011111 16/3678 = 0,004350
155. 010101011011-011011101111 24/3678 = 0,006525
156. 011011011011-010101101111 8/3678 = 0,002175
157. 010110101111-010110111011 16/3678 = 0,004350
158. 010101111111-010101101011 12/3678 = 0,003263
159. 010101101111-010101111011 16/3678 = 0,004350
160. 010101101011-010111110111 16/3678 = 0,004350
161. 010101011011-011011110111 24/3678 = 0,006525
162. 011011011011-010101110111 12/3678 = 0,003263
163. 010101111011-011011011011 8/3678 = 0,002175
164. 011011011011-010101111011 8/3678 = 0,002175
165. 010110110111-010110101111 24/3678 = 0,006525
166. 010110101111-010110110111 24/3678 = 0,006525
167. 010101110111-010101101111 24/3678 = 0,006525
168. 010101101111-010101110111 24/3678 = 0,006525
169. 010111111011-010101101011 12/3678 = 0,003263
170. 010101101011-010111111011 12/3678 = 0,003263

Edit: I'm aware of deepSubDiver's scrambler. Is there any other?
 
Last edited:
I've been running this from eclipse. With the latest updates I needed to insert the following to the top of puzzletimer0.4.sql.

DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'SKEWB';
DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'FLOPPY-CUBE';
DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'TOWER-CUBE';
DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'RUBIKS-TOWER';
DELETE FROM SCRAMBLER WHERE PUZZLE_ID = 'RUBIKS-DOMINO';

DELETE FROM COLOR WHERE PUZZLE_ID = 'SKEWB';
DELETE FROM COLOR WHERE PUZZLE_ID = 'FLOPPY-CUBE';
DELETE FROM COLOR WHERE PUZZLE_ID = 'TOWER-CUBE';
DELETE FROM COLOR WHERE PUZZLE_ID = 'RUBIKS-TOWER';
DELETE FROM COLOR WHERE PUZZLE_ID = 'RUBIKS-DOMINO';

DELETE FROM PUZZLE WHERE PUZZLE_ID = 'SKEWB';
DELETE FROM PUZZLE WHERE PUZZLE_ID = 'FLOPPY-CUBE';
DELETE FROM PUZZLE WHERE PUZZLE_ID = 'TOWER-CUBE';
DELETE FROM PUZZLE WHERE PUZZLE_ID = 'RUBIKS-TOWER';
DELETE FROM PUZZLE WHERE PUZZLE_ID = 'RUBIKS-DOMINO';

DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = '2x2x2-CUBE-URF';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = '2x2x2-CUBE-SUBOPTIMAL-URF';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-CUBE-LU';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-CUBE-RU';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-CUBE-3OP-ORIENTATION-TRAINING';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-CUBE-3OP-PERMUTATION-TRAINING';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'PYRAMINX-SUBOPTIMAL-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'SQUARE-1-CUBE-SHAPE';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'SKEWB-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'SKEWB-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'FLOPPY-CUBE-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'FLOPPY-CUBE-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'TOWER-CUBE-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'TOWER-CUBE-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-TOWER-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-TOWER-RANDOM';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-DOMINO-IMPORTER';
DELETE FROM SCRAMBLER WHERE SCRAMBLER_ID = 'RUBIKS-DOMINO-RANDOM';

You were using the development version, right? The update script assumes a v0.3(.1) database version.
 
Set off a timer thread when the timer stops for 2 or 3 (configurable seconds), that suppresses additional stop/starts. I find sometimes I double tap, then get congratulated on the 0.61 second solve for a 4x4 that I need to delete.

Done, but only 250ms. 0.61s is way too much time for a double tap.

I think it would be also useful to be able to configure and select which instance of a puzzle you are using. I understand this can be done by configuring more puzzles, but it isn't quite the same. Would be very useful in working out exactly which cube is fastest for you.

You can create one custom category for each one: "Rubik's cube - FII", "Rubik's cube - GuHong", "Rubik's cube - AV"...
 
My program runs fine but I can't seem to hook it up with my stackmat timer. Is there a tutorial? It lets me start times using a spacebar and stuff just not with my stackmat. Any ideas?

  1. Connect stackmat timer to sound card (mic or line in)
  2. Run "PuzzleTimer0.3.1.jar"
  3. Options -> Stackmat timer input device -> [Something like "microphone" or "line in"]
  4. Options -> Timer trigger -> Stackmat timer
 
Some more comments:


1)
If you didn't see the pads go fuzzy, it can be unclear from a glance whether the timer is ready. I tried replacing the pressed images with the following. It works quite well, though it's not as pretty as a consistent yellow. (I also tried giving the circles colored rims.)
leftPressed.png
leftPressed.png



2)
I use a Mac, and it would be nice to have an application icon and a dock icon when the application is running, so it's distinguishable from other Java programs. I'm tentatively using the following image for the file (so I know I'm launching the right one), but I haven't tried to get the dock to work. I did find com.apple.eawt.Application.setDockIconImage(java.awt.Image), though.
puzzletimer_cube.png



3)
Imported scrambles don't support moves like U2'.


4)
I think I have a good explanation of what is important for me about sessions. A session is when I sit down to do a few solves that belong to each other (for the purposes of statistics). It is simply the set of most recent solves beginning with a certain one. I don't care too much about past sessions right now.

- I don't care if my solves are just put into a long list in a database, but:
- It should be clear which statistics apply to my current session, and which ones, if any, overlap from the past. (You seem to show XX:XX.XX for N/A, so that's fine.)
- Ideally, I should be able to start a new session at any time, and there should be an option to resume the latest session on program restart (your program is stable, but programs get quit and computers fail for various reasons).
- For long-term statistics, I should be able to edit or delete past times that don't belong. (If I do a few spacebar taps to get scrambles and then close the program, it seems those times are permanently stored?)
 
Done, but only 250ms. 0.61s is way too much time for a double tap.

I like how you fixed the double-tap at the start, but ...

I was referring to the double-tap at the end of a solve, at the start isn't so much a problem for me. eg finish a solve with a double-tap A B, then realize a new timer is running so tap again with C. 0.61 is the B -> C duration.
 
1)
If you didn't see the pads go fuzzy, it can be unclear from a glance whether the timer is ready. I tried replacing the pressed images with the following. It works quite well, though it's not as pretty as a consistent yellow. (I also tried giving the circles colored rims.)
leftPressed.png
leftPressed.png

It should be a subtle effect; changing colors are distracting.

2)
I use a Mac, and it would be nice to have an application icon and a dock icon when the application is running, so it's distinguishable from other Java programs. I'm tentatively using the following image for the file (so I know I'm launching the right one), but I haven't tried to get the dock to work. I did find com.apple.eawt.Application.setDockIconImage(java.awt.Image), though.
puzzletimer_cube.png

I really don't want to include platform specific code in the codebase.

3)
Imported scrambles don't support moves like U2'.

Thanks. It's working now.

- It should be clear which statistics apply to my current session, and which ones, if any, overlap from the past. (You seem to show XX:XX.XX for N/A, so that's fine.)

The main window shows statistics related to the current session. I just changed the border label to "Session statistics" to make it clear.

The history window shows histogram/graph/statistics related to the selected solutions (no solution selected = all solutions selected). When you click on, say, "best average of 12" time label, the associated solutions are highlighted.

- Ideally, I should be able to start a new session at any time, and there should be an option to resume the latest session on program restart (your program is stable, but programs get quit and computers fail for various reasons).

You can start a new session selecting a category.

The current session could span runs of the program, but that would bring some problems. I'll think about it later.


- For long-term statistics, I should be able to edit or delete past times that don't belong. (If I do a few spacebar taps to get scrambles and then close the program, it seems those times are permanently stored?)

You can add/edit/delete any solution in the history window.
 
I like how you fixed the double-tap at the start, but ...

I was referring to the double-tap at the end of a solve, at the start isn't so much a problem for me. eg finish a solve with a double-tap A B, then realize a new timer is running so tap again with C. 0.61 is the B -> C duration.

Done. Thanks devoblue.
 
Back
Top