[Elecraft] K3 choppy CW
Kok Chen
chen at mac.com
Thu Feb 26 10:55:25 EST 2009
On Feb 26, 2009, at 7:01 AM, Brian Alsop wrote:
> I think it is a bit ironic that for RTTY, external TNC's have become
> passe in favor of direct computer decode/encode.
Just a property of how computers handle audio.
USB Sound Cards go through what are called Isochronous Transfer of
USB. These are handled by very high priority tasks, with sufficient
audio buffering in the kernel ensure that there are no audio drop
outs. Ditto FireWire sound cards, and on-board codecs.
This is one reason why I had implemented CW in cocoaModem by using J2A
emission (i.e., audio generated CW) instead of A1A emission. It is
the only way, short of using WinKey for A1A keying, to ensure that
kernel swaps do no interfere with inter-element Morse spacings. (J2A
also allows one to implement arbitrary waveshaping of the "keying"
waveform. cocoaModem uses a Blackman window to waveshape the CW pulses.)
Now, the ironic part is that older operating systems such as MS-DOS
and Mac OS 9 work fine with A1A "bit banging" up to very high CW
speeds. With today's computers, assuming you can still run those
operating system, you can probably run 1000 wpm and still achieve
close to perfect Morse inter-element timing.
The problem with modern operating systems is that whatever that is
running in "user space" can be preempted by the kernel. A key-up or
key-down could therefore be delayed just slightly -- but often
perceptible by an ear listening to the CW.
One way to get around modern operating systems is to write a Morse
"device" to run in the kernel (for example, running a WinKey emulator
in the kernel). For Mac OS X, this would be a "kernel
extension" (kext). Running as a kernel process comes with the
associated complexity and dangers (a bug can cause the entire computer
to crash).
The µH Router, which I wrote for Mac OS X to allow different programs
to share a microHAM keyer, actually has a built in "WinKey" emulator,
for use with the digiKEYER that does not have a built-in WinKey chip.
However, this emulator runs in user space, and now and then you can
hear a Morse element being stretched so the rhythm is not perfectly
right all the time when running CW even at a slow 25 wpm, even on a
dual core computer and even when the emulator is running on a separate
high priority (user) thread.
73
Chen, W7AY
More information about the Elecraft
mailing list