Wouldn't I be able to manipulate this through software?If you want to use this like a feedback loop to your audio gear, I think you will find a computer very poor for that application. IF that is the intended use for your project I recommend doing some rough calculations about the phase change caused by the I/O and processing delays before proceeding.
If your DSP uses only forward direction and low latency is only about some AV lipsync etc., SW can do a lot. If you want to run some feedback loop, I cannot imagine how a software could help with precise timing, especially for a general signal like music.
It all again comes down to what you really intend to do.
It all again comes down to what you really intend to do.
What I think you do not comprehend is that, while you CAN manipulate latency through the ADC-->processing-->DAC loop the problem is that there exists is a MINIMUM latency that is already way too high to be useful for applications where feedback will be used as part of an audio process.Wouldn't I be able to manipulate this through software?
As an example, I once had the idea to use a similar feedback loop for motional feedback of a subwoofer. On paper it seemed like a great idea - I could do all of the processing in the computer. But I had neglected to account for the latency/delay of the feedback loop through the computer via the ADC and DAC plus the time taken up by the OS for doing the processing.
Another problem that phofman alluded to is that the time taken by the OS to perform the DSP processing is NOT fixed exactly - it will vary slightly because the OS is doing a lot of different things all the time. This means that the latency through the loop will have some variation, too. If the latency were so tiny compared to what you need then this variation would not matter, but in the case it might amount to several percent of the total latency (just spitballing here) which means the phase of the loop would be changing over time.
@BKr0n What I suggest you do is this sort of calculation:
Make an assumption about the minimum roundtrip delay that you can achieve for the path ADC-->processing-->DAC. Let's say you can get this as low as 10msec, which IMO is already pretty fast. For what frequency is the phase angle represented by a delay of 10msec equal to 180 degrees? This frequency is where the loop will pass into positive feedback (e.g. feedback will be positive at higher frequencies). You must eliminate anything at this frequency or higher from the loop. How will you do that? Is this frequency too low to be useful?
Make an assumption about the minimum roundtrip delay that you can achieve for the path ADC-->processing-->DAC. Let's say you can get this as low as 10msec, which IMO is already pretty fast. For what frequency is the phase angle represented by a delay of 10msec equal to 180 degrees? This frequency is where the loop will pass into positive feedback (e.g. feedback will be positive at higher frequencies). You must eliminate anything at this frequency or higher from the loop. How will you do that? Is this frequency too low to be useful?
Taking into account then everything that has been said here: I have been looking up a lot in terms of what would be considered "processing" in an audio, or even a mixed signal processing environment (funny how often that overlaps huh?). I think back to basics, where the whole point of feedback is to push the resulting signal closer together to the source signal just at a higher gain. That being said, things like MFB, feedforward, and DSP have all been used in order to do this. Hypothetically speaking; could a hybrid approach be used in order to compensate for what the digital portion cannot achieve? Or is it that no matter how much processing, getting it to be equal is a far off dream (one which a lot of companies have invested in it would seem)? Also, I may be a little confused on this one: so is it just a time, or a time and phase relationship that is the key issue here?
Delays are the enemy of stability with control loops - either filter in analog, or in digital, don't try to do it part in one and part in the other as ADCs and DACs necessarily have real-world delay. Sigma-delta converters have lots of latency, BTW, dozens of sample times or more.
It strikes me the right architecture is a high-end microcontroller/DSP to talk to the hardware, where latencies can be strictly controlled, and many microcontrollers have multiple I2S interfaces, then USB or whatever between microcontroller and host machine.
You'll also then have something that's impervious to OS upgrades/obsolescence and can be plugged into any computer...
It strikes me the right architecture is a high-end microcontroller/DSP to talk to the hardware, where latencies can be strictly controlled, and many microcontrollers have multiple I2S interfaces, then USB or whatever between microcontroller and host machine.
You'll also then have something that's impervious to OS upgrades/obsolescence and can be plugged into any computer...
May switch to SAR DACs then as well if that's the case. That aside: would you know of any good silicon that could act as a go-between? Or would I need to go up to something like a FPGA?It strikes me the right architecture is a high-end microcontroller/DSP to talk to the hardware, where latencies can be strictly controlled, and many microcontrollers have multiple I2S interfaces, then USB or whatever between microcontroller and host machine.
You'll also then have something that's impervious to OS upgrades/obsolescence and can be plugged into any computer...
I've used the Teensy 4 for DSP, 600Mhz dual issue with full hardware floating point, 2 I2S/TDM interfaces, good support.
I like the concept, but doesn't have enough I/O for what I have in mind for this project. Definitely will keep it in mind. I'm thinking about starting a much smaller project after this one for a tiny, but good sounding desk speaker. This could be good for that.I've used the Teensy 4 for DSP, 600Mhz dual issue with full hardware floating point, 2 I2S/TDM interfaces, good support.
- Home
- Source & Line
- Digital Source
- Which I/O?