Structured Pruning of FDNs

A perceptually lossless pruning algorithm for Feedback Delay Networks (FDNs).

mit.edu/~facundof

Acknowledgements

Karolina Prawda (University of York)

Andy Hunt (University of York)

Sebastian J. Schlecht (FAU Erlangen-Nürnberg)

Mark Rau, RLE (Massachusetts Institute of Technology)

Jatin Chowdhury, RLE (Massachusetts Institute of Technology)

Structured Pruning of Feedback Delay Networks

A perceptually lossless pruning algorithm for Feedback Delay Networks (FDNs).


Background

Feedback Delay Networks

Here’s a 4x4 FDN:

4x4 FDN diagram

As shown, they consist of a set of delays and a feedback matrix through which the delay outputs are coupled to the delay inputs.

The ideal FDN triad

This thesis formalises a threefold trade-off that’s featured on this line of research since its early days.

FDN triad Venn diagram

As shown on the diagram, known structures don’t fully satisfy all three requirements simultaneously. This dissertation flips the design approach of FDN’s from a “ground-up” to a “top to bottom” perspective:

What if we start from a differentiable (trained), nice-sounding, dense FDN and try to prune it without losing perceptual/acoustic quality, instead of designing it with the lowest possible N×N feedback matrix?

Benchmark Results

Compiled C++ with ARM NEON intrinsics on Apple M-series, vs Apple Accelerate BLAS. Layer count L chosen per-N by listening test.

N L LSD (dB) Staged (ns) BLAS (ns) Speedup
4 8 0.00 1.5 36.2 25.0×
8 6 0.90 7.1 26.7 3.8×
16 4 2.46 8.8 38.4 4.4×
32 10 0.11 56.2 71.3 1.3×
64 3 4.25 26.2 189.6 7.2×
128 3 2.24 39.2 658.4 16.8×
256 3 1.50 75.8 1989.2 26.3×

Impulse Responses

N = 16, L = 4 4.4× faster

Dense (trained)
Staged (projected)

N = 64, L = 3 7.2× faster

Dense (trained)
Staged (projected)

Convolved Examples — N = 16, L = 4 4.4×

singing Singing

Dry
Dense (trained)
Staged (projected)

drums Drums

Dry
Dense (trained)
Staged (projected)

orchestral Orchestral

Dry
Dense (trained)
Staged (projected)

Convolved Examples — N = 64, L = 3 7.2×

singing Singing

Dense (trained)
Staged (projected)

drums Drums

Dense (trained)
Staged (projected)

orchestral Orchestral

Dense (trained)
Staged (projected)