What else than an Apple Mac Pro M3 do I need to replace DBX Driverack PA2

Unfortunately I think it was proven to not provide good enough sync for high demand SQ... but I haven't tried it. Can't recall where...

I use a RME Digiface USB (Toslink) to run 4pcs of stereo DACs from one mac in complete sync i.e. 8 channels.

//

I don't know anyone who has used it. Have you tried it with your mac ?

It might be "OK" for integrating subs and mains.

"... RME Digiface USB (Toslink) ..."

There should be more of these types of devices to aggregate existing stereo DACs.

miniDSP has the U-DIO8 which I almost bought.

miniDSP U-DIO8
 
64 bit? Do you double floats which have an ENOB of 53? 53 bits is 319dB. With large FFTs and numerical rounding you then expect to have at least 40 bits of true precision (> 240dB). These days there are microcontrollers that have hardware double floats that can handle the processing load, but usually fall short on RAM capacity.

SQNR = (1.76 + (6.02 * nBits))
ENOB = ((SINAD - 1.76) / 6.02)

PC's have been doing 64 (and 128) bit for years which makes them attractive. I do offline DSP with 128-bit internal format and FFTs and then output in 64-bit for realtime convolution. No additional cost (besides runtime and memory) because both are already in the PC.

Unfortunately, not all software takes advantage of what has already been freely available. SoX is still 32-bit internal (released 33 years ago, last release @ a decade ago). 64-bit was SOTA in the 90's so why not use 3 decades old bleeding edge tech for audio ?
 
Tomorrow I'll start with the Behringer UMC404HD and Camilla DSP 😛
Crossover works at 0.3% DSP load on a Powerbook M1! There is a good documentation on the CamillaDSP thread. Then found this step-by-step on Henriks Github for a basic crossover which got me started.

But was PITA to set up. Main issues with virtual Python environment, starting it as I had no config.yml, then found the step-by-step but then getting the formats right for capture and output devices, e.g. only FLOAT32LE seemed to work with "BlackHole 2ch" capture device and S24LE for "UMC404HD 192k" output device. But works flawlessly with Ableton now. Would have been impossible for me without feeding the dozens of error messages to ChatGPT and working through each issue. But hey, it works!

Here are the relative noise floors of 16 bit int, 32 and 64 bit float XOs.
That's impressive. So 64 bit would be closest to what I'm aiming for:
Basically anything between an analog synth and the ear shouldn't add a micro-db of anything incl. noise.

Looking at CamillaDSP GUI, I don't see where I can set the bit to 64. Anyone?
 
@mikekasky ,

I have never used the CamillaDSP GUI. You can search for "64-bit" on the CamillaDSP GitHub hub to get an idea of where and how 64-bit is used in the various sections. CamillaDSP is compiled for 64-bit by default, but 32-bit is an option.

I use RePhase to make my FIR XO's. RePhase allows you to specify the output format, bit depth, windowing, etc. If you select output in mono-64-bit IEEE wav format, the wav header supplies the bit depth information. The XO is placed in channel 0 of the wav file which is then manually specified in the YAML file. The individual wav XO files are then specified in CamillaDSP's YAML file.

Example (NOTE: YAML indention formatting is stripped out by the quoted section):
# Crossovers

HIGH_XO_fir:
type: Conv
parameters:
filename: /tmp/ramdisk/filters/HIGH_XO_LP.wav
type: Wav
channel: 0

MID_XO_fir:
type: Conv
parameters:
filename: /tmp/ramdisk/filters/MID_XO_LP.wav
type: Wav
channel: 0

LOW_XO_fir:
type: Conv
parameters:
filename: /tmp/ramdisk/filters/LOW_XO_LP.wav
type: Wav
channel: 0

SUB_XO_fir:
type: Conv
parameters:
filename: /tmp/ramdisk/filters/SUB_XO_LP.wav
type: Wav
channel: 0
 
Last edited:
  • Like
Reactions: mikekasky
The XO is placed in channel 0 of the wav file which is then manually specified in the YAML file. The individual wav XO files are then specified in CamillaDSP's YAML file.
Are you using IIR or FIR XOs ?
I'm completely new to this so just followed the step-by-step on Henriks Github for a basic crossover. I will invest more time now but have no clue about the role of .wav files in this. Are these room recordings so the software can automatically adjust all parameters?

Have you lost your "I don't want to loose any analog warmth and imperfection" ?
The test is yet to be done. I could get an old analog top-class crossover BSS FDS-360 with a hardcoded XO at 1600 Hz. Playing a bit with CamillaDSP I found crossing over at 1600Hz gives a much fuller sound in the mids.

Is it safe to run the up to 1.6 kHz JBL ASB6125 which is rated 32 Hz - 1 kHz ?

I don't see why not.
The Bheringer UMC404HD is suitable for the basic crossover use case. BUT since I'm not using a hardware XO, I now have to route all sound through CamillaDSP. I was able to route the synth connected to the input 1+2 of the UMC to CamillaDSP but now I hear it double, directly from the UMC input to its outputs and via CamillaDSP to its outputs. There is not button on the UMC to switch off direct out.
 
