Video Preview
Preface
So, I made this program for a friend. It was some simple "Take this section of the screen and make it bigger on your other monitor" so he'd have a larger minimap. I had all this spare room, even in 4:3, so I put a timer there. Next thing you know, the program's all about timers, and the map is kind of a side-note.

As I am wont to do, I got carried away, and now the program can be almost entirely controlled vocally. There's a video below of that in action.

I'm really bad with UIs, so if you have any trouble using Chronokeeper, hopefully I can explain things about it now:

Here's a sample screenshot! I know that the timers don't necessarily reflect what's going on, because I googled the map picture. I don't even play LoL anymore, so... Yeah!

Details & Such
So, what's going on here? Well, there's a map. That's a pretty prominent looking thing for an aside feature, but the nice thing is that you can hide it! The program can (Or, at least should be able to) run in the background if you so desire. If you don't need a map (Lookin' at you, Ez.) then you can hide it, entering a compact mode which only shows timers. That's probably why you're here, anyway, so ON TO TIMERS.

If you lack a microphone, you don't need to use your voice. You can click the little icons that I hope are easy to read. Failing that, they are (in order of appearance from top to bottom): Baron, Dragon, Blue buff (Golems), Red buff (Lizards), Inhibitor, Ward.

The blue column, unsurprisingly, represents the blue team. Purple is, and you might want to be sitting down for this one... The purple team. I s'pose it could also be the red team, if you swing that way.

There are alarms for certain timers, but not all of them. I was told by a number of players that if the program had alarms for everything, it'd be going off too much. Therefore, here are the alarms that go off:
  • Baron spawning in 90s.
  • Baron spawning in 30s.
  • Baron spawned.
  • Dragon spawning in 45s.
  • Dragon spawned.
  • Blue is up.
  • Red is up.
  • Enemy blue is up.
  • Enemy red is up.
  • Enemy ward expired.
Using Chronokeeper
  • Hide border: If you want the program maximized, it looks a tad better without the border. You can press this button to make it go away. This'll make a close button appear, since the X'll be gone, and a show border button will show up as well. It looks a tad wonky in this mode, but that's because I'm a bad programmer.
  • Select your team: Click the radio button above the column that is your team colour. This is important, because the voice commands work by specifying your blue vs. the enemy blue. If you have the wrong column selected and say 'enemy', it'll go to the wrong spot!
  • Map refresh interval: This is really only relevant if you're using the expanded map thing. If your computer doesn't appreciate displaying a chunk of the screen all zoomed-in-like 20 times a second, you can set the delay to something higher. 1000 would update once per second, which is kind of useless, but hey, the option's there!
  • Magic Word: Due to the nature of voice-activated features, if the command is short, you're going to get misfires. "Start blue timer" can easily be set off by accident if you were to say, for example, "Fart poo climber". Now, I'm not going to judge you if you like to partake in the ascending of poo farts, but you might want to set a magic word in this case. It'll require you to say the word before the rest of the command. (eg: Excelsior, start blue timer!)
  • Cancel all timers: Cancels... Y'know... All the timers.
  • Voice commands: This just lists all the voice commands, in case you need to know how to chat up Chronokeeper.
  • Mic Input: You don't actually interact with this. It just shows you if your mic is being picked up.
  • Register PTT hotkey: Pops up a form for you to change the Push-to-talk key.
  • Push to Talk: When checked off, requires your PTT hotkey to be pressed for the program to hear you. When unchecked, program is constantly listening.
  • Hide map: Shrinks Chronokeeper down to a much more compact, mapless mode.
  • Remember this setup: Don't want to reconfigure a bunch of stuff every time you relaunch the program? Save it! By pressing this button! That's all, really.
  • Select map area: If you want to use the map, press this button, and click/drag a box to select a chunk of screen to monitor. This may, or may not, require playing in windowed/borderless mode. The selected area will be blurrily zoomed in on the left of the window. If you haven't selected a chunk of screen, there will instead be a clock-looking thing! Honestly, I'd probably just hide the map if you're not using it, but hey, it looks neat!
Advanced Stuff
I'd like to go into details regarding the settings file, but most probably won't have to look at it. Only reason you'd need to edit it is if you feel the need to change your voice commands, I think. Here's what the voice commands section looks like:

Everything that follows is a voice command. You may want
to tweak this if you don't like my choice of commands, or
if you consider typical 'American' speech to be an accent.
voice:removeLastTimer=remove last timer
voice:cancelAllTimers=cancel all timers
voice:hideMap=who needs a map
voice:showMap=i need a map
...

To change a command, simply replace the text after the equals sign to something else! For example:

Changing remove last timer to undo will change the voice command next time you launch the program. (I suppose this ought to be a feature of reload speech, but I imagine by the time I do that, you'll just be able to change the voice commands without messing around in settings.ini.)

(In 0.7.2, to change timer commands, you need to poke around in the currently messy LoL5v5.txt file. It's organized enough if you know what you're doing, but still not very elegant.)
Important Things!
Very important! If your Windows display language is not: English, French, German, Spanish, Chinese, Japanese: There seems to be a Microsoft-imposed language restriction. Only the previously mentioned languages support speech recognition. Until I find a good alternative, I'm sorry to say that the program simply WILL NOT WORK.

Also, this program requires Windows Vista or higher, as it uses Microsoft's Speech Recognition Engine. Sorry, XP users!

Understandably, a program popping up out of nowhere sparks some suspicion among the more security-focused people. To save you the effort, I've scanned the exe with Virustotal.


'Stable' build:

Download Chronokeeper
current version: v 0.7.8.1.0.0.0.1 (09/12/13)
[What's new?]
0.7.8.1.0.0.0.1 - Whoops, had a messed up settings.ini, making the program appear off the left of your screen. I feel silly. Fixed that!
0.7.8.1 - Stopped the "Listening" box from trying to display the key you are pressing if it's focused, added response to "cancel all timers" (Requires 'timersreset.wav' in audio folder), commented one line of code!
0.7.8 - Halved the CPU intensity of the map window, closing it no longer bogs down the program.
0.7.7 - Map moved to own window, layout modified to better accomodate customization.
0.7.6 - Just trying the shotgun approach now. One of these ought to work...
0.7.5 - Blah.
0.7.4 - Maybe a crash-on-startup fix?
0.7.3 - Config scripting user-friendly-ified. Options moved to settings form. Compact mode more compact. Can load timer configs at runtime.
0.7.2 - Customizable timers, made everything more modular, removed need to select a team, forgot the rest.
0.7.1 - Option added to disable PTT Beeps
0.7.0 - Push-To-Talk added! Also "Who needs a map?" and "I need a map" commands added
0.6.9 - Previous version was hogging the Z key. Fixed.
0.6.8 - Removed the half-functioning PTT code in 0.6.7 that broke speech
0.6.7 - Fixed the minimap error bug in 0.6.6
0.6.6 - Cancel all timers added (Voice command + Button), settings.ini saves on launch if version numbers don't match to add any missing stuff
0.6.5 - Fixed black buttons (Windows Classic theme), removed need for "Reload speech" button
0.6.4 - Minor layout fix, potentially re-broke grammar
0.6.3 - Solved a grammar-related error
0.6.2 - More attempted bugfixes, some layout fixes
0.6.1 - Attempted bug fixes or something, I forget
0.6.0 - Released, incomplete, loaded with bugs

Experimental build:

-No experimental build available-

Voice Packs
Special Thanks
I owe a ton to my friend Arisuki for providing her voice for the announcements. Chronokeeper would not have had nearly as impressive a launch without her help, not to mention making for a kickass default voice.

StephanosRex definitely deserves a big thanks for offering to do some unofficial LoL-character voice packs.

Thanks to everybody who's featured Chronokeeper on Youtube, etc:

Also, thanks to anybody who has taken the time to offer feedback. Positive or negative. It all helps me with knowing what the community wants.
Contact, etc.
If you have any questions, comments, et ceteras, you can get a hold of me at virus610@project610.com.

I haven't set up any sort of auto-updating thing, so you'll need to refer to this page for any updates, or subscribe to me on Youtube for big announcments.

Also, I don't much care for doing this, but I am unemployed, so if you feel like I've earned more than just a "Thank you" (Which is more than enough, I assure you), then you can buy my cat Bob and me some food by sending money here:
Design by Kuenaimaku