cocoaModem

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



euro

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

router

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

PTT

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

watchdog

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

mute

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.