I'm completely new to this so just followed the step-by-step on Henriks Github for a basic crossover. I will invest more time now but have no clue about the role of .wav files in this. Are these room recordings so the software can automatically adjust all parameters?

IIRs and FIRs are 2 types of filters that have different characteristics (linearl/minimum phase, latency, etc.) and are specified differently.

IIRs are specified by text entry such as:
filters:
LR_highpass:
type: BiquadCombo
parameters:
type: LinkwitzRileyHighpass
freq: 1000
order: 4

FIR filters contains larger data sets based on the number of taps in the filter. The large amount of data is stored in different file formats. Wav is one of those file containers which is composed of a header section and a data section. These files can contain 1 or more filters, possibly including an XO and DRC (e.g. you could have a subwoofer crossover and a sub boost built into the same FIR filter). It is also possible to place more than 1 XO in a single file, each stored in a different channel, but that can easily lead to confusion and mistakes until you are proficient and confident with the software you use to create, manage and use them.

You should read up on both IIR and FIR filters to understand why you might want to use one or the other and when to do so.

Being new to this, you should also lean about filters and XOs and take precautions so you don't damage your speakers. Make sure you understand and verify your channel mapping. You need to make sure you don't send low frequencies to your higher frequency drivers. You need to make sure you don't send too loud of a signal to your drivers (e.g. misuse of digital volume control and filter gains), etc.

Is it safe to run the up to 1.6 kHz JBL ASB6125 which is rated 32 Hz - 1 kHz ?

You should not send frequencies outside of your driver's comfort zone unless you want to summons the magic smoke or stress/distort the speaker. This not only includes the pass band of your XO, but also take into account the (steep/shallow) rolloff on each side of the pass band which is defined by the slope of your XO designs. You want your driver playing in its comfort zone.

AGAIN, IF YOU ARE NEW AT THIS, take some time to lean about filters before making some costly mistakes.
 
  • Like
Reactions: mikekasky
IIRs are specified by text entry such as
Definetly an improvement versus the basic Biquad. I'm using Butterworth 4th order at 96kHz and chunksize of 1024. That uses between 1-2% DSP load on Powerbook M1. I tried the Compressor under Processor but that's not working reliably or am I doing something wrong.

FIR filters contains larger data sets based on the number of taps in the filter.
Are there any starting points like presets that I can use and adapt? I will have to dig deeper into it anyways since I was interested in the t.racks FIR DSP 408.

You should not send frequencies outside of your driver's comfort zone unless you want to summons the magic smoke or stress/distort the speaker.
Will 500 Hz more or less be so dramatic? I mean the frequency response (measured on-axis) stays at or above 100 db SPL from 50 Hz to 2 kHz and is still at 90 db SPL at 4 kHz. But "official" Frequency Range (-10 dB) is 32 Hz - 1 kHz.
 
Are there any starting points like presets that I can use and adapt? I will have to dig deeper into it anyways since I was interested in the t.racks FIR DSP 408.

As far as I know, you can not make FIR filters in CamillaDSP. You have to make them in another application, save them in a format that the convolution software understands and then load them into the convolution engine.

Once you start to use FIR filters, you have to start managing tap latencies and sample rates. You have to match sample rates. You can't use a 192kHz FIR on a 44.1kHz audio source without upsamping it first, else your filter frequencies will not land where you expect them to (i.e. your XO points will change). Some convolution engines will manage this for you, others will not. CamillaDSP requires you to match sample rates. Again, there is a learning curve here.

If you have a long FIR for one driver and a short FIR for another driver, you have to compensate for the delay deltas between the 2, else you will get timing issues between drivers.

I use RePhase to make FIR filters and another program for DRC FIR because they both have 64-bit internal processing. You have the freedom to choose the application that best suits your needs to make FIR filters.

Note, some applications maybe able to save FIRs in 64-bit, but they may just be 32-bit (or lower) content stored in a larger container (e.g. 16-bit FIR saved as 64-bit). This won't hurt anything other than not giving true 64-bit SQNR.

Will 500 Hz more or less be so dramatic? I mean the frequency response (measured on-axis) stays at or above 100 db SPL from 50 Hz to 2 kHz and is still at 90 db SPL at 4 kHz. But "official" Frequency Range (-10 dB) is 32 Hz - 1 kHz.

Do you understand the notion of octaves and how they apply to frequency ranges ?

[250Hz to 500Hz] is not the same thing as [5,000Hz to 5,250Hz], even though they are both a delta of 250Hz.

Octaves are a doubling in frequency so [250Hz to 500Hz] is more akin to [5,000Hz to 10,000Hz], each representing 1 octave. This octave metric should give you some idea of the magnitude of an NHz change at a specific frequency range.

That said, running a low frequency driver higher in frequency will not hurt it, but it can increase distortion because it was not designed to handle those frequencies cleanly (driving a high frequency lower can damage it). The cabinet design can further define the functional bounds (e.g. exciting resonant peaks).

