cocoaModem

What’s New in cocoaModem 2.0 v0.70 thru v0.79

Kok Chen, W7AY [w7ay (at) arrl.net]

Click here for the previous (v0.50-v0.69) What’s New.




What has changed in v0.78 (+ v0.79)?
(November 16 and 17, 2009)

  • cocoaModem now includes an Aural Monitor for the wideband RTTY, Dual RTTY, LiteRTTY, PSK and LiteRTTY Interfaces. In the past only the CW and the Synchronous AM interfaces had audio for montoring.

    pskexample

    The CW Aural channel and the Synchronous AM output now make use of this common Aural Monitor.

    Please look here for details.

    The aural monitor allows you to listen to the received signal through a sound card (e.g., the built-in Macintosh speakers) while filtering away other signals in the passband. Various options are avialble to listen to the receive tone(s) as is, or to center the tone(s) at a fixed frequency. The monitor also allows the original wideband signal to be mixed with the received signal, but with an attenuated level.

    The aural monitor hears what the demodulators hear. You can, for example hear how much interference is coming from a nearby station when the different RTTY filters are selected.

    Transmitted signals can also be monitored, both at the orginal tones or at fixed tones.

  • cocoaModem's audio interface to Mac OS X Core Audio has been rewritten to avoid using the AudioStreamBasicDescription structure of Core Audio to change parameters. Changing sampling rate through the use of AudioStreamBasicDescription has become very slow and unreliable on Snow Leopard.

  • Between the above and additional checking for redundant sampling rate changes, the launch time for cocoaModem should be much improved.

  • cocoaModem now watches for sound card changes (volume, source selection, etc) made by the system or by other applications. When cocoaModem is sharing a sound card with other applications, the level sliders in cocoaModem now track changes made by other applications. The audio level sliders in the different modem interfaces now also track one another.

  • The %n macro has not been working since v0.70. This macro should now work. Many thanks to Yas, 7N4WPY for reporting the bug.

  • Fixed a bug that required more than one modem interface to be selected in cocoaModem's preferences for the modem to finish initialization. One symptom of the bug was the waterfall labels are wrong.

  • Fixed a SITOR-B Receiver bug. Thanks to Pierre Bessot for reporting the problem. (v0.79)

  • Fixed a plist bug for the CW interface.


What has changed in v0.77?
(November 9, 2009)

cocoaModem was crashing on startup on some machines that run Mac OS X 10.6 (Snow Leopard), while it is fetching the plist entry for the microHAM setup string.

Many thanks to Dan K2VOL and Tony KE6G for sending me the CrashReporter outputs that identifed this problem.


What has changed in v0.76?
(October 5, 2009)

Changes are made to improve the stability of cocoaModem in Mac OS X 10.6 Snow Leopard, viz: a workaround for a Snow Leopard Core Audio problem, the bundle identifier is changed to avoid an incompatibility, and autorelease pools are no longer drained.

cocoaModem 2.0 v0.76 is no longer split into separate frameworks. Further, general bug fixes are made to the varicode base class and the Sync-AM interface. The RTTY Monitor now works again. Launch and modem interface switching times are improved. More workaround for a paricular third party Core Audio plug-in.

  • Snow Leopard's Core Audio introduced a bug where it returns from a call to set sampling rates without updating the correct sampling rate that is subsequently queried unless the calling program has relinquished the thread.

    This does not pose a problem with programs that do not bother to validate the sampling rate after setting it. However, cocoaModem had requested the actual sampling rate to set up further decimation ratios that are required by each modem. This caused the sampling rate at the modems to be wrong (incorrect shift in RTTY, PSK31 signals in the waterfall to appear too wide or too narrow, for example) unless you relaunch after changing the sampling rate.

    v0.76 has been modified to not depend on the sampling rate that Core Audio sends back, and to blindly assume that the sampling rate change request had worked.

  • The application bundle name has been changed from w7ay.cocoaModem 2.0 to w7ay.cocoaModem-2.0. Snow Leopard's bundle name no longer accept spaces. To maintain compatibility, the plist is hardcoded to keep using w7ay.cocoaModem 2.0.plist as before.

  • Because of a change in memory management in Mac OS X 10.6, when it detects that it is running in Snow Leopard, cocoaModem no longer drains the auto-release pools periodically for long running threads.

  • cocoaModem 2.0's Xcode project has now rolled the cocoaModem frameworks (AudioInterface, CoreFilter, CoreModem and NetAudio) back into the Application itself. Xcode compiling time has improved to the point where is it not worth splitting off the code into frameworks -- with Xcode 3.2, the entire cocoaModem code can be built in 80 seconds on an 8-core MacPro. This means that from v0.76 on, you can delete copies of the four frameworks from /Library/Frameworks since they are no longer used.

  • An array overrun problem is fixed for modems that uses varicode (PSK31, MFSK16 and DominoEX). This was showing up as misleading malloc related Console messages in Snow Leopard.

  • The Sync-AM waterfall has not been working since the waterfall class was modified for DominoEX. It was causing a misleading location of the AM carrier. This is now fixed. Thanks to Mika OH3XX for pointing out the problem.

  • For some time, the Matched Filter (MFilter) selection in the RTTY Modulator (Window menu > RTTY Monitor) has not been functional. This should now work again. The Wideband RTTY Interface can also now use the RTTY Monitor.

    When the Matched filter, ATC or Baudot plots are selected, the RTTY Monitor now automatically switches to using a waveform output since a spectum output makes no sense in those contexts.

    As a reminder, you can see the effect of the various RTTY filters in the band pass filter (BPF) setting of the RTTY Monitor when the viewing the signal as a spectrum. The RTTY filters (Narrow, Normal, Wide, Soft, HPF) are selected from the main window of the RTTY Inteface and from the Aux window of the Wideband RTTY Interface. The BPF selection of the RTTY Monitor allows you to see the behavior of various filter widths when there is nearby interference. The Input selection of the RTTY Monitor shows the spectrum before cocoaModem applies the band bandpass filter. The ATC display lets you see the effect of the automatic threshold correction when the input signal is selectively fading.

  • Some improvements have been made to the launch time of cocoaModem. Sampling rate changes are only made when needed and the Viterbi decoding table for QPSK31 is now precomputed into a string array.

  • To reduce cocoaModem crashes that were caused by third party Core Audio Plug-ins, a timer is now used to defer removal of the Core Audio IOProc (there is one poorly written third party plug-in that keeps calling an IOProc in cocoaModem even after Core Audio is told to remove the IOProc). If an IOProc is used again before it is removed by the timer, cocoaModem will reuse that IOProc and keep the IOProc from removal.

  • For sound cards that don't implement digital attenuation, the attenuator in cocoaModem now snaps to the 0 dB position instead of to other fixed values that are returned by the sound card.

    For sound cards that do implement digital attenuation, the attenuation range in cocoaModem now matches more closely the sound card's attenuation range. Please not that some sound cards' attenuation are quantized to rougher values than the slider in cocoaModem. Because of that, you might now find the slider snapping slightly away from the position you had left it. The slider snaps to the true attenuation value that is returned by the sound card.


