flamo.auxiliary.eq.eq_freqs(interval: int = 1, start_freq: float = 31.25, end_freq: float = 16000.0)

Calculate the center frequencies and shelving crossover frequencies for an equalizer.

Arguments:
  • interval (int, optional): The fraction of octave to use in one interval. Default: 1.

  • start_freq (float, optional): The starting frequency in Hz. Default: 31.25.

  • end_freq (float, optional): The ending frequency in Hz. Default: 16000.

Returns:
  • tuple: A tuple containing the center frequencies and shelving crossover frequencies in Hz.

flamo.auxiliary.eq.octave_bands(interval: int = 1, start_freq: float = 31.25, end_freq: float = 16000.0)

Generate a list of octave band central frequencies.

Arguments:
  • interval (int, optional): The fraction of octave to use in one interval. Default: 1.

  • start_freq (float, optional): The starting frequency in Hz. Default: 31.25.

  • end_freq (float, optional): The ending frequency in Hz. Default: 16000.

Returns:
  • central_freq (list): A list of octave band central frequencies.

flamo.auxiliary.eq.geq(center_freq: Tensor, shelving_freq: Tensor, R: Tensor, gain_db: Tensor, fs: int = 48000, device: str = 'cpu')

Computes the second-order sections coefficients of a graphic equalizer. The EQ is implemented as a series of shelving peak filters, using the flamo.functional.shelving_filter() and flamo.functional.peak_filter() methods.

Arguments:
  • center_freq (torch.Tensor): Tensor containing the center frequencies of the bandpass filters in Hz.

  • shelving_freq (torch.Tensor): Tensor containing the corner frequencies of the shelving filters in Hz.

  • R (torch.Tensor): Tensor containing the resonance factor for the bandpass filters.

  • gain_db (torch.Tensor): Tensor containing the gain values in decibels for each frequency band.

  • fs (int, optional): Sampling frequency. Default: 48000 Hz.

  • device (str, optional): Device to use for constructing tensors. Default: cpu.

Returns:
  • tuple: A tuple containing the numerator and denominator coefficients of the GEQ filter.

flamo.auxiliary.eq.design_geq(target_gain: Tensor, center_freq: Tensor, shelving_crossover: Tensor, fs: int = 48000)

Design a Graphic Equalizer (GEQ) filter.

Arguments:
  • target_gain (torch.Tensor): Target command gain values in dB for each frequency band.

  • center_freq (torch.Tensor): Center frequencies of each band.

  • shelving_crossover (torch.Tensor): Crossover frequencies for shelving filters.

  • fs (int, optional): Sampling frequency. Default: 48000 Hz.

Returns:
  • tuple: A tuple containing the numerator and denominator coefficients of the GEQ filter.