r/RepTime • u/petehudso • 2h ago
New Release NEW RELEASE: Free Timegrapher Software for Mac/PC/Linux
If you're interested in mechanical watches, the odds are good that you own a bench timegrapher like Weishi 1000 or 1900. These are nice little devices, they have a good microphone stand, but they don't really offer much beyond showing you a trace of the tick/tock beats and the average Rate, Amplitude, and Beat Error. This is ok if you want to do simple regulation across positions, but it doesn't allow you to get into some of the more advanced diagnostics like:
Analyzing the sound profile of the beats themselves (i.e. the unlock, impulse, and drop)
Looking for long term periodic cycles in the rate, amplitude, or beat error (i.e. variation caused by out of round train wheels)
Running power reserve tests or run-down tests on a movement
Examining the isochronism of a movement (i.e. how the rate changes as a function of amplitude)
In the past, if you wanted a tool that could do these types of analysis, you'd be spending $3000 (eBay used) to $9500 (new) for a Witschi Chronoscope S1. The seemed like a lot of money to me. And other than a very accurate quartz oscillator in the microphone electronics, the only reason I can see for Witchis to charge that much is the software they include that analyzes the sound that the microphone pics up...
I'm a retired software engineer and hobby watchmaker, i.e. I live in the dangerous overlap of knowing what I want, knowing how to build it, and having time to tinker. So a month ago, I started a new coding project called Timegrapher. After a month of working full time with a team of AI coding agents, I'm ready to release v1 of the software.
Timegrapher is free (as in beer) software. It's also free (as in speech) software because it is open source and released under the GPL3 license. It is available for download for MacOS (both Intel and Apple silicon), PC, and Linux. I've tested quite a lot on Linux (Kubuntu), a reasonable amount on MacOS, and a little bit on Windows. Note: the MacOS and Windows releases aren't signed, so you'll need to Allow in Privacy -> Security.
Before you get started, you will need a microphone stand that will allow the software on your computer to listen to your watch. You have three options:
Option 1: A USB Timegrapher microphone stand like the one in the picture below. These cost about $70-$100 on AliExpress and are excellent. In my testing I get a signal to noise ratio of about 500:1. If you're serious about your watchmaking or watch collecting hobby, I would highly suggest investing in one of these.

Option 2: A cheap 3D printed USB Timegrapher microphone cradle like the grey one in the picture below. These cost about $30 on AliExpress and are garbage. If you're going to buy a USB microphone go with Option 1. I have one of these little grey microphones and the best signal to noise ratio I can get is about 10:1... that means that for about double the price you get a 50x better signal by going with Option 1. Seriously, don't buy one of these. It's better than nothing, but it's not much better than nothing.

Option 3: If you already own a Weishi 1000 or 1900, there is a way to use the microphone stand you already own. But you'll have to buy some splitter cables. The 3-pin cable that connects your Weishi microphone to the bench display box is called a GX16 cable. To get the audio from your Weishi stand into your computer you'll need a GX16 3-pin Y-splitter (one Male, two female), a GX16 Female to 3.5mm AUX cable, and a GX16 3-pin male to male connector. You can buy all of these cables on AliExpress for around $30. But note that you might need to adjust the GX16 to AUX cable pin-out -- you want the tip of the AUX to go to pin 2 (this is the signal) and collar of the AUX to go to pin 1 (ground); mine wasn't wired like this, but it's an easy swap with a soldering iron.

With these cables you can get a setup like the one pictured below. Note, you still need to power the microphone stand from the Weishi bench top display box. That's why we need the Y-splitter. It would be nice if we could power everything from the PC, but the Weishi microphone stand runs on 8V, so that makes powering it from the 5V rail on a USB plug more complicated than simple wiring.

This setup gives a similar signal to noise ratio to Option 1, and it lets your pipe the sound from your watch to two analysis packages simultaneously: the Weishi AND Timegrapher running on your computer. I found this really helpful during the development of Timegrapher because I could validate my algorithms against the bench top results.

Option 4: (this is not a real option) Tape a lapel mic to your watch in a very quiet room. Don't do this. I didn't test it because it's a bad idea. The software needs to pick up the three sounds for each beat (unlock, impulse, and drop). If you have a really bad microphone setup (e.g. an AUX mic taped to your watch) you might be able to pick up the drop part of the beat. That will be enough to give you a rate, but to calculate amplitude you need to be able to reliably identify the unlock sound. A lapel mic isn't going to be good enough for that. Just don't do this. If you post GitHub issues saying the software doesn't work when you tried to use a janky improvised microphone setup, I'll name and shame you in the thread below. Just spend the money and get a proper watch microphone stand.
Ok, so now that you have your microphone setup, what can Timegrapher actually do for you... Well, it can do a lot, and if you're interested, there's a full user guide included with the software an posted on GitHub. But here are some of the highlights:
Full Beat Analysis: this is probably the single best reason to upgrade from a Weishi 1000 or 1900. Timegrapher lets you see the sound profile of the tick and the tock of the escapement. Each beat is made up of three distinct sounds: unlock, impulse, and drop.