What has changed in v0.75?
(September 20, 2009)

  • Fixed an issue that can cause a crash during launch on Mac OS X 10.6 Snow Leopard.



Mac OS X 10.6 (Snow Leopard) Compatibility
(August 28, 2009)

  • cocoaModem 2.0 is compatible with Snow Leopard.

  • You'll need to check whether your sound card drivers are compatible with Snow Leopard.

    If you are using the built-in sound device or a USB class compliant sound card, they should function under Snow Leopard (and thus cocoaModem). I have tested with 16 bit USB class compliant devices such as the Griffin Technology iMic and the sound card that is in the microKeyer II, and they work fine. If you are using 24-bit sound cards, be sure to check with the manufacturer to see if you need an updated driver for Mac OS X 10.6.

    Even though M-Audio's web site mentions having to wait for driver updates, I have found the Transit and Fast Track Pro (both are M-Audio 24-bit sound cards) to work fine using their Leopard drivers.

  • If you are using cocoaPTT, be sure to check with the manufacturer that their serial drivers will work with Mac OS X 10.6 . I can confirm that both the KeySpan USA19 and the FTDI drivers for Leopard also work with Snow Leopard.

  • µH Router works (I have been using the microKeyer II) in Snow Leopard with the existing Leopard FTDI driver.




What has changed in v0.74?
(August 17, 2009)

  • Fixed an MFSK initialization bug that can cause a crash during launch time. Many thanks to Juergen KI6TBK for reporting it.



What has changed in v0.73?
(August 11, 2009)

  • tuning

  • DominoEX modems are now implemented in cocoaModem's MFSK interface.

  • Added a time delay between AudioStopDevice and AudioDeviceRemoveIOProc to avoid a bug in a third party Mac OS X Core Audio plug-in.

  • Waterfall noise reduction (NR button) states for PSK, Wideband RTTY, CW and MFSK interfaces are now saved to the plist.

  • Added an option to use 425 Hz deviation and increased the buffer size in the HF-FAX interface to accommodate DWD HF-FAX stations (DDH und DDK).




What has changed in v0.72?
(June 17, 2009)

  • check

  • There is now a quick check on the web to see if your copy of cocoaModem is up to date. Please note that you have to manually check for updates. cocoaModem will not pester you by itself.

  • cocoaModem now checks for both Unicode and ASCII names of the sound card. The RME FireFace was not returning the Unicode name.

  • The character ~ (ASCII 0x7e) is now allowed in macros. The UTF-16 code for some Japanese characters include the byte 0x7e, causing macros to fail when imported from the plist. This should now be fixed. Please note that if you include the ~ character or a Japanese character in your macros, your plist may no longer be compatible with previous versions of cocoaModem.



What has changed in v0.71?
(June 10, 2009)

  • option

  • Shift-JIS (Japanese encoding) is now disabled unless (a) you are running Japanese Mac OS X, or (b) you have enabled the Shift-JIS checkbox in the PSK tab of the cocoaModem Preferences (see above). Disabling the checkbox should prevent any accidental switching to double byte reception or transmission when when you are not running Japanese Mac OS X.

  • Slashed-zero was not working in v0.70. Thanks to Greg, WA0BNX for reporting it.



What has changed in v0.70 ?
(May 27, 2009)
  • JA

  • cocoaModem is now localized for Japanese Mac OS X. Heartfelt thanks to Nao, JF1WWZ for creating the numerous Japanese NIB files. Nao also created the Localized strings with the help of Taka, JR3TVH. Thank you to both.

  • JAtxRx

  • The PSK31 interface now supports Japanese Shift-JIS double byte reception and transmission. Please see Japanese Reception and Transmission section in the PSK section of the User's Manual. Again, a big thank you to Nao, JF1WWZ for help with testing the interface.

  • hello

  • For debugging and other purposes, the PSK31 interface can now be set to display raw byte values.

  • Set the Sdef file to again support AppleScripts on Mac OS X 10.4 Tiger format. Thanks to André, 2E0SKI for spotting and reporting the problem.



Click here for the previous (v0.50-v0.69) What’s New.