What’s
New in cocoaModem 2.0 v0.27
Kok
Chen, W7AY [w7ay@arrl.net]
Last updated: July 1, 2006
Click here
for the previous (v0.26) What’s New page.
What has changed in v0.27 ?
The PSK and Wideband RTTY interfaces have a new waterfall click behavior. PSK now prints the full 8-bit extended ASCII character set. Each interface can now select its own PTT mechanism. cocoaModem can now directly use the PTT on the microHAM keyers using a new µH Router application. cocoaPTT now terminates when cocoaModem quits. Transmit mode watchdog timer can now be disabled. Shift-click in the waterfall now disables the Hellschreiber receiver. Text is converted to plain text when they are cut from the text views into the pasteboard. RTTY and SITOR-B Bell have been reconnected.
Internal changes include buffering of all streams in the AudioInterface framework. Audio devices are disconnected before the computer is put to sleep and reconnected when the computer wakes up. HF-FAX releases memory when not selected.
Click Buffer
With version 0.13, cocoaModem 2.0 introduced the concept of a click buffer for the PSK interface. The click buffer is a temporary audio buffer memory that is created when a signal is first clicked on the waterfall, the full audio bandwidth signal is recorded into this buffer while the PSK decoder is trying to acquire lock on the incoming signal. Once phase lock is achieved, the buffer is played back, but at a higher than real-time speed, until the buffer catches up with the incoming audio stream. If the signal has not drifted in phase, cocoaModem will print the signal from the instant that you clicked on the signal instead of waiting until phase lock is achieved before its starts to decode and print the incoming audio stream.
Starting with this (v0.27) release of cocoaModem, the click buffer concept has been extended. In addition to the PSK interface, the new click buffer mechanism now works also in the wideband RTTY interface.
Both the Wideband RTTY and PSK interfaces now maintain a constant 20 seconds (approx.) worth of audio buffering. When audio samples are received from the sound device, they are copied into this ring buffer (which behaves like a "tape loop" on old fashioned tape recorders). At any point in time, there is always 20 seconds of "history" that is buffered.
As before, when the waterfall is clicked, the horizontal position of the click is translated into a frequency offset to use for filtering and demodulation. The vertical position of the click, which was ignored before, is now captured as a time parameter. This parameter is then translated into a position in the audio ring buffer. Instead of feeding the current input audio samples to the demodulator, the audio samples from the buffer is played back into the demodulator at up to eight times normal speed until the decoder finally catches up with real time data. The actual speed up will depend on how fast your computer is, but even a 500 MHz iBook will catch up with real time data pretty rapidly.
If you click at the bottom part of the waterfall, you will start demodulating the most recently received stream. If you click towards the top of the waterfall, as long as you have not moved the VFO dial on your radio in the meantime, you will be demodulating a signal that first appeared about 20 seconds ago. If you click halfway up the waterfall, the demodulating will start from about 10 seconds ago.
In effect, what results is a true WYSIWYG waterfall clicking. Demodulation will start from the place that you have clicked in the waterfall even if the signal has stopped transmitting by the time you'd clicked on the waterfall trace.
Extended ASCII in PSK
v0.27 opens up the upper 128 positions of the "extended ASCII" character set in the
PSK interface, using the same character mapping that
Windows XP uses. This means that the PSK interface will
now print the alphabet sets from some European
languages. Additionally, I have mapped the MacOS's
option-shift-2 (the Unicode euro symbol) to one of the
Windows font mapping. Since there are multiple Windows
mappings (depending on the font set) this will only
produce a unique euro symbol for certain Windows font.
However, the euro symbol will always work between two
computers that are running cocoaModem.
In the past, whenever a decoding error causes a 7-bit ASCII
character to decode into the upper positions of the
extended ASCII table, that character is discarded and not
printed. By allowing the upper 128 extended ASCII
characters to print, these errors will now show up on the
screen. As a result, when the signal is weak or noisy, more
misprints will now appear on the screen.
microHAM Keyers
I have written a MacOS X router program for the microHAM keyers (microKEYER, DIGI
KEYER and CW KEYER) and cocoaModem can now use the
router to perform hardware push to talk. Like cocoaPTT,
the µH Router is a stand alone program. The unique
feature of this router is that it allows different
applications in MacOS to share the functions of a
physical keyer. If applications are written to go
through this router instead of interfacing directly with
the physical keyer, one application could be controlling
the CAT port while another is using the CW memory keyer,
while a third application is using the PTT on the keyer,
for example. Just like the case of cocoaPTT, you will
have to download the router application separately to
use it. You can find out more at the µH Router's page.
PTT handling
Before v0.27, PTT was selected globally from the preference
panel. If you'd elected to use cocoaPTT, you had to use cocoPTT in
all of cocoaModem's interfaces. Just as each modem
interface in cocoaModem can choose its own audio D/A
converter, starting with v0.27 you can now also select a
different PTT mechanism in each interface's transmit
configuration panel - this allows you to use VOX for PSK
and cocoaPTT for Hellschreiber, for example.
After downloading cocoaModem 2.0 v0.27, be sure to go to
the transmit config of each modem interface to set up the
PTT menu. These PTT selections will be saved to your plist
file when you exit cocoaModem.
The behavior of cocoaPTT has changed slightly. You never
had to start cocoaPTT by yourself - cocoaModem launches
cocoaPTT for you the first time you use it. However,
cocoaModem used to leave cocoaPTT in the dock when it
quits. This is not really a problem since cocoaPTT uses
very little real memory, nevertheless it adds clutter to
the dock. With v0.27, when cocoaModem quits, cocoPTT is now
sent a termination message.
Watchdog Timer
Like many hardware modems (and PTT control in external
devices such as the microKEYER), cocoaModem has had a built
in watchdog timer to prevent indefinite key downs. There is
now a checkbox item in General Preferences that allows you
to override this watchdog timer. Please be aware that there
may be regulatory requirements to use a watchdog timer when
you are operating a modem remotely (e.g. FCC Part 97.213). Keep the watchdog timer
enabled if you are using cocoaModem through Apple Remote Desktop, for example.
Hellschreiber Receiver Disable
Prior to v0.27, when the Hellschreiber receiver was started
by clicking on the waterfall, there is no way to stop the
receiver. A Shift-click in the waterfall will now stop the
receiver.
Cut and Paste Behavior
When cutting and pasting from a text view, the default
behavior for Cocoa interfaces is to carry all text
attributes (fonts, color, etc) to the clipboard. This means
that if you are using a light color for your text on top of
a dark background, the light color will be carried with the
cut operation and may not show up when you subsequently
paste it somewhere else that has a white background (many
editors have a "convert to plain text" option, but that
involves an extra step). From v0.27 onwards, cocoaModem
will always reduce all text that is cut from its text views
into plain text. It will appear as plain black text when it
is pasted.
Reconnected BEL chimes
The BEL chimes were inadvertently left out between
cocoaModem 1.0 and cocoaModem 2.0. It is now reincorporated
for the RTTY and SITOR-B modes. Be sure that you have the
Mute Bell checkbox in the RTTY receiver configurations
selected if you don't want any bells to sound (especially
when receiving a noisy signal).
Please note that you must check the
Mute Bell checkbox in every RTTY Receiver Config panels if
you are using the system audio output to drive your radio
and you are also using VOX. If not, any BEL character that
is decoded in one of the RTTY modes will cause the chime to
go out on the air.