CW Sidetone

824 views
Skip to first unread message

Charlie Morrison

unread,
Mar 12, 2024, 7:41:39 PM3/12/24
to Hermes-Lite
Guys

is there an *easy* way to implement CW sidetone on the HL2? I use a K1EL keyer, and with headphones on its impossible to hear the sidetone generated by the keyer

Charlie GI4FUE

ron.ni...@gmail.com

unread,
Mar 12, 2024, 10:25:36 PM3/12/24
to Hermes-Lite
A multi-input passive mixer box (which seem to be available from the usual e-commerce sites) might be the simplest way to add an existing keyer box's audio out to the output from the SDR computer's headphone jack, with no added latency.  73, Ron, n6ywu

Brian Holmes

unread,
Mar 12, 2024, 11:25:42 PM3/12/24
to Charlie Morrison, Hermes-Lite
I like the Hermes Lite 2 + companion board for CW. The VAC latency was causing my brain to hurt.   

Brian
VE3IK


Sent from my mobile device. 

On Mar 12, 2024, at 7:41 PM, Charlie Morrison <gi4...@gmail.com> wrote:

Guys

is there an *easy* way to implement CW sidetone on the HL2? I use a K1EL keyer, and with headphones on its impossible to hear the sidetone generated by the keyer

Charlie GI4FUE

--
You received this message because you are subscribed to the Google Groups "Hermes-Lite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hermes-lite...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hermes-lite/b8088df3-4dea-454c-b6b5-6371b08bf541n%40googlegroups.com.

Steve Haynal

unread,
Mar 12, 2024, 11:59:39 PM3/12/24
to Hermes-Lite
Get yourself a cheap mixer, and use software that doesn't require VAC, like Quisk, SparkSDR, SDRConsole. I'm not a Thetis user, so maybe I am missing something, but shouldn't Thetis have real audio in/out that can use ASIO or other low latency standard audio connections? Why is it that computers are regularly used for near realtime music synthesis (VST) yet we keep seeing countless e-mails about VAC and configuring VAC for Thetis?

On Tuesday, March 12, 2024 at 4:41:39 PM UTC-7 gi4...@gmail.com wrote:

"Christoph v. Wüllen"

unread,
Mar 13, 2024, 5:14:17 AM3/13/24
to Charlie Morrison, herme...@googlegroups.com
You can use an external tone generator that is also triggered
by the "Key" output of your K1EL, and mix this with the audio
that comes from the PC. If this sounds do-able to you, I can send
you an article I wrote for journal of the german radio amateur
association, it is in German (an AI translator might help)
but you can enjoy the schematic and the measurements (
of the pulse shape, since getting a nice side tone
with rounded edges is the real challenge here).

Charlie Morrison

unread,
Mar 13, 2024, 7:30:25 AM3/13/24
to Hermes-Lite
Hi Christof

The tone generator sounds interesting. Can you send me the article please? Send it to cha...@gi4fue.com.

73, Charlie GI4FUE

Scott Massey

unread,
Mar 13, 2024, 8:25:42 AM3/13/24
to Charlie Morrison, Hermes-Lite
Hi Charlie,

I assume your headphones are connected to your PC.  If you have an available Line Input to your computer, you could simply connect your keyer to your computer with a patch cable (typically 3.5mm to 3.5mm stereo cable).  If you don’t have an available input, pick up a USB “sound card” dongle to add the port (Amazon for less than $10).

Once you have the hardware satisfied, you’ll need to adjust the levels between sources.  The built in Windows mixer can do the job but I find it more difficult than it needs to be.  I use Voicemeeter as my mixer.  It’s a free-to-try-application then if you want to keep it, make a donation to obtain a license.

You’ll figure it out.

Scott KE8KYP 

iPad transmission

On Mar 13, 2024, at 07:30, Charlie Morrison <gi4...@gmail.com> wrote:

Hi Christof

Nuno Lopes

unread,
Mar 13, 2024, 11:06:54 AM3/13/24
to Steve Haynal, Hermes-Lite
Hi Steve, so you're saying that the best way to deal with the HL2 audio, no matter what the programs are, to interconnect between them the better way is to have an external audio device, like the UCM or Yamaha (like yours, discontinued) or the one you post.

And stop chasing the Virtual Audio Cabeles, like Voicemeter, VAC or the likes.

