• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Chasing Camilla(DSP) XO basics

rthorntn

Member
Joined
Feb 15, 2022
Messages
20
Likes
0
Location
Sydney
Hi,

I'm pretty new to all of this.

With CDSP crossovers I feel like I'm going round in circles...are all crossovers in CDSP FIR filters?

1/ Can you just create say a "Low Pass" filter "module" and input the frequency and type and that's it, easy-peasy, if so, is that a FIR then, how is this "generic" XO done?

2/ Or is a crossover in CDSP only a "manual" convolution, so you record your speakers response, export that into a crossover designer, create your crossover data, import that into CDSP, not easy-peasy?

3/ Either option 1 or 2, perhaps CDSP has some FIR "templates" it can compute when given the Hz and filter type (for example an 8th order Linkwitz–Riley)?

I'm confused, I convinced myself that it was option 2, that an XO in CDSP was a convolution that you had to "build" it to match your speaker but I keep seeing "clues" that you can actually do Option 1 as well.

So say in a 2-way, 4-channel CDSP config I just want to quickly set my XO to send everything above 2000Hz to the tweeter channels only, how would you do that?

Anyone seen a document that describes how all the CDSP "modules" (delay, gain, low/high pass...) perform their sorcery?

Maybe I cant see the DSP forest for the FIR trees, maybe some of the "modules" are using IIR or other techniques?

Thanks.
 
Hi,

I'm pretty new to all of this.

With CDSP crossovers I feel like I'm going round in circles...are all crossovers in CDSP FIR filters?

1/ Can you just create say a "Low Pass" filter "module" and input the frequency and type and that's it, easy-peasy, if so, is that a FIR then, how is this "generic" XO done?

2/ Or is a crossover in CDSP only a "manual" convolution, so you record your speakers response, export that into a crossover designer, create your crossover data, import that into CDSP, not easy-peasy?

3/ Either option 1 or 2, perhaps CDSP has some FIR "templates" it can compute when given the Hz and filter type (for example an 8th order Linkwitz–Riley)?

I'm confused, I convinced myself that it was option 2, that an XO in CDSP was a convolution that you had to "build" it to match your speaker but I keep seeing "clues" that you can actually do Option 1 as well.

Hi,

I was at your point a month ago.

It can be one or the other or both.

So say in a 2-way, 4-channel CDSP config I just want to quickly set my XO to send everything above 2000Hz to the tweeter channels only, how would you do that?
You define the filter in the filters section and attribute it to the channel for the tweeter in the pipeline section
Anyone seen a document that describes how all the CDSP "modules" (delay, gain, low/high pass...) perform their sorcery?

Maybe I cant see the DSP forest for the FIR trees, maybe some of the "modules" are using IIR or other techniques?

Thanks.
Here is a config for dolby surround decoding. it uses lowpass, highpass and also convolution filters. the lowpass and highpass filters are used for the surround channels whereas the XO filters are within the convolution files.

This document was also very useful - https://henquist.github.io/0.3.1/stepbystep.html

YAML:
description: FL, FR, RL, RR, FC, LFE
devices:
  adjust_period: 30
  capture:
    channels: 6
    device: Line 1 (Virtual Audio Cable)
    exclusive: true
    format: S16LE
    type: Wasapi
  capture_samplerate: null
  chunksize: 2048
  enable_rate_adjust: null
  playback:
    channels: 6
    device: Speakers (C-Media PCI Audio Device)
    format: FLOAT32LE
    type: Wasapi
  queuelimit: 16
  rate_measure_interval: null
  samplerate: 48000
  silence_threshold: -80
  silence_timeout: 60
  stop_on_rate_change: null
  target_level: 4095
  volume_ramp_time: null