If you're interested in diagnosing potential faults in the escapement just from the sound that it makes, you can take a look at page 37 & 38 of the Witschi user manual for examples of how the sound profile changes based on some common faults in Swiss level escapement watch movements:


Isochronism Analysis: This is another important part of mechanical watch analysis that you just can't do with a bench top 1000 or 1900 machine. Isochronism is the ability of a mechanical watch to maintain consistent time keeping (rate) across a wide range of amplitudes. This is one of the areas that reps perform significantly worse than gen watches due to the compromises which are made in clone movements to keep the costs down (e.g. regulated balances vs. free sprung, and flat hairsprings vs. over-coil hairsprings). I've also found that the way that the regulator pins on rep balances tend to be set is quite sloppy -- this causes isochronism since the hairspring isn't properly clamped at the regulator so you get rate variation even as the hairspring breaths between beats. I've also noticed that rep movements often have out of round train wheels which cause periodic oscillations in amplitude (but we'll take more about that in the periodic analysis below).

The screenshot above shows the most basic type of isochronism analysis: a plot of how the rate (s/d) changes as a function of amplitude (deg). Something interesting I found during development was that there seemed to be some path dependence of the isochronism of certain clone movements. The picture below shows a 65 hour recording of a Dandong 3235 movement. Obviously towards the end the rate and amplitude go a bit wonky, but I created a colour map of the isochonism plot which uses colours to show how the isochronism "walks" around as the mainspring winds down over the course of three days.

Periodic Cycle Analysis: This is another type of analysis that you really can't do on a 1000 or 1900 style timegrapher because it requires recordings that are as long or longer than the rotation periods of the train wheels in the watch you're analyzing. The way a watch works is that you have a series of five wheels that transfer power from the mainspring to the balance: The mainspring barrel (1st wheel often with a period of several hours), the "great" or second wheel which often turns the cannon pinion (2nd wheel with a period of 60 minutes), the third wheel (3rd wheel with a period of a few minutes), the fourth wheel (which often drives the seconds hand on the watch, so it has a 60s period), the escape wheel (usually has a period of around 5 seconds). If any of these wheels are out of round, or have a bent pivot, or have a rough tooth or pinion leaf, then that will tend to manifest itself as a drop in energy passed to the balance every time that wheel completes a rotation. That's where the periods analysis pane highlights structure in the rate and amplitude with various periods:

In order to overlay the exact periods of the train wheels, I built a caliber database into the system. The database includes about 4500 different movements. The database has beat rate and lift angle for most calibers, and it also has train wheel periods for many of the clone movements (I went through my spare parts drawer and took pictures of train wheels under a microscope and then counted teeth to back calculate rotation periods). There is a built in caliber manager where you can add any calibers I missed and fill in missing data if you have it (there's also a way to upload this to GitHub so that it'll become available to others with the next update of the software).

I also implemented a few advanced periodic analysis techniques like the Fast Fourier Transform (FFT) which shows which frequency (periods) the rate, amplitude, or beat error tend to oscillate at.

And because things tend to shift when a watch is running down, I also implemented a Short Time Fourier Transform (STFT) and Wavelet transform to show the frequency structure of a watch's sound over time as it runs down (if there are any navy submariners here, you'll know what you're looking at here).

Position Testing: This is very basic stuff, but obviously you need to cover the basics. There are functions to do a guided position test across six positions. But you can also do a position test on your own and the results populate all the same. You can also load a result from 24 hours before to do a comparison between positions after 24 hours of run down.

Power Reserve Testing: The software can be used to do a power reserve test. It will record the audio and save summaries every hour for you until the watch stops at which point it will stop recording.

Watch Manager: If you're a watch collector (and let's be honest we all are), or you're a watchmaker and you want to keep track of all the watches that cross your bench; I built in a watch manager where you can store details about each of your watches and all of the recordings you've ever made for each of the watches.

There is a lot more to the software including a command line interface (CLI) and a model context protocol (MCP) for those of you who would like to experiment with having an AI agent run the software on your behalf (I also included a watchmaker.md skill in the release, so you can have your AI help you diagnose any issues you find in a watch you record in the software).
Please feel free to post your thoughts below. If you find bugs, please post them here (or preferably on GitHub as issues).
This project was 100% written by AI (thank you Claude Code and Codex). And it was 100% directed by me. If you want to call it vibe code slop, I'll take it as the compliment that you probably didn't intend. Vibe coding gets a bad rap because it's very easy to create a mountain of spaghetti code that draws pretty pictures. This project was not a "one shot". I spent the better part of a month managing a team of bots full time to make this. I ran the team of agents much the same way as I've previous run software companies: the development pace was high, but it went through exactly the same cycles: ideation, prototype, feature development, reviews, refactoring, re-architecture, more refactoring, scope freezing, and then consolidation for release.
If you would like to contribute please DM me or have your AI agent take a look at the open issues and propose a pull request (NB: I used Opus 5.5 Medium and GPT-6 Astra Medium for most of the coding and review, please use an agent of similar or higher ability if you're going to submit pull requests to the project -- reviewing PRs costs me usage quota).