Skip to content

follow2

Another controllable envelope extractor using the algorithm attributed to Jean-Marc Jot.

Syntax

ares = follow2(asig, katt, krel)
ares follow2 asig, katt, krel

Performance

asig -- the input signal whose envelope is followed

katt -- the attack time in seconds (60 dB)

krel -- the release time in seconds (60 dB)

The envelope starts at zero and follows the absolute value of asig. katt controls its rise and krel controls its fall. Each time specifies how long it takes to reduce the difference from a constant target to 0.1% (60 dB). For example, with an input of 1 and katt = 0.1, the output reaches 0.999 after 0.1 seconds.

Zero or negative values for either time use 0.1 seconds.

Examples

Here is an example of the follow2 opcode. It uses the file follow2.csd, and drumsMlp.wav.

Example of the follow2 opcode.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac      ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o follow2.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1

asig soundin "drumsMlp.wav"
     outs asig, asig
endin

instr 2 ;using follow2

as soundin "drumsMlp.wav"
af follow2 as, p4, p5
ar rand 44100   ;noise
; "drumsMlp.wav" provides amplitude for noise
asig balance ar, af
     outs asig, asig

endin
</CsInstruments>
<CsScore>

i 1 0 2
i 2 2 2 0.001 0.01 ;quick attack & deacy
i 2 5 2  0.1   0.5  ;slow attack & deacy        

e
</CsScore>
</CsoundSynthesizer>

See also

Sensing and Control: Envelope followers

Credits

Author: John ffitch
The algorithm for the follow2 is attributed to Jean-Marc Jot.
University of Bath, Codemist Ltd.
Bath, UK
February 2000

New in Csound version 4.03

Added notes by Rasmus Ekman on September 2002.