--
You received this message because you are subscribed to the Google Groups "Hermes-Lite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hermes-lite...@googlegroups.com.


--
73  Nuno
  CT2IRY



Ron Lewkowicz

unread,
Mar 13, 2024, 2:20:35 PM3/13/24
to Hermes-Lite
Low latency audio applications need to be engineered as such from the ground up. Latency performance will vary depending on audio hardware as some like RME invest massive resources into drivers to obtain good performance in Windows. Some motherboards will have specific issues.  Low latency monitors are created with specialized audio devices that now bypass Windows. They have an embedded OS and specialized processor. DSP is done on the audio device directly.   Linux can match the latency performance of the embedded OS but your desktop CPU cannot match the latency of their specialized processor. 

I don't know CW but it seems you'll need a very low latency monitor to work it at any speed.  Bypassing windows and vac will probably be the best thing to look at.

Phil

unread,
Mar 13, 2024, 5:31:51 PM3/13/24
to Hermes-Lite
This device will do everything you want and more, can use straight or paddle keys, keyboard and can have macro for beacon use.  It has a piezo buzzer inbuilt, runs from 12v.  I have mine in a small enclosure with a 9v lithium rechargeable for portable use. http://betatech-instruments.com/consu-en.php

Max

unread,
Mar 13, 2024, 7:55:19 PM3/13/24
to Hermes-Lite
Yes, just use SDR Console. It has a fully configurable sidetone for HL2. Superb SDR software companion for the HL2 generally. Very quick to set up.


73

Max

Philip

unread,
Mar 14, 2024, 1:19:02 AM3/14/24
to Hermes-Lite
Just use another receiver, I listen to my side tine on my 7300.

"Christoph v. Wüllen"

unread,
Mar 14, 2024, 5:41:20 AM3/14/24
to Ron Lewkowicz, herme...@googlegroups.com
Perhaps this does not really apply to the side tone, but it applies to the SDR audio in general:

In the SDR business, latency is a *feature* not something that one wants to avoid.
Latency avoids cracks in the audio output if there
is jitter in the incoming data packets, since then you continue playing audio
from the buffer. I prefer a buffer of about 100 msec that I want to keep at
half-filling for a steady data stream, so I can survive both a burst and
a "hole" of incoming data.

This means the CW side tone should be generated "far downstream" and mixed with the
audio output one way or another.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hermes-lite/5d667e43-84ed-498b-8ad4-6c47a92f4c21n%40googlegroups.com.

Ron Lewkowicz

unread,
Mar 14, 2024, 2:11:24 PM3/14/24
to Hermes-Lite
Well, I just wanted to comment on Steve's post and share that creating a near real time monitor on any computer is not exactly a simple thing. 

I'd call latency in SDR more of a necessary evil than a feature, but I suppose you could consider it a tool that can be used to compensate for slower systems or network issues. When you are trying to monitor your audio signals "live" it takes very little latency to mess with your brain. If it's just for preventing drop outs during TX and RX it's less of a concern, however if the buffers are large you'll run into issues "doubling" perhaps.

I get that some would want to make CW work with their SDR if that is their only radio.  Unless I'm missing something I don't see an advantage to CW on an SDR.  For SSB and digital absolutely. I would have thought a CW enthusiast  would be more likely to choose an analogue radio, but yes I know little about CW.

Max

unread,
Mar 14, 2024, 6:32:25 PM3/14/24
to Hermes-Lite
And hence the The CW Shield/Keyer project......... solves all of these issues for an "average" CW op:


Of course for those that want full break in at 30+ wpm then you are probably correct. SDR certainly does not really lend itself fully to that for sure. 

For someone like myself who manually switches PTT (via footswitch) or uses semi break-in at up to about 25 wpm then the functionality of having everything all on the same machine (logging, Skimmer and radio) with multiple monitors has great appeal. Hoping it's possible (due to noble efforts of Ramon) for CW Keyer to reach production.

73

Max

Bertalan Eged

unread,
Mar 16, 2024, 3:45:52 AM3/16/24
to Hermes-Lite
I was not aware of this CWKeyer project, so thank you for sharing
is this hardware available somewhere?
/B

Max

unread,
Mar 16, 2024, 6:25:16 PM3/16/24
to Hermes-Lite
This project has quite a lot of history over several threads. I may have misleadingly implied that this is readily available hardware, which it is not yet (quite) unless you want to build it yourself from the information on GitHub. Maybe have a look at these threads for some of the history:

https://groups.google.com/g/hermes-lite/c/T6g6Vv38S0c
https://groups.google.com/g/hermes-lite/c/-28IlWfIoeA

Christoph's keyer software for flashing into the hardware (Teensy):
https://github.com/dl1ycf/TeensyWinkeyEmulator

Ramon KP4RX was in the process of seeing if it was possible to run a batch of the keyers at Makerfabs which many people expressed an interest in. Hopefully this may still happen. There is some programming of the Teensy required to get basic Winkeyer compatibility (see the Keyer Github project I referenced in my last post and also the above link to Christoph's key software) but my understanding is that further work is required to get all of the other audio functionality from the hardware which may be somewhat tricky for some users (including myself!). For that part, for those of use with zero programming ability, it is perhaps a case of "await further developments".

For me personally I am mostly interested in the keyer and not so much the audio features (apart from the sidetone of course).

73

Max

Steve Haynal

unread,
Mar 16, 2024, 9:26:21 PM3/16/24
to Hermes-Lite
Hi Nuno,

If you have a keyer which is generating a tone, then an inexpensive audio mixer is an option to mix RX with the sidetone. Some sound cards will do that. Connect the sidetone to one of the inputs and use direct monitoring. There were several other good suggestions in this thread, like use a a second receiver or SDRConsole.

Someone commented about VAC and I don't understand why that would be used for audio to and from a sound card. I did a little googling and it appears Thetis finally has ASIO support:

73,

Steve
kf7o

Nuno Lopes

unread,
Mar 16, 2024, 9:49:27 PM3/16/24
to Steve Haynal, Hermes-Lite
Hi Steve, thanks for the info.

In my case probably will go to the external sound card route, with the UMC202HD or a PreSonus Studio 24c/26c.

The reading I've been made, they use Voicemeter Banana/Potato, to route the audio from Thetis to external programs, like MSHV, Cwskimmer, and SSB macros for the contest, etc .. it's just about routing the audio to all the programs.

73,

      Nuno, CT2IRY

G4ZAL

unread,
Mar 17, 2024, 5:34:59 AM3/17/24
to Hermes-Lite
Hi Steve,

You are correct that Thetis for Anan now has ASIO (so called cmASIO) and it does work very well with no discernable latency on SSB even when using MONitor (I'm not a CW guy).
I have an Anan 200D and use Thetis + Behringer UMC204HD + Voicemeeter Banana with 3 possible hardware audio inputs.
This combo is used for Thetis for Anan and Thetis for HL2 and gives superb audio although I have to use VAC + Windows audio driver for HL2.
The big BUT here is that cmASIO requires Protocol 2.

So, if HL2 can be made to work with P2 (or somehow 'fake it') then cmASIO will not currently work with HL2's P1 (I have tried both Thetis for Anan and the latest Thetis for HL2).
Maybe Reid could chime in here as well?

Nigel, G4ZAL

Reid Campbell

unread,
Mar 17, 2024, 6:27:04 AM3/17/24
to herme...@googlegroups.com
Hi Nigel, Steve,

I don't know much about the cmASIO facilities or how it's interfaced to Thetis. It's something I will look into in the future but my main focus is the integration of the HL2 code changes into the official Thetis codebase.

I believe that you can enable cmASIO in windows and it becomes a selectable option in the VAC drop downs? Maybe somebody could try that and report their experiences.

Cheers

Reid
Gi8TME/Mi0BOT

G4ZAL

unread,
Mar 17, 2024, 7:33:31 AM3/17/24
to Hermes-Lite
Hi Reid,

Main Apache-Labs thread on cmASIO

I did have to update my Anan 200D to P2 as it would not work on P1.

cmASIO is setup by a Windows registry key and VAC is no longer needed (you cannot select cmASIO in audio options) as cmASIO is autoselected and appears on the lower right frame of Thetis for Anan (image attached).
I have tried cmASIO Thetis on my HL2, but as HL2 is P1 it does not work even though the indicator appears in Thetis (highlighted by red square in image below)...

cmasio.jpg

Sorry if this has gone a bit off CW sidetone topic.

Nigel, G4ZAL

Reid Campbell

unread,
Mar 17, 2024, 7:47:15 AM3/17/24
to herme...@googlegroups.com
Hi Nigel,

I download a program, hostsamples.exe, which showed I didn't have an ASIO drivers. I then found ASIO4ALL and installed it, so I how had something that looked like a ASIO driver which showed up in the Thetis VAC menu.

I couldn't get ASIO4ALL to interface with any of the sound cards on my laptop,so I didn't take it any further as HL2 integration is my priority at the minute.

Cheers

Reid
Gi8TME/Mi0BOT  

G4ZAL

unread,
Mar 17, 2024, 8:48:25 AM3/17/24
to Hermes-Lite
Hi Reid,
No worries.
I really don't think cmASIO is going to work for HL2 whilst it is using Protocol 1.

I can get your latest HL2 v2.10.3.5-beta1 release to recognise cmASIO, so at least Thetis for HL2 is cmASIO 'ready' ;-)

cmasio-hl2.jpg

Nigel, G4ZAL

Steve Haynal

unread,
Mar 17, 2024, 9:59:21 PM3/17/24
to Hermes-Lite
Hi Nigel,

What is the exact dependency between protocol 2 and cmASIO? Since this is mainly a audio connection between software and sound card, I am surprised there is such a dependency.

73,

Steve
kf7o

Reid Campbell

unread,
Mar 18, 2024, 4:24:04 AM3/18/24
to herme...@googlegroups.com
So was I. Yet another rabbit hole to go down.

Cheers

Reid
Gi8TME/Mi0BOT

G4ZAL

unread,
Mar 18, 2024, 5:52:43 AM3/18/24
to Hermes-Lite
Hi Steve, Reid,

I don't know 'why' either so I did more reading on the Apache-Labs forum and found this by Bryan, W4WMT the developer of the cmASIO feature...
"Due to the single-threaded nature of protocol_1, it will never be able to support the high-performance requirements of cmASIO."
Taken from the 2nd post down, here

See also the (currently) last post by Dan, KM6CQ in the above link re: HL2
I will be adding a comment in the thread once my forum application is approved...

Sooo, dare I ask, is it possible to make HL2 Protocol_2 compliant?

Nigel, G4ZAL



"Christoph v. Wüllen"

unread,
Mar 18, 2024, 6:06:17 AM3/18/24
to G4ZAL, herme...@googlegroups.com
This has nothing to do with P1.

The point is whether a "real-time quality", e.g. jitter-free delivery of audio signals
can be guaranteed. In principle, this *cannot* be guaranteed for RX audio,
but for the CW side tone the situation is better.

So what is possible (at least in theory):

a separate thread generating the side tone and sending it with very low
latency to the audio hardware, and modulating the side tone with
a e.g. a global "key-down" variable.

This is entirely separate from radio, protocol, or whatever aspects.
You could even have a separate program running on the computer just
for side tone generation, provides that there is some sort of
communication channel for transferring the key-up/down events.

If you ask me, this is all far too complicated compared to a
hardware solution.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hermes-lite/8ba956eb-d403-42c0-b8c0-826c1e5b23e2n%40googlegroups.com.

r webby

unread,
Mar 18, 2024, 6:35:17 AM3/18/24
to Hermes-Lite
I don't understand. Why can't you use the ASIO that portaudio provides?

"Christoph v. Wüllen"

unread,
Mar 18, 2024, 7:36:33 AM3/18/24
to r webby, herme...@googlegroups.com
Why is this so difficult to understand?

If you want low-latency audio output, then you must deliver
the audio samples continuously, and guarantee to have
the next batch "ready just in time" when it is due.

This is not the case with SDR applications, which depend on
network transfer from the radio, processing with DSP where the
process might not get the time slice early enought etc. etc.

So what do you do when the next batch of audio is due but
it is not yet ready?

To avoid this, you produce some audio "in advance" and keep it in a buffer,
in oder not to stand there with empty hands when the next batch
of audio is requested by the low-latency driver.

This is why I call latency a "feature" not a bug.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hermes-lite/85f0ec72-766a-4d80-abb8-214cabe2174cn%40googlegroups.com.

r webby

unread,
Mar 18, 2024, 8:01:49 AM3/18/24
to Hermes-Lite
Cheeky! It is not _difficult_ to understand. It is not a mode I am familiar with, hence the genuine question.  Snarkiness not required, thank you!

ASIO latency is minimal, in the order of tens of milliseconds, even accounting for the necessary buffering of the network samples.
So really, I am asking if tens of milliseconds is a problem for CW sidetone ops?

Genuine question, I hardly ever use CW myself, but I am able to monitor myself on fone in almost real time with barely any perceptible echo,  using the ASIO provided by PortAudio. So why the need for some custom implementation of cmASIO? That's what I don't understand.

I agree that some latency is 'necessary' (I would not call it a feature) and expecting realtime _anything_ across a network connection is madness, but how much latency can a CW op tolerate on side-tone?

Steve

ron.ni...@gmail.com

unread,
Mar 18, 2024, 9:45:29 AM3/18/24
to Hermes-Lite
iOS devices are popular among musicians because the native audio IO is a real-time process (down to 1 to 5 mS slices on newer devices).  I use that real time audio thread in my iOS/iPhone SDR app for the HL2, and feed it with a non-blocking circular fifo/buffer. If there's no data available from the radio demodulator thread, instead of blocking the real time audio thread, I just "conceal" the network jitter by outputting silence and later skipping a block (there are better concealment strategies, but I haven't finished implementing them yet in the HL2 SDR app).  So using real time audio with HL2 Protocol 1 is possible.  My various iOS audio apps have been available from the App store for over 10 years, and I have never received a real-time audio related crash dump, IIRC.  73, Ron, n6ywu

