class RemiAudio::DSP::ZitaReverbSimple

Overview

Implements a Hall-like reverb effect.

This is a port of Zita-Rev1, a mostly-a-hall-partially-a-plate reverb based on a feedback delay network and allpass comb filters.

The original Zita-Rev1 supports an "ambisonic" mode, which allows for two inputs and four outputs. This implementation does not support the calculations for ambisonic mode, however, so it's strictly a reverb with stereo output.

This particular variation is simplified to save on CPU time.

Defined in:

remiaudio/dsp/reverbs/zitasimple.cr

Constructors

Macro Summary

Instance Method Summary

Instance methods inherited from class RemiAudio::DSP::ZitaReverb

crossover : Float64 crossover, crossover=(value : Float64) crossover=, damping : Float64 damping, damping=(value : Float64) damping=, eq(number : Int) : Tuple(Float64, Float64) eq, mute : Nil mute, predelay : Float64 predelay, predelay=(value : Float64) predelay=, process(inputLeft : Array(Float64) | Slice(Float64), inputRight : Array(Float64) | Slice(Float64), outputLeft : Array(Float64) | Slice(Float64), outputRight : Array(Float64) | Slice(Float64)) : Nil
process(inputLeft : Array(Float32) | Slice(Float32), inputRight : Array(Float32) | Slice(Float32), outputLeft : Array(Float32) | Slice(Float32), outputRight : Array(Float32) | Slice(Float32)) : Nil
process(input : Array(Float64) | Slice(Float64), output : Array(Float64) | Slice(Float64)) : Nil
process(input : Array(Float32) | Slice(Float32), output : Array(Float32) | Slice(Float32)) : Nil
process(buffer : Array(Float64) | Slice(Float64), amount : Float64 | Float64 = 1.0) : Nil
process(buffer : Array(Float32) | Slice(Float32), amount : Float32 | Float64 = 1.0) : Nil
process
, setEq(number : Int, frequency : Float64, gain : Float64) setEq, timeHigh : Float64 timeHigh, timeHigh=(value : Float64) timeHigh=, timeLow : Float64 timeLow, timeLow=(value : Float64) timeLow=, updateInternalParams(*, numFrames : Int32 = 0) updateInternalParams, usePreset(preset : Reverb::Preset) : Nil usePreset

Constructor methods inherited from class RemiAudio::DSP::ZitaReverb

new(newSampleRate : Int32, numFrames : Int32) new

Class methods inherited from class RemiAudio::DSP::ZitaReverb

checkCrossover(value) : Nil checkCrossover, checkDamping(value) : Nil checkDamping, checkEQ1Freq(value) : Nil checkEQ1Freq, checkEQ1Gain(value) : Nil checkEQ1Gain, checkEQ2Freq(value) : Nil checkEQ2Freq, checkEQ2Gain(value) : Nil checkEQ2Gain, checkPredelay(value) : Nil checkPredelay, checkTimeHigh(value) : Nil checkTimeHigh, checkTimeLow(value) : Nil checkTimeLow

Macros inherited from class RemiAudio::DSP::ZitaReverb

processZ(z, x0, x1) processZ

Instance methods inherited from class RemiAudio::DSP::Reverb

mute : Nil mute, process(inputLeft : Array(Float64) | Slice(Float64), inputRight : Array(Float64) | Slice(Float64), outputLeft : Array(Float64) | Slice(Float64), outputRight : Array(Float64) | Slice(Float64)) : Nil process, usePreset(preset : Reverb::Preset) : Nil usePreset

Constructor Detail

def self.new(newSampleRate : Int32, numFrames : Int32) #

[View source]

Macro Detail

macro processZ(z, x0, x1) #

[View source]

Instance Method Detail

def crossover : Float64 #

[View source]
def crossover=(value : Float64) #

[View source]
def damping : Float64 #

[View source]
def damping=(value : Float64) #

[View source]
def eq(number : Int) : Tuple(Float64, Float64) #

[View source]
def mute #

[View source]
def predelay : Float64 #

[View source]
def predelay=(value : Float64) #

[View source]
def process(inputLeft : Array(Float64) | Slice(Float64), inputRight : Array(Float64) | Slice(Float64), outputLeft : Array(Float64) | Slice(Float64), outputRight : Array(Float64) | Slice(Float64)) : Nil #

[View source]
def process(inputLeft : Array(Float32) | Slice(Float32), inputRight : Array(Float32) | Slice(Float32), outputLeft : Array(Float32) | Slice(Float32), outputRight : Array(Float32) | Slice(Float32)) : Nil #

[View source]
def process(input : Array(Float32) | Slice(Float32), output : Array(Float32) | Slice(Float32)) : Nil #

[View source]
def process(buffer : Array(Float32) | Slice(Float32), amount : Float32 | Float64 = 1.0) : Nil #

[View source]
def setEq(number : Int, frequency : Float64, gain : Float64) #

[View source]
def timeHigh : Float64 #

[View source]
def timeHigh=(value : Float64) #

[View source]
def timeLow : Float64 #

[View source]
def timeLow=(value : Float64) #

[View source]
def updateInternalParams(*, numFrames : Int32 = 0) #

[View source]