[2kHz to 5kHz] is the most sensitive human hearing range. Once you start playing this game in the sensitive hearing ranges, you can muddy your midrange and lose clarity.

Do you want to listen to the crossover region of a driver operating on the edge or outside of its ideal range inside the most sensitive hearing range ? Do you even want to place a XO in the middle of the most sensitive human hearing range ? Many designers avoid this. These are some additional design considerations to make in addition to pushing a driver to make it fit.

[1K to 2K] is one octave out of 10. In your case, you are trying to extend the woofer @ 1/2 an octave. You can measure XO configurations in REW and compare their distortion profiles to see if there are any deltas.

Also, I assume you are designing your XOs to sum properly. If not, that is another learning curve and can also account for lean or fullness sound.

Hope my ramblings help.


Frequency Chart.png
 
Last edited:
  • Like
Reactions: mikekasky
As far as I know, you can not make FIR filters in CamillaDSP. You have to make them in another application, save them in a format that the convolution software understands and then load them into the convolution engine.
Have you or anyone used Matlab or GNU Octave for creating FIR filters, says ChatGPT: The core MATLAB environment, which includes the Signal Processing Toolbox and the Filter Design and Analysis Tool (FDATool), is available and suitable for FIR filter design on macOS. ... GNU Octave is an open-source alternative to MATLAB that supports a GUI environment for macOS, making it easier to use without command-line instructions. Octave has extensive capabilities for FIR filter design. ... both MATLAB and GNU Octave support 64-bit internal processing on macOS.

I use RePhase to make FIR filters and another program for DRC FIR because they both have 64-bit internal processing.
So then I would use Matlab or GNU Octave to make FIR filters. Re DRC for Mac, I came across Dirac Live, Audiolense, Room EQ Wizard, Acourate, or
Hang Loose Convolver which seems to work from with Ableton. Any suggestions or experience with any one of these?

Also, I assume you are designing your XOs to sum properly. If not, that is another learning curve and can also account for lean or fullness sound.
Okay I won't be an engineer trying to design a crossover system. Should I just by the t.racks FIR DSP 408 and be done with it?
 
Have you or anyone used Matlab or GNU Octave for creating FIR filters, says ChatGPT: The core MATLAB environment, which includes the Signal Processing Toolbox and the Filter Design and Analysis Tool (FDATool), is available and suitable for FIR filter design on macOS. ... GNU Octave is an open-source alternative to MATLAB that supports a GUI environment for macOS, making it easier to use without command-line instructions. Octave has extensive capabilities for FIR filter design. ... both MATLAB and GNU Octave support 64-bit internal processing on macOS.
Sorry, haven't used either specifically for FIR creation.

So then I would use Matlab or GNU Octave to make FIR filters. Re DRC for Mac, I came across Dirac Live, Audiolense, Room EQ Wizard, Acourate, or
Hang Loose Convolver which seems to work from with Ableton. Any suggestions or experience with any one of these?
Basic XO creation in RePhase is pretty straight forward through its GUI. The most complicated thing is knowing which GUI panel to use. I use it running under "wine" in Linux. "wine rePhase.exe" Mac probably has something similar to run minimal Windoze executables.

I have tried Audiolense, but could not get it to produce consistent timing measurements from one sweep to the next so I went back to using REW. One AL release contained viruses, so that sealed my decision. Acourate is more of a math library/toolkit and requires a learning curve. It has good reviews, but can be more labor intensive. The creator of Acourate has contributed/assisted in other projects. Haven't used Dirac Live or Hang Loose. As far as I know, Hang Loose is just a convolver and not a filter creation tool. It was originally promoted for its ability to A/B/C/D/E test different filter banks while listening.

Okay I won't be an engineer trying to design a crossover system.
I drag and drop my RePhase filters into REW. REW has arithmetic functions which allows you to sum your individual XO's and then inspect the aggregation for frequency, phase and amplitude. It makes analysis much easier and very closely matches the actual sweeps using the filters analyzed. It also provides an advance sanity check to assure you are getting what you expected before subjecting your creations to your speakers.

Should I just by the t.racks FIR DSP 408 and be done with it?
Again, am not familiar with it, nor its software/firmware. That is something you will have to explore to determine if it suits your needs.
 
  • Like
Reactions: mikekasky
I drag and drop my RePhase filters into REW. REW has arithmetic functions which allows you to sum your individual XO's and then inspect the aggregation for frequency, phase and amplitude. It makes analysis much easier and very closely matches the actual sweeps using the filters analyzed. It also provides an advance sanity check to assure you are getting what you expected before subjecting your creations to your speakers.

Here is an example of 4 XO's summed in REW using REW's arithmetic functions.

There are 5 traces in this plot.

The black trace is the aggregation of all 4 XOs.

You can see how they sum flat through the XO regions between each XO pair.


TUTORIAL 4 LP XOS AND SUM SPL.jpg
 
  • Like
Reactions: mikekasky