filters:
  delay_c:
    description: null
    parameters:
      delay: 2.3206
      subsample: false
      unit: ms
    type: Delay
  delay_ds:
    description: null
    parameters:
      delay: 12
      subsample: false
      unit: ms
    type: Delay
  delay_l:
    description: null
    parameters:
      delay: 0.3059
      subsample: false
      unit: ms
    type: Delay
  delay_lfe:
    description: null
    parameters:
      delay: 1.4
      subsample: false
      unit: ms
    type: Delay
  delay_r:
    description: null
    parameters:
      delay: 0
      subsample: false
      unit: ms
    type: Delay
  delay_rl:
    description: null
    parameters:
      delay: 0.689
      subsample: false
      unit: ms
    type: Delay
  delay_rr:
    description: null
    parameters:
      delay: 0.30756
      subsample: false
      unit: ms
    type: Delay
  fir_fc:
    description: Center speaker convolver + 95 Hz HPF
    parameters:
      channel: 0
      filename: ..\coeffs\7_oct_730hz_fc_lfe_win-$samplerate$.wav
      type: Wav
    type: Conv
  fir_fl:
    description: Front left speaker convolver + 95 Hz HPF
    parameters:
      channel: 0
      filename: ..\coeffs\7_oct_730hz_front_win-$samplerate$.wav
      type: Wav
    type: Conv
  fir_fr:
    description: Front right speaker convolver + 95 Hz HPF
    parameters:
      channel: 1
      filename: ..\coeffs\7_oct_730hz_front_win-$samplerate$.wav
      type: Wav
    type: Conv
  fir_lfe:
    description: LFE speaker convolver + 80 Hz LPF
    parameters:
      channel: 1
      filename: ..\coeffs\7_oct_730hz_fc_lfe_win-$samplerate$.wav
      type: Wav
    type: Conv
  fir_rl:
    description: Real left speaker convolver + 95 Hz HPF
    parameters:
      channel: 0
      filename: ..\coeffs\7_oct_730hz_back_win-$samplerate$.wav
      type: Wav
    type: Conv
  fir_rr:
    description: Rear right speaker convolver + 95 Hz HPF
    parameters:
      channel: 1
      filename: ..\coeffs\7_oct_730hz_back_win-$samplerate$.wav
      type: Wav
    type: Conv
  highpass:
    description: null
    parameters:
      freq: 100
      q: 0.707
      type: Highpass
    type: Biquad
  limiter:
    description: null
    parameters:
      clip_limit: -3
      soft_clip: false
    type: Limiter
  lowpass:
    description: null
    parameters:
      freq: 7000
      q: 0.707
      type: Lowpass
    type: Biquad
mixers:
  stereo:
    channels:
      in: 6
      out: 6
    description: Left on FL; Right on FR; LFE
    mapping:
    - dest: 0
      mute: null
      sources:
      - channel: 0
        gain: 10
        inverted: false
        mute: null
        scale: dB
    - dest: 1
      mute: null
      sources:
      - channel: 1
        gain: 8.5
        inverted: false
        mute: null
        scale: dB
    - dest: 2
      mute: false
      sources:
      - channel: 2
        gain: 7
        inverted: false
        mute: false
        scale: dB
      - channel: 1
        gain: -11
        inverted: false
        mute: false
        scale: dB
      - channel: 0
        gain: -11
        inverted: false
        mute: false
        scale: dB
    - dest: 3
      mute: null
      sources:
      - channel: 0
        gain: 7
        inverted: false
        mute: null
        scale: dB
      - channel: 1
        gain: 7
        inverted: false
        mute: null
        scale: dB
      - channel: 3
        gain: 10
        inverted: false
        mute: null
        scale: dB
    - dest: 4
      mute: false
      sources:
      - channel: 0
        gain: 9
        inverted: false
        mute: null
        scale: dB
      - channel: 1
        gain: 9
        inverted: true
        mute: null
        scale: dB
    - dest: 5
      mute: false
      sources:
      - channel: 0
        gain: 9
        inverted: false
        mute: null
        scale: dB
      - channel: 1
        gain: 9
        inverted: true
        mute: null
        scale: dB
pipeline:
- bypassed: false
  description: null
  name: stereo
  type: Mixer
- bypassed: null
  channel: 0
  description: null
  names:
  - delay_l
  - fir_fl
  - limiter
  type: Filter
- bypassed: null
  channel: 1
  description: null
  names:
  - delay_r
  - fir_fr
  - limiter
  type: Filter
- bypassed: null
  channel: 4
  description: null
  names:
  - delay_rl
  - delay_ds
  - lowpass
  - highpass
  - fir_rl
  - limiter
  type: Filter
- bypassed: null
  channel: 5
  description: null
  names:
  - delay_rr
  - delay_ds
  - lowpass
  - highpass
  - fir_rr
  - limiter
  type: Filter
- bypassed: null
  channel: 2
  description: null
  names:
  - delay_c
  - fir_fc
  - limiter
  type: Filter
- bypassed: null
  channel: 3
  description: null
  names:
  - delay_lfe
  - fir_lfe
  - limiter
  type: Filter
processors: null
title: 6 channels + delay
 
Back
Top Bottom