Skip to content

butterhp

A high-pass Butterworth filter.

Implementation of second-order high-pass Butterworth filter. This opcode can also be written as buthp.

Syntax

ares = butterhp(asig, kfreq [, iskip])
ares = butterhp(asig, afreq [, iskip])
ares butterhp asig, kfreq [, iskip]
ares butterhp asig, afreq [, iskip]

Initialization

iskip (optional, default=0) -- Skip initialization if present and non-zero.

Performance

These filters are Butterworth second-order IIR filters. They are slightly slower than the original filters in Csound, but they offer an almost flat passband and very good precision and stopband attenuation.

asig -- Input signal to be filtered.

kfreq/afreq -- Cutoff or center frequency for each of the filters.

Examples

Here is an example of the butterhp opcode. It uses the file butterhp-modern.csd.

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

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

instr 1 ; White noise signal
  sig:a = rand(0.5)
  outs(sig, sig)
endin

instr 2 ; filtered noise
  sig:a = rand(0.6)
  hp:a = butterhp(sig, 500)  ;pass frequencies above 500 Hz
  out(hp, hp)
endin

</CsInstruments>
<CsScore>

i 1 0 2
i 2 2.5 2
e

</CsScore>
</CsoundSynthesizer>

Here is an example of the butterhp opcode. It uses the file butterhp.csd.

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

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

instr 1   ; White noise 

asig rand 0.5
outs asig, asig

endin

instr 2 ; filtered noise

asig rand 0.6
ahp  butterhp asig, 500  ;pass frequencies above 500 Hz
     outs ahp, ahp

endin

</CsInstruments>
<CsScore>

i 1 0 2
i 2 2.5 2
e

</CsScore>
</CsoundSynthesizer>

See also

Standard filters: Butterworth filters

Credits

Author: Paris Smaragdis
MIT, Cambridge
1995

Existed in 3.30

Audio rate parameters introduced in version 6.02

October 2013.