# CCT

Note: An up to date version of this file can be found here.

## Help!

### Table of Contents

Frequently Asked Questions
Getting it running
Setting up the Stackmat
How the statistics work
User Interface
Sunday Contest
What does UMTS stand for? (connecting to a server)
How do I customize my settings?
Release history
I found a bug, help!

### FAQs

Q: Why does it say: "The jar file "CALCubeTimer.jar" couldn't be launched. Check the Console for possible error messages" or "The main class could not be found"?
A: See this.

Q: Does this program run on Mac OS X?
A: Yes, but not without a little work, see this.

Q: When using the keyboard, the program behaves as if I am starting and stopping the timer over and over again, giving me a bunch of 0.01 second times.
A: This is a known issue with X in Linux. This problem should be solved in version 0.2. One temporary workaround is to disable key repeat using the command "xset -r".

Q: How do I start the server?
A: If you are using Internet Explorer, the file may have downloaded as CCTServer.zip. First change the extension to CCTServer.jar. Then, from the command line, cd into the folder you downloaded the jar to, and type "java -jar CCTServer.jar [password]".

Q: How do I get my Stackmat to work?
Under File > Configuration > Stackmat Settings, make sure the correct mixer is chosen. If necessary, read this and this.

Q: When I plug my Stackmat in, CCT displays 15:165:165!
A: This means that your soundcard is inverting the signal, or part of the signal is not being read correctly. Go to File > Configuration > Stackmat Settings and experiment with checking the three boxes. Most people have either all of them checked or none of them checked, however, it is possible that you may need some other combination of the three.

Q: What is the stackmat value?
A: This value is the key to how we convert the Stackmat signal into the corresponding numerical time. We interpret the signal as a sound wave, and it comes in looking something like this:
We need to discretize these peaks and troughs into 1's and 0's. This should be pretty easy to conceptualize, but the programming is tricky because these peaks and troughs are not at all uniform. The "stackmat value" is a value we use to chop off the peaks and troughs and convert the signal to ones and zeroes.
So it would make sense that if the value is too high, no peaks or valleys will be detected, and the program will see nothing but zeroes.
However, If the value is too low, noise will be introduced when it shouldn't be. This is due in part to the fact that the tops of the peaks are not flat.
We've found that a value around 50 will work on most computers, but some tweaking may be necessary to achieve the best performance with your specific setup. Don't be afraid to change this value! We have seen stackmat values from 29 up to 70. Some people have reported values as low as 1 to 7.
A way to find your value is to find a value for which the timer changes times when it is being run. If the times do not update as frequently as it should, then your value is too high. If the times sometimes show very large times over 10 minutes, then your value is probably too low.
A way to make sure that your value will work is if you run the timer with one hand on one of the pads.

Q: what's a calcube timer?
A: urghh....

### Java 1.6

You need the latest version of Java (SE 6) to run CCT. Here's what you need to do to get the right version for your OS.

- Windows and Linux users can find Java SE 6 here. You want the Java Runtime Environment (JRE) 6.

- Macs however, are a little more complicated. For some reason, Apple is developing SE 6 as opposed to Sun. To get Java 6 for OSX, you need to go here and click on Java SE 6.0 Release 1 Developer Preview 6. You'll have to sign up, and then you can download Apple's latest version. It has been tested, and seems to work fine.
  To verify that the installation was a success, go to the top right of your screen, and click on the search button. Type "terminal" and open it. Once there, type "java -version" and press enter. You should get a result similar to this:
  java version "1.6.0-dp"
  Java(TM) SE Runtime Environment (build 1.6.0-dp-b88-34)
  Java HotSpot(TM) Client VM (build 1.6.0-b88-17-release, mixed mode, sharing)
  If it still says 1.5, then go to Finder > Applications > Utilities > Java > Java SE 6 > Preferences. Then in the Java launcher pane, drag Java 6 to the top of the list. Thanks to Joey Gouly for this fix!

### Stackmat Support

Hopefully, you are pretty excited about pluging your stackmat into your computer (we were!) Here's what you need to get it working:

- 1 2.5mm to 3.5mm stereo plug adapter ~$2-3
- 1 male to male stereo cable ~$5

You should be able to get these from a local electronics shop, or online. Here's a picture of our setup.

### Rolling Averages

CCT provides you with complete control over times. If you accidentally enter an incorrect time, you can discard it, or simply change it to whatever you meant for it. All these features can be accessed by right clicking on the time in question. Furthermore, you can scroll through all the scrambles you've imported or done.

