Variable digital delay inside DAC?

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Has anyone made a multi-way DAC with a variable time delay on board?

This is my situation..
I have a multi-way horn system and I have been using Reaper on my PC for DSP and time delay with ASIO out to Lynx AES16 and various DACs for each driver. As the system has developed I have found that I have replaced most of the crossover dsp with line or speaker level crossovers - always an improvement. What I have left for the DSP to do is the delays which are vital in my set up (and something that has no negative sound issues). To simplify the system I would like to get rid of Reaper and the Multi-channel output entirely and implement the delays inside the DACs - all fed from a single stereo USB-I2S. Perhaps even better would be to use a SD card player with a FIFO I2S + delay module combined. This would have a hardware (best) or I2C settable delay from micro seconds to 100ms or something.
I'm thinking it can't be that complicated for one of you clever people, can it?
I'm surely not the only person in such a situation.

all best
Maravedis
 
Were you looking for someone else to design this? TI make some fairly simple, cheap lip-sync delay ICs which could be a relatively easy solution for you. Only trouble is their packages aren't particularly DIY-friendly (QFN). You might look into their evaluation modules.

Digital Audio Interface - Lip Sync Delay IC - TPA5051 - TI.com

As an aside, I'm curious that you find passive and analog XOs sounding better than digital :confused:
 
Thanks Abraxalito,
I didn't see these chips before. Good value at $49 for a 4 channel Evaluation Module. They look ideal. I wonder if anyone here has tested them? Nasty jitter problems perhaps?
The manual has pointed out a possible problem though - the amount of delay is of course dependent on the sampling frequency - so it would need to be changed on the fly. Annoying. This would need some CPU programming - and then things would too get complicated for me!
So I guess the answer is 'yes', I am looking for someone to help implement this.

As for passive vs. digital crossovers - I love digital XOs, and they have taught me so much about crossover design, and each drive unit's capabilities - indeed I couldn't now design speakers without them. But I have heard all so clearly that when I replace (particularly the mid and tweeter sections) with passive I just have a more integrated and life-like experience. My mind has been well made up on this through many major and minor listening tests and experiences. (I hope this won't become the main point of the thread!)
 
Yes, certainly a CPU is needed to set up the requisite delay parameter to those chips over I2C. Then once one has a CPU, why not put the delay line in the CPU and dispense with the extra chip? Nowadays 32bit CPUs which can handle real-time audio comfortably are negligibly more expensive than slower 8bit MCUs. I suspect you'll be better off in the long run biting the bullet and dragging yourself (kicking and screaming, doubtless) up to speed on ARM Cortex M-series devices :p Then you'll be able to free yourself completely from the PC.

I'll not engage you further on digital XOs so as not to dilute the thread, but nevertheless thanks for sharing your experiences. :)
 
The TPA5051's 16QFN should be doable for hand solder as it's not a pullback package---I don't have a good feeling for how many pins QFN or LLP packages have to get before bottom heat on the DAP no longer melts tinning on the pin pads but a 16 is still pretty small. I would tend to suggest a Cortex as well, though. 128kB of RAM provides 683ms of delay to work with for 32 bit/48k audio, or an average of 114ms per channel in a three way---about twice the TPA5051's 4x85ms at 48k. About half of the M3 and M4 parts available have at least 128kB RAM in an LQFP or TQFP, often at lower cost than the TPA5051 too.
 
Last edited:
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.