cutcutcodec.core.filter.audio.fir

Apply an invariant linear convolutional filter to an audio signal.

Classes

FilterAudioFIR(in_streams, fir, fir_rate)

Invariant finite impulse response convolutional filter (FIR).

Details

class cutcutcodec.core.filter.audio.fir.FilterAudioFIR(in_streams: Iterable[StreamAudio], fir: Tensor, fir_rate: Integral)[source]

Invariant finite impulse response convolutional filter (FIR).

Attributes

firtorch.Tensor

The impulsional response (1d) (readonly).

fir_rateint

The sample rate of the impulsional response (readonly).

Examples

>>> import torch
>>> from cutcutcodec.core.filter.audio.fir import FilterAudioFIR
>>> from cutcutcodec.core.generation.audio.noise import GeneratorAudioNoise
>>> (stream_in,) = GeneratorAudioNoise(0).out_streams
>>> stream_in.snapshot(0, 48000, 4)
FrameAudio(0, 48000, 'stereo', [[ 0.44649088,  0.8031031 , -0.25397146,
                                 -0.1199106 ],
                                [-0.8036704 ,  0.72772765,  0.17409873,
                                  0.42185044]])
>>> (stream_out,) = FilterAudioFIR([stream_in], torch.tensor([1, 0, -.5]), 48000).out_streams
>>> stream_out.snapshot(0, 48000, 4).to(torch.float16)
FrameAudio(0, 48000, 'stereo', [[ 0.4465 ,  0.803  , -0.4773 , -0.5215 ],
                                [-0.8037 ,  0.7275 ,  0.576  ,  0.05798]],
                               dtype=torch.float16)
>>>

Initialise and create the class.

Parameters

in_streamstyping.Iterable[Stream]

Transmitted to cutcutcodec.core.classes.filter.Filter.

firtorch.Tensor

The impulsional response, 1d vector.

fir_rateint

The samplerate of the impulsional response.