waveform_editor.tendencies.piecewise.PiecewiseLinearTendency

class waveform_editor.tendencies.piecewise.PiecewiseLinearTendency(user_time=None, user_value=None, **kwargs)

Bases: BaseTendency

A tendency representing a piecewise linear function.

__init__(user_time=None, user_value=None, **kwargs)

Methods

__init__([user_time, user_value])

get_derivative(time)

Get the values of the derivatives at the provided time array.

get_value([time])

Get the tendency values at the provided time array.

set_next_tendency(next_tendency)

Sets the next tendency as a param.

set_previous_tendency(prev_tendency)

Sets the previous tendency as a param.

Attributes

allow_zero_duration

annotations

duration

end

end_derivative

end_value

is_first_repeated

line_number

name

next_tendency

param

prev_tendency

start

start_derivative

start_value

start_value_set

time

times_changed

user_duration

user_end

user_start

value

values_changed

get_derivative(time: ndarray) ndarray

Get the values of the derivatives at the provided time array.

Parameters:
time: ndarray

The time array on which to generate points.

Returns:

numpy array containing the derivatives

get_value(time: ndarray | None = None) tuple[numpy.ndarray, numpy.ndarray]

Get the tendency values at the provided time array. If a time array is provided, the values will be linearly interpolated between the piecewise linear points.

Parameters:
time: ndarray | None = None

The time array on which to generate points.

Returns:

Tuple containing the time and its tendency values.

set_next_tendency(next_tendency)

Sets the next tendency as a param.

Parameters:
next_tendency

The tendency follows the current tendency.

set_previous_tendency(prev_tendency)

Sets the previous tendency as a param.

Parameters:
prev_tendency

The tendency precedes the current tendency.

time = array([0, 1, 2])
value = array([0, 1, 2])

Last update: 2026-05-21