# filterdesign

## Description

Use the filterdesign object to create a dictionary containing a specification for a filter that can be realized by several other objects including the cascade~ object.

## Arguments

None.

## Attributes

### frequency [2 floats]

Filter cutoff frequencies specified in units defined by the units attribute. For lowpass and highpass filters a single frequency will be used to define the cutoff. For bandpass and bandstop filters two frequencies are required.

### name [symbol]

Name to which the output dictionary is bound

### order [int]

The order of the filter, which is to say the number of poles and zeroes. For reference, the biquad~ object is a second-order filter (2 poles and 2 zeroes).

### passband_ripple [float]

Magnitude ripple in the passband for Chebyshev Type 1 filters in decibels. Higher amounts of ripple will provide a narrower transition band given a constant order for the filter.

### response [symbol]

Filter response shape

Possible values:

'lowpass'
( Low frequencies pass through, high frequencies are attenuated )

'highpass'
( High frequencies pass through, low frequencies are attenuated )

'bandpass'
( A band of frequencies pass through, low and high frequencies are attenuated )

'bandstop'
( A band of frequencies are attenuated, low and high frequencies pass through )

### samplerate [int]

Samplerate used when unit attribute is set to hertz. If the samplerate is set to zero then MSP's samplerate will be used.

### sos_output [int]

Inclusion of coefficients for second-order-sections in the output dictionary. This is the native format used by cascade~, zplane~, and filtergraph~.

### stopband_attenuation [float]

Minimum attenuation in Chebyshev Type 2 filter stopband in decibels. For given order of filter, greater attenuation results in a wider transition band and less attenuation in the stopband results in a narrower transition band.

### tf_output [int]

Include single-section transfer function coefficients in the output dictionary. This representation works well for low-ordered filters but quickly becomes subject to floating-point precision roundoff as the order of the filter increases.

### topology [symbol]

The organization of the zeroes and poles used to realize the filter.

Possible values:

'butterworth'
( Gentle transition, flat passband, monotonically decreasing stopband )

'chebyshev-1'
( Steepest transition, definable ripple in passband, monotonically decreasing stopband )

'chebyshev-2'
( Moderate transition, flat passband, definable ripple in the stopband )

### units [symbol]

Units of measurement for specifying frequencies

Possible values:

'hertz'
( Cycles per second, based on the samplerate attribute )

'normalized'
( Range from 0.0 to 1.0; 1.0 is the nyquist frequency )

'radians'
( Range from 0.0 to pi; pi is the nyquist frequency )

### zpk_output [int]

Include zeroes-poles-gain representation in the output dictionary. Zeroes-poles-gain (ZPK) provides a more accurate representation of the filter's response than the single-section transfer function (see tf_output attribute) for higher-order filters. If calculating coefficients for second-order-sections (see sos_output attribute) the ZPK representation is calculated as an intermediary stage.

### Common Box Attributes

## Messages

### bang

### (mouse)

## Output

### dictionary

A filterdesign dictionary containing the specified filter characteristics.

## See Also

Name | Description |
---|---|

Sound Processing Techniques | Sound Processing Techniques |

filterdetail | |

plot~ | |

cascade~ | |

Audio Filtering | Audio Filtering |