"Christoph v. Wüllen"

unread,
Mar 18, 2024, 10:37:07 AM3/18/24
to r webby, herme...@googlegroups.com

>
> ASIO latency is minimal, in the order of tens of milliseconds, even accounting for the necessary buffering of the network samples.
> So really, I am asking if tens of milliseconds is a problem for CW sidetone ops?
>

That is the problem with the whole thread. People discussing CW who do not do CW.

Imagine CW at 24 wpm (for CW enthousiasts, this is not fast),
then the dot length is 50 msec.

If you want to send a letter "V" with the paddle and hear the third dot
"some tens of milliseconds" too late, then you will remove the pressure
from the dot paddle "some tens of milliseconds" too late, and this
easily leads you to a region where the keyer sends a "4", since if
you still press after the dot is over, the keyer might advance to
the next element.

50 msec delay is (in my personal experience) the maximum one can
tolerate, and then there are CW ops which go up to 35 wpm ....


Yours,

Christoph




"Christoph v. Wüllen"

unread,
Mar 18, 2024, 10:41:19 AM3/18/24
to ron.ni...@gmail.com, herme...@googlegroups.com
Believe it or not, sometimes the audio from the demodulator comes in bursts,
and your "concealing" introduces audio cracks no one wants.

For the audio, being decent comes ahead of being real-time. AND, the data
is usually collected in bunches, then fed to the DSP engine, then one gets
the result in buches, ....

