NAME

Peta::Synth::Reverb - a feedback delay network reverb

VERSION

version 0.2610180

SYNOPSIS

my $reverb = Peta::Synth::Reverb->new(rate => 48000, time => 2.5);
my ($wet_left, $wet_right) = $reverb->process(\@send);
$reverb->set(damp => 0.6);

DESCRIPTION

Eight delay lines fed back through a Hadamard matrix, damped and attenuated to fall 60 dB in the reverb time. The input is the voices' reverb send (each channel's CC91); left and right come out decorrelated.

METHODS

new

new(rate => ..., time => 2.2, size => 1, damp => 0.45, level => 0.5, predelay => 0.02, on => 1). time is the reverb time (s), size scales the delay lines, damp (0 .. 1) how quickly the highs die, level the wet level.

set, params

Changes one parameter while it runs; all of them as a hash.

process

process(\@send): the reverb of the send, as left and right array references, or nothing when it is off.

active, advance

Whether it sounds (on, and a level above 0). advance($n, \@send, \@wet_left, \@wet_right): what an engine that ran it elsewhere reports.

quiet

Whether the tail has died away: nothing has gone in for longer than the predelay and the longest line, and the last quantum came out below -100 dB.

clear

Silences the tail.

AUTHOR

PetaMem s.r.o. <info@petamem.com>

COPYRIGHT

Copyright (c) 2026 PetaMem s.r.o.

LICENSE

This package is free software, dual-licensed under the Artistic License 2.0 and the BSD 2-Clause License. See the LICENSE file of the distribution.