CCT does some automatic highlighting of your times according to two categories. Times in the current average recieve one color, while times in the best rolling average get another. These colors are fully configurable, as is the color for any overlapping between the two.

Under File > Configuration > Options, you can even specify the length of your rolling average.

Finally, the details for Session Averages and Rolling/Current Averages can be configured under File > Configuration, where there is a simple syntax for gettting just what you want out of CCT.

### User Interface

There are many new user interface options in CCT v0.2. Most of these are related to the keyboard timer. These options can be accessed in the View menu.

- The first of these options is Integrate Timer and Display. What this does is convert the display (0:00) to the button that starts and stops the timer.
- If the "integrate" option is selected, then the "Annoying status light" will convert the entire display into a status color which tells you the status of the button. If the status is green, then the button is held down and ready to start/stop. If the button is red, then the button is focused but no key is pressed. If the button is gray, then the button is not focused. This color behavior is by default the same as the start timer button (either integrated or not).
- The less annoying status light behaves differently than the start timer color. This light will be green if the button is focused, signalling that it is okay to start. It is red if the button is not focused.
- The "hide scrambles when timer not focused" option will change the color of the scrambles so that if the button is not focused, it is difficult to read the scrambles.
- Now it is possible to select the length of the scramble with the spinner next to the scramble type.
- The scramble number is next to the scramble length. This is used to control which scramble you are on. One possible use is the following: Let's say you are in the middle of Sunday Contest and you have imported the scrambles. You are on the 6th scramble, and the stackmat accepts a fake time. You finish your solve and discard your fake time. CCT now believes you just finished the 7th solve and displays the 8th scramble. To fix this problem, all you need to do is rewind one scramble to the 7th and you don't lose your 7th scramble.
- A new option for scrambles is the multi-slice option. This affects nxnxn cubes where n >= 4. If multi-slice is enabled (which is the default), then "r" means turn the outer 2 layers. If multi-slice is disabled, then "r" means turn only the inside slice.

### Sunday Contest

Not only is there support for importing scrambles from file, there is an option to import times from url. This is perfect for a situation such as the Sunday Contest.

In addition, CCT allows you to setup your email (SMTP) server, to allow emailing of times. With this feature, you can do the entire Sunday Contest without even leaving CCT!

This may not work if your ISP blocks port 25.

There might be some bugs for emailing, so copy your times down before attempting to use the email feature.

### UMTS

UMTS stands for Ultimate Multiple Timer Support. There is a server which you can start up and multiple people can connect to remotely. You can see everybody's times, and people can choose to have the same scrambles. In addition, if you have multiple soundcards (usb or otherwise) then you can start up multiple instances of CCT and run them all with different stackmats on the same computer!

When connected to a server, type in "/help" for an explanation of the commands available.

By typing "/#", where # is a number between 2 and 5 (inclusive), a client can request scrambles from a server. This feature is new in CCTServer v0.2.

Under File > Configuration > Options (cont.), there is an option to enable flashing of the chat window when a message is recieved. This causes your window's title to flicker between caps and lowercase until you check the window.

The server can be downloaded as an additional executable jar file.

### Configuration

For version 0.2 of CCT, we overhauled the configuration system to make use of Java's properties files. As a result, configuration files from CCT v0.1 will not function with CCT v0.2. One of the advantages of the new system is that settings are now stored in plaintext, meaning that you can edit the "cct.properties" file with your favorite text editor. The format of the file is very simple, each setting is on its own line, with a setting name followed by its value. See the defaults.properties file for a description of each setting. There is no need to edit the defaults.properties file, just edit cct.properties, as those settings take precedence over that defaults. If at any point you mess up your cct.properties file, you can just delete it, and the defaults will be restored.

### Release History:

April 15, 2007 - Version 0.1

- Lots of configuration options! Just about every stupid feature we added can be disabled.
- Fullscreen support turns your monitor into a big stackmat display.
- Choose your own watermark.
- Choose the font of your scrambles.
- Choose to have times displayed in raw seconds or a clock (hour:minute:second) format
- Support for big cube scrambles and viewing. Megaminx scrambles too! Color schemes are fully configurable.
- Splits are another cool feature we added. When using your stackmat, if you tap one side of the timer, then the time of that split will get added to the list. There are also configuration options to use a specific key on the keyboard instead, if you aren't using a stackmat.

June 25, 2007 - Version 0.2

- Various bugs addressed
- GUI overhaul
- Configuration overhaul
- Scramble options added, including support for cubes up to 11x11x11

### Bugs and Feature Requests

Please email us at cubetimer@gmail.com for any bugs you encounter or features you feel should be implemented.

Last updated 25 June 2007.