How the tempo, the stretch and the time check work
You tap each footfall on your own video; the median gap between taps is the tempo. Each section of music is time stretched to that tempo without changing pitch, warned past 8 percent and refused at 15 percent unless you give a reason. The ridden time is then checked against your level.
Last updated 19 October 2026.
The tap convention for each gait
Tap the same footfall every time, so the tempo means the same thing as the beat you will ride to.
| Gait | Footfalls a stride | You tap | Usual tapped tempo |
|---|---|---|---|
| Walk | 4 | Tap each time a front foot lands: 2 taps a stride, left front, right front. | 90 to 135 bpm |
| Trot | 2 | Tap each time a front foot lands: 2 taps a stride. | 120 to 175 bpm |
| Canter | 3 | Tap once a stride, as the leading front foot lands. | 80 to 120 bpm |
The usual range is a rough guide for a horse of average size. A tempo outside it is kept exactly as tapped; the page only asks you to check you tapped as the convention says. Ponies are often quicker, big moving horses slower.
The rules, in the order they run
1. Tempo from taps
- Taps come in runs. A run ends when the video pauses or jumps, or 2 seconds pass with no tap; a gap between runs is never measured as a beat.
- At least 8 taps for a gait give a tempo.
- The tempo is 60,000 divided by the median gap between taps, in milliseconds, to a tenth of a beat per minute.
- A gap more than 25 percent from the median is an outlier: it is named on screen and left out of the stability figure.
- Stability is the spread of the kept gaps (standard deviation over mean): 4 percent or less is steady, 8 percent or less fair, more than 8 unsteady, and you are asked to tap again.
- Fewer than 6 kept gaps, or fewer than 60 percent of them kept, is too uneven to measure.
- A tempo you type, from 30 to 300 bpm, is used instead of the taps and marked as typed everywhere.
2. Segments
- Times are whole milliseconds on the video's own clock. A boundary you set at the playhead snaps to the time of the frame on screen, never to a frame number, so phone video with an uneven frame rate lines up.
- A segment is at least 1 second long and inside the video. Segments never overlap; one may end exactly where the next starts. Up to 40.
- A change that breaks a rule is refused with the reason. Nothing is moved to make room.
3. Fitting the music
- A walk, trot or canter segment matches its gait's tempo. Halt and transition segments, and any segment set to as recorded, play at the track's own speed.
- The track's tempo is tapped (tap its beat while it plays) or typed.
- The beat is matched 1 to 1, as half time (one song beat to two taps) or as double time. Closest beat picks whichever needs the smallest stretch.
- Rate is the gait tempo over the track tempo times the relation. Above 1 the music plays faster. The pitch does not change.
- 8 percent or less either way is fine. Over 8 and under 15 plays with a quality warning. 15 percent or more is refused, unless you override it with a reason, which the cue sheet prints. Over 40 percent is never rendered.
- When you first give a segment a track, its track time is set to the first beat after any silence at the start of the track (with room before it for the crossfade when the segment follows another with music), and the builder says so. Change it to any moment you like.
- The track time you choose lands on the segment's first step. The beat nudge moves it by up to 1 second, in steps of 10 or 50 ms, so a downbeat lands on the first step; or snap it to the nearest beat you tapped.
4. Crossfades, gain and normalise
- The music file starts at the first segment with music (its 0:00) and ends at the end of the last.
- Where two music segments touch, they crossfade with equal power curves, centred on the boundary, over the length you choose: 1 to 4 seconds in half seconds.
- A crossfade is never longer than the shorter of its two segments; the builder shortens it and says so.
- Any other edge fades over 20 ms inside the segment, so a cut never clicks. When a beat sits in those first 20 ms, the fade in is 1 ms, so a downbeat on the first step keeps its attack.
- Before the track starts, or after it ends, is silence, and the builder says where.
- Each section's gain is applied, from minus 24 to plus 12 dB. Then, with normalise on, the whole mix is scaled up or down so its highest peak sits at minus 1 dBFS. With it off, anything over full scale clips, and the builder warns you.
5. The time check
- Every level times the ride from the first step after the opening halt to the final halt. On your timeline: from the end of the first segment when it is a halt, to the start of the last segment when it is a halt.
- The ridden time is compared with the level's maximum, and its minimum where it has one. Over or under is shown in words with the exact difference, to the tenth of a second, rounded up.
- The limits come from the levels reference, each with its source and the date checked. Confirm against the current rulebook.
6. Rendering and export
- Each section's part of its track is decoded, stretched in a background worker by the Signalsmith Stretch library, shaped with its fades and gain, and summed by the browser's offline audio renderer at 48 kHz.
- The export is one WAV file, 48 kHz, 16 bit, stereo. Samples are clamped to full scale and rounded. MP3 is not offered: no MP3 encoder with a licence this site can ship was found.
- The cue sheet and floor plan PDFs are drawn in the browser. A character the PDF font lacks is printed as a question mark, and the builder names it.
Worked example
Twelve trot taps at 0:12.0, 0:12.4, 0:12.8, 0:13.2, 0:13.6, 0:14.0, 0:14.4, 0:14.8, 0:15.4, 0:15.6, 0:16.0, 0:16.4 make 11 gaps: 398, 403, 399, 403, 396, 403, 398, 550, 250, 400, 401 ms. The median gap is 400 ms, so the tempo is 60,000 / 400 = 150 bpm. The 550 ms and 250 ms gaps are more than 25 percent from the median: they are named as outliers and left out, and the 9 kept gaps have a spread of 0.6 percent, so the tempo reads as steady.
A trot track tapped at 145 bpm fitted to that trot plays at 150 / 145 = 1.034, 3.4 percent faster: under 8 percent, so it fits with no warning.
The ride opens with a halt to 0:09.0 and ends with a halt from 5:12.4. The ridden time is 5:12.4 minus 0:09.0 = 5:03.4. Over the limit by 3.4 seconds: 5:03.4 ridden, the First Level Freestyle allows 5:00 at most.
The trot ends at 1:35.0 and a short transition, 1.5 seconds long, follows it with the same track. The chosen 2 second crossfade is shortened to 1.5 seconds, the length of the transition, and the builder says so.
Formats by browser
The browser does the decoding, so what it can read is what the builder can use. As a rule:
| File | Chrome and Edge | Safari | Firefox |
|---|---|---|---|
| MP4 video (H.264) | Yes | Yes | Yes |
| MOV from an iPhone (HEVC) | Only where the computer can decode HEVC | Yes | Usually no |
| WebM video | Yes | Recent versions | Yes |
| MP3, M4A (AAC), WAV | Yes | Yes | Yes |
| FLAC | Yes | Recent versions | Yes |
Videos up to 2 GB play straight from the file and are never decoded into memory, so a long MOV keeps the page responsive. Tracks are decoded only for the part a segment uses; a WAV is read a region at a time, and any other track longer than 10 minutes gets a note first, because the browser decodes it whole for a moment. On a device reporting under 4 GB of memory you see a warning.
What it is not
- Not a music library. Kurtempo supplies no music; use tracks you own or have rights to use.
- Not a judge or a federation. The rules reference is checked and dated but is for reference only; your federation's current rulebook and test sheet decide.
- Not a beat detector. The tempo comes from your taps, so it is your horse's tempo, not a guess.
- Not an uploader. The video and the music never leave your device; there is no server.
Kurtempo is not affiliated with the FEI, USDF, USEF, British Dressage or any federation, and does not supply music.