class RemiAudio::DSP::CemFilter

Overview

Implements a lowpass filter that is similar to the one in a Curtis CEM3394.

Included Modules

Defined in:

remiaudio/dsp/cemfilter.cr

Constructors

Instance Method Summary

Instance methods inherited from module RemiAudio::DSP::LPFilter

active=(active : Bool) active=, active? : Bool active?, cutoff : Float64 cutoff, cutoff=(val : Float64) cutoff=, invSampleRate : Float64 invSampleRate, process(sample : Float32) : Float32
process(sample : Float64) : Float64
process
, reset : Nil reset, resonance : Float64 resonance, resonance=(val : Float64) resonance=, sampleRate : Float64 sampleRate, sampleRate=(val : Int | Float) : Nil sampleRate=, set(newCutoff : Float64, newResonance : Float64) set, updateCoefficients : Nil updateCoefficients

Class methods inherited from module RemiAudio::DSP::LPFilter

midiToCutoff(val : UInt8) : Float64 midiToCutoff

Constructor Detail

def self.new(sampleRate) #

Creates a new CemFilter.


[View source]

Instance Method Detail

def a0 : Float64 #

[View source]
def a1 : Float64 #

[View source]
def a2 : Float64 #

[View source]
def a3 : Float64 #

[View source]
def a4 : Float64 #

[View source]
def b0 : Float64 #

[View source]
def b1 : Float64 #

[View source]
def b2 : Float64 #

[View source]
def b3 : Float64 #

[View source]
def b4 : Float64 #

[View source]
def cutoff=(val : Float64) #

Sets the cutoff frequency of the filter. If this is less than the NyQuist limit, then the filter will be disabled.


[View source]
def process(block : Array(Float32)) : RemiAudio::DSP::CemFilter #

"Runs" the filter over block.


[View source]
def process(block : Array(Float64)) : RemiAudio::DSP::CemFilter #

"Runs" the filter over block.


[View source]
def process(block : Slice(Float32)) : RemiAudio::DSP::CemFilter #

"Runs" the filter over block.


[View source]
def process(block : Slice(Float64)) : RemiAudio::DSP::CemFilter #

"Runs" the filter over block.


[View source]
def process(sample : Float64) : Float64 #

Processes a single sample with the filter, returning a new sample.


[View source]
def reset : Nil #

Clears the internal buffers.


[View source]
def resonance=(val : Float64) #

Sets the resonance of the filter. This will be clamped to RESONANCE_MIN..RESONANCE_MAX.


[View source]
def set(newCutoff : Float64, newResonance : Float64) #

Sets both the cutoff frequency and resonance of the filter. If the cutoff is less than the NyQuist limit, then the filter will be disabled. The cutoff will be clamped to RESONANCE_MIN..RESONANCE_MAX.


[View source]
def updateCoefficients : Nil #

[View source]