Timing

Camtasia timing system: tick conversions, rational scalars, and duration formatting.

Camtasia uses an editRate of 705,600,000 ticks per second — chosen to be evenly divisible by common frame rates (30, 60 fps) and audio sample rates (44100, 48000 Hz).

camtasia.timing.EDIT_RATE: int = 705600000

Ticks per second in Camtasia’s timing system.

camtasia.timing.seconds_to_ticks(seconds)[source]

Convert seconds to editRate ticks.

Parameters:

seconds (float) – Duration in seconds.

Return type:

int

Returns:

Integer tick count.

camtasia.timing.ticks_to_seconds(ticks)[source]

Convert editRate ticks to seconds.

Parameters:

ticks (int) – Tick count.

Return type:

float

Returns:

Duration in seconds.

camtasia.timing.format_duration(ticks)[source]

Format a tick duration as ‘M:SS.ff’.

Parameters:

ticks (int) – Duration in editRate ticks.

Returns:

15.30’.

Return type:

str

camtasia.timing.parse_scalar(value)[source]

Parse a scalar value from Camtasia JSON into a Fraction.

Camtasia stores speed scalars as integers (1), floats, or string fractions (‘51/101’).

Parameters:

value (int | float | str | Fraction) – Scalar as int, float, string fraction, or Fraction.

Return type:

Fraction

Returns:

Exact rational representation.

camtasia.timing.scalar_to_string(scalar)[source]

Format a scalar Fraction for Camtasia JSON serialization.

Parameters:

scalar (Fraction) – Rational scalar value.

Return type:

str | int

Returns:

Integer 1 if the scalar is exactly 1, otherwise ‘numerator/denominator’.

camtasia.timing.speed_to_scalar(speed)[source]

Convert a human-readable speed multiplier to a Camtasia scalar.

A scalar represents timeline_duration / source_duration. Faster playback (speed > 1) means less timeline per source, so scalar = 1/speed.

Parameters:

speed (float) – Human speed multiplier (e.g. 2.0 for 2x playback).

Return type:

Fraction

Returns:

Rational scalar for Camtasia JSON.

camtasia.timing.scalar_to_speed(scalar)[source]

Convert a Camtasia scalar to a human-readable speed multiplier.

Parameters:

scalar (Fraction) – Rational scalar from Camtasia JSON.

Return type:

float

Returns:

Speed multiplier (e.g. 2.0 for 2x playback).