pyFDN.dss_to_td#

pyFDN.dss_to_td(delays, A, B, C, D, *, post_delay=None, post_matrix=None, post_output=None, block_size=None)[source]#

Assemble a delay state-space (DSS) system as a stateful td graph.

The returned graph contains the input, feedback, output, and direct gains; the delay bank; and the filter hooks given. It can process a whole signal with process_signal, process a stream with process_block, and return to zero state with reset.

The delay bank breaks the feedback loop, so the graph processes blocks of up to block_size samples and implements delays exactly. To build the graph for a complete FDNBuild, use pyFDN.build_to_td().

Parameters:
  • delays (ArrayLike) – Positive delay lengths in samples, one per delay line.

  • A (ArrayLike) – Feedback matrix, (N, N) static or (N, N, order) FIR.

  • B (ArrayLike) – Input, output, and direct gain matrices.

  • C (ArrayLike) – Input, output, and direct gain matrices.

  • D (ArrayLike) – Input, output, and direct gain matrices.

  • post_delay (ArrayLike | TimeOperator | Any | None) – In-loop (after the delays), feedback-path (after A) and wet-signal (after C) hooks. Each is an (sections, 6, channels) SOS bank (placed as a SOSBank), a TimeOperator, or any object with a process_block(block) method.

  • post_matrix (ArrayLike | TimeOperator | Any | None) – In-loop (after the delays), feedback-path (after A) and wet-signal (after C) hooks. Each is an (sections, 6, channels) SOS bank (placed as a SOSBank), a TimeOperator, or any object with a process_block(block) method.

  • post_output (ArrayLike | TimeOperator | Any | None) – In-loop (after the delays), feedback-path (after A) and wet-signal (after C) hooks. Each is an (sections, 6, channels) SOS bank (placed as a SOSBank), a TimeOperator, or any object with a process_block(block) method.

  • block_size (int | None) – Internal block size. Defaults to the shorter of 4096 samples and the shortest delay. It must be positive and cannot exceed the shortest delay.

Returns:

A stateful graph from FDN inputs to outputs.

Return type:

TimeOperator