Bill,
The latency of every openHPSDR architecture radio, from the Hermes (10, 10E, 100), to the Angelia (100D), Orion (200D) and Orion MkII (8000 and 7000),
is exactly the same. They use the same software processing in PowerSDR mRX, the same Ethernet communications protocol between the radio and the PC, the same FPGA code (with respect to audio processing), and the exact same CODEC circuitry to support mic and speaker/headphone connections to the radio.
None of the radios have any advantage over the other in this respect.Which article are you referring to? Where can it be found?
With respect to obtaining simple sidetone, there is absolutely no reason that our radios can't achieve acceptably low latency. The CODEC IC used on every board from the Hermes to the Orion MkII has a built-in, zero latency sidetone path. It is simply not utilized by the software/firmware. Similarly, for those using VAC and fully virtualized audio, the simple problem is there is no software in PowerSDR to create a low latency path from the VAC input to the MON circuit and back out the VAC interface. I've suggested it be added, but it is simply not something the developer community is interested in working on, unfortunately.
With respect to mic-to-antenna latency, and antenna-to-speaker latency, the greatest impediment was the IF passband filter implementation in PowerSDR, which was based on simple linear phase FIR filters. Such filters do provide great phase and amplitude linearity, but also exhibit relatively long latencies. In PowerSDR, when using the linear phase FIR filters, the delay through them in milliseconds is defined by filter length divided by 48 (filter length is erroneous labeled as filter size in the setup window, and the factor of 48 comes from the 48KHz audio processing sampling rate used internally by PowerSDR). Even a filter of a relatively minimal length, e.g. 2048, accounts for some 43mS of delay. Add to this the other various processing and buffering delays and typical mic-to-antenna latency is on the order of 70mS or so.
One thing that has helped a great deal was that Warren Pratt ultimately became interested in achieving latency improvements. This may have been motivated by radios such as the IC-7300, which utilize IIR filtering. IIR filters are quite fast, and the latencies achieved in the 7300 are in the sub 30mS range. There might have also been some "squeaky wheels," such as your's truly
. This lead to the implementation of minimum phase FIR filters in the software, which are labeled "Low Latency" filters in the setup screen, as well as some improvements in buffering architecture. Not quite as fast as IIR filters, but they had mathematical advantages for allowing the real-time, highly flexible adjustments we enjoy in our radios. They also do not exhibit very linear phase characteristics, but considering what the ionosphere does to our signals that is essentially unnoticeable.
Using the Low Latency filters setting, at any length (their delay is insensitive to length), one can achieve mic-to-antenna latencies on the order of 30 to 70mS, depending on buffering settings and how much audio processing is being used (leveler, CFC, EQ, etc.). This was such a great improvement over the 70 to 150mS that Apache Labs "old timers" were used to that many folks took to calling it "real time". Of course it is no such thing, as your own experiments showed. But it is still quite good for an SDR, particularly an SDR with highly sophisticated transmit audio processing (unique to PowerSDR mRX, by the way), as all SDRs suffer from the delays inherent in digital filtering (analog filtering is essentially instant).
Given that the MON output is taken at the data stream where it goes to the DAC, it is subject to nearly the entire delay. Note that it is also subject to any predistortion processing from PureSignal. If you can stand the delay, and want to hear what you really sound like, you need to ensure that PureSignal is disabled when using MON.
I have suggested many times that MON should have three modes: MON1, which is pure, unadulterated sidetone with no processing and the lowest possible latency, MON2, which is picked off after all audio processing but before passband filtering and predistortion, and MON3, which is equivalent to how MON currently works and picks off the signal just before the DAC.
As you have already figured out, if you want low latency sidetone you will have to use a mixer/monitor "lash-up", as you put it. Something else to watch out for is receive-to-transmit latency. With buffers all set to as low as they can go, low latency filters, and no audio processing in use (no CFC, etc.), about the best you can do from the time the other station stops transmitting to when your signal actually leaves the antenna is approx. 60mS (30mS receive latency + 30mS transmit latency). Add some audio processing and this can quickly climb to the 100 to 150mS range. That doesn't sound like a lot, but in a multi-way rag-chew it can sometimes make it hard to break in in a timely fashion.
73,
Scott
P.S. see also
this thread.