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 ?
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.Tomorrow I'll start with the Behringer UMC404HD and Camilla DSP 😛
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!
That's impressive. So 64 bit would be closest to what I'm aiming for:Here are the relative noise floors of 16 bit int, 32 and 64 bit float XOs.
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):
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:
Crossover works at 0.3% DSP load on a Powerbook M1! ...
...
Are you using IIR or FIR XOs ?
Have you lost your "I don't want to loose any analog warmth and imperfection" ?
I don't see why not.So if you used Focusrite Saffire 4x2 as crossover, I could as well use my Behringer UMC404HD or not?
Tom
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.
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?Are you using IIR or FIR XOs ?
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.Have you lost your "I don't want to loose any analog warmth and imperfection" ?
Is it safe to run the up to 1.6 kHz JBL ASB6125 which is rated 32 Hz - 1 kHz ?
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 don't see why not.
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.
.wav files
Other endian version of AIFF without the meta data.
dave
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.IIRs are specified by text entry such as
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.FIR filters contains larger data sets based on the number of taps in the filter.
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.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.
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.
Last edited:
I was interested in the t.racks FIR DSP 408.
You will have to read the software requirements for that specific unit unless someone else chimes in.
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.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.
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, orI use RePhase to make FIR filters and another program for DRC FIR because they both have 64-bit internal processing.
Hang Loose Convolver which seems to work from with Ableton. Any suggestions or experience with any one of these?
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?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.
Sorry, haven't used either specifically for FIR creation.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.
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.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?
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.
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.Okay I won't be an engineer trying to design a crossover system.
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.Should I just by the t.racks FIR DSP 408 and be done with it?
Mac probably has something similar to run minimal Windoze executables.
There is the freeware Wine and a commercail slicked upo version called Crossover Mac. The one pieve of Windoz softwar ei need isn’t well enuff behaved to run under it soi had to change one of my MacPros into a Wiondoz box.
dave
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.
- Home
- Design & Build
- Electronic Design
- What else than an Apple Mac Pro M3 do I need to replace DBX Driverack PA2