which means that there is a considerable "antenna to demodulator output" delay,
so why bothering with the last element of a weak chain?

For CW sidetone this is different (as I said) because at least in principle
you can generated this under real-time conditions.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hermes-lite/f7eb6915-cbf2-4ef8-8ff0-2e92dbb83cb0n%40googlegroups.com.

ron.ni...@gmail.com

unread,
Mar 18, 2024, 12:33:58 PM3/18/24
to Hermes-Lite
If you are asking about my iOS HL2 SDR app on a direct wired ethernet connection, there are no bursts that cause audio cracks, AFAIK.  I observe the network jitter (including OS driver stack, etc.) on a direct wired (no routers or switches) ethernet connection to an iPhone to be less than +-1 mS.  My demodulator works directly on 2.625 mS slice groups of UDP data. So a 5.3 mS latency real-time audio thread easily provides non-cracking low latency audio. The iOS app could likely go even lower in latency (and might, once I figure out how to instrument and measure that latency). Now, yes, on a more jittery network route (WiFi, remote, et.al.), there will be a few initial cracks before the dynamic network receive buffer sizing can (re)adapt to cover that worse amount of jitter.  But that amount latency jitter, if over +-10 mS with stock HL2 settings, will also break up HL2 Tx, rendering that network route useless for CW (without a colocated re-encoding relay server, such as the hl2_tcp I have available for CW beta testing). 
73, Ron, n6ywu

Reply all
Reply to author
Forward
0 new messages