Skip to content

zitarev

Abstract

Faust port of zita rev

Description

This is a port of faust's take on zita-rev1 from https://kokkinizita.linuxaudio.org/linuxaudio/zita-rev1-doc/quickguide.html. This reverb is divided in 2 bands, a low band and a middle band, with a decay time for each band. The crossover frequency is controlled by the decaylfx parameter. Also an equalization curve consisting of two band eq. filters is applied. Here both the frequencies (eq1freq and eq2freq) and levels(eq1level and eq2level) can be set. High-frequency damping is controlled via the hfdamp parameter, which sets the cutoff frequency of a low-pass shelving filter.

Parameters

Parameter Description Default Range
drywet Dry/Wet mix 0 -1, 1 (-1=wet, 1=dry)
delayms Pre delay 60 (ms) 20-100
decaylow Decay time (rt60) for low freqs. 3 (secs) 0.01 - 10
decaymid Decay time (rt60) for middle freqs. 2 (secs) 0.01 - 10
hfdamp High-frequency damping 6000 (hz) 1500-20000
decaylfx Decay crossover freq. 200 (hz) 50-1000
eq1level Level for band eq filter 1 0 (dB) -15, 15
eq1freq Frequency for eq filter 1 315 (hz) 100-20000
eq2level Level for band eq filter 2 0 (dB) -15, 15
eq2freq Frequency for eq filter 2 1500 100-20000
level Gain level -20 (dB) -70-40

Syntax

aout1, aout2 zitarev ain1, ain2 [, Sparam1, kvalue1, ...]

Arguments

  • ain1: left input channel
  • ain2: irght input channel
  • Sparam_n: name of a control (see below)
  • kvalue_n: value for the given control

Output

  • aout1: left output channel
  • aout2: right output channel

Execution Time

  • Performance

Examples

<CsoundSynthesizer>
<CsOptions>

</CsOptions>

<CsInstruments>
sr     = 48000
ksmps  = 64
nchnls = 2
0dbfs  = 1


instr 1
  ipitch = p4
  iamp = db(p5)
  ipan = p6
  prints "note %f\n", ipitch
  ifreq = mtof:i(ipitch)
  asig = vco2:a(iamp, ifreq)
  asig = lpf18(asig, ifreq * 8, 0.85, 0) * 4
  asig *= adsr(0.005, 0.05, 0.2, p3*0.5) 
  aL, aR pan2 asig, ipan
  chnmix aL, "rev1"
  chnmix aR, "rev2"
endin

instr 2
  ipitches[] genarray 48, 72, 0.25
  i0 = 0
  iN = lenarray(ipitches)
  while i0 < iN do
    ipan = (i0 / iN * 4) % 1
    schedule 1, i0*0.4, 0.2, ipitches[i0], -3, ipan
    i0 += 1
  od
endin

instr 10
  aL chnget "rev1"
  aR chnget "rev2"
  arev1, arev2 zitarev aL, aR, "drywet", -0.25, "level", -3, "delayms", 30, "decaylow", 4, "decaymid", 2.5, "decaylfx", 300, "eq1level", 4, "eq2level", 3
  outch 1, arev1, 2, arev2
  chnclear "rev1", "rev2"
endin

</CsInstruments>

<CsScore>
i 2  0 0
i 10 0 60

</CsScore>
</CsoundSynthesizer>

See also

Credits

Eduardo Moguillansky, 2024