Delay

class gpype.backend.timing.delay.Delay[source]

Bases: IONode

Introduces configurable N-sample delay to input signal.

Uses efficient deque-based buffer. Output is zero-initialized until buffer is filled with sufficient samples.

class Configuration[source]

Bases: Configuration

class Keys[source]

Bases: Keys

NUM_SAMPLES = 'num_samples'

Configuration key for number of delay samples

__init__(num_samples, **kwargs)[source]

Initialize delay with specified number of samples.

Parameters:
  • num_samples (int) – Number of samples to delay signal. Must be non-negative.

  • **kwargs – Additional arguments for parent IONode.

Raises:

ValueError – If num_samples is negative.

setup(data, port_context_in)[source]

Setup delay buffer and zero frame.

Parameters:
  • data (dict[str, ndarray]) – Input data arrays.

  • port_context_in (dict[str, dict]) – Input port contexts containing channel count.

Return type:

dict[str, dict]

Returns:

Output port contexts from parent setup.

Raises:

ValueError – If channel count is not provided in context.

step(data)[source]

Process one step of delay.

Parameters:

data (dict[str, ndarray]) – Input data dictionary containing signal to delay.

Return type:

dict[str, ndarray]

Returns:

Dictionary with delayed signal or zero frame if buffer not full.