0.1.0.013 Application Changes

  • Added transmit capabilities for modes except CW. CW requires me to write an oscillator, which I have not done yet. Due to the operation of the keyer, this code may not be added until the DSP rewrite is complete. There are controls in the preferences pane for microphone gain and transmitter gain (the transmitter gain is only currently designed to work with Penny, not Hermes). The transmitter is currently locked to the frequency and filter of the main receiver. These will be able to be set independently in future versions.
  • Fixed a bug with the pandadapter that was breaking the drag-to-tune feature.
  • Reworked the smoothing code for the panadapter so that it uses FFT convolutions with the filter kernel. This gets rid of the nasty frequency offsets that were happening and also makes the edges smoother.
  • Added a signal level offset for the receiver. This should allow you to adjust the levels you see against a calibrated source.

0.1.0.012 Application Changes

  • Added bandstack registers. The band buttons in the "Main Reciever" window now work. Each band has three stackable memories that activate when you press the appropriate button. The memories remember the following parameters for both the main and subreceiver:
    1. frequency
    2. filter frequencies
    3. mode
    4. AGC
    The memory also stores the state of the preamp
  • Added a bandplan data file that displays on the panadapter and bandscope. Ham band show up with a light green background on both.
  • Reimplemented the waterfall and pandapter as Core Animation layers. This means that we only redraw the tick marks and filter/frequency infromation when it changes rather than every time we draw the loop. Core Animation worries about compositing the layers.
  • Implemented the pandadapter line as a CAOpenGLLayer instead of using NSBezierCurve. This makes things a lot faster, and allows for some interesting new potential features.
  • Changed the update interval of the panadapter and waterfall so that we are displaying them at a full 30 frames per second. This makes things look a lot smoother.
  • Made the panadapter and waterfall able to be zoomed. There is now a small slider at the upper right of the panadapter and waterfall displays that controls the zoom level of the dispalays. This should allow folks to see narrow CW filters better.
    NOTE: The zoom is locked to be centered on your main reciever frequency. This means that you may move your subreceiver out of the visible area. Dragging the display does not scroll the display, it changes your main frequency, just like at minimum zoom. I may look at implementing scrollbars later to solve this.
  • Also performed some general code cleanup and streamlining in places that should make performance better.

0.1.0.011 Application Changes

  • Added a rudimentary control for the open collector outputs on Penelope to support Gerd's Hercules in receive mode. This mechanism will get more advanced with a ruleset functionality in the future.
  • Fixed a bug with the panadapter where it would not change correctly when the sample rate was changed.
  • Fixed a bug where hardware preferences were not being propagated properly to the hardware.

0.1.0.010 Application Changes

  • Created a high and low level setting in the prefrences panel for the bandscope.
  • Forced the endpoint 4 initialization to always happen after the endpoint 6 initialization and this should hopefully prevent the problem I've been experiencing on my laptop where ep6 won't initialize correctly.
  • Changed the way we were calculating the smoothing on the panadapter to use the vDSP code in Apple's Accelerate library. This should hopefully be more efficient and get a better result.

0.1.0.009 Application Changes

  • Implemented a waterfall/panadapter display that switches their places.
  • Implemented a control for Mercury's preamp
  • Coalesced the display update threads for the panadapter/waterfall/bandscope to use a single thread rather than separate ones.
  • Changed the bandscope to use vDSP's FFT rather than fftw.
  • Changed various places in the code to use vDSP's vector functions which have the possiblity of using SSE vector code for improved performance.
  • Made first stage of changes to DttSP. Continued work may be done in a special branch and probably won't be released in binary form until complete.

0.1.0.008 Application Changes

  • Made the filter presets vary by mode. CW filters will be much narrower than the SSB and AM stuff. This is stored in a plist so that it can be changed relatively easily.
  • The subreceiver meter now reads zero when it's off.
  • Fixed up the preferences panel so that the toolbar works correctly.
  • Moved the panadapter and waterfall settings to a preferences panel.
  • Made a softare update preferences panel so that you can manipulate the Sparkle Updater settings
  • Added an AGC popup menu for both the subreceiver and main receiver.
  • Implemented a bandscope. This is a fixed height and has no real controls other than click-to-tune capability. The current frequency shows up as a red line.
  • Rewrote the waterfall as an NSOpenGLView widget. This significantly increases the performance and brings the waterfall up to real time views.
  • Made both panadapters use the Core Animation toolkit so that the updates don't happen on the main thread. This makes things a lot snappier and the updates look smoother.

0.1.0.008 Known Issues

  • The waterfall has a "twinkling" look to it. I think this is because of how OpenGL is scaling the texture on the plane. I will look into it more as I learn about OpenGL.
  • The OpenGL drawing happens on the main application thread. This can cause problems with the update interval, and lagging the main thread. I will move the OpenGL updates to their own thread in the future.

0.1.0.007 Application Changes

  • Implemented the Subreceiver of DttSP. This is the software subreceiver, not the one implemented in Mercury, so you can't go outside of the passband. There is a new subreceiver window to control it. The subreceiver has its own independent mode, filters, frequency, pan, and volume controls.
  • Made changes to the panadapter to support the subreceiver.
    • The subreceiver now shows up on the panadapter in a blue color. The carrier frequency is the blue line, and the filter is light blue. You can drag the edges of the subreceiver filter just like you can with the main filter.
    • You can click-tune by either using the right mouse button, or holding down the option key while clicking. Similarly you can hold down the option button while using the scroll wheel and it will tune the subreceiver.
    • The subreceiver can also be tuned by dragging the filter box. The cursor will turn into a hand when you're in the right place.
    • Fixed the drag-scrolling of the main reciever so that it will change the frequency of the subreceiver if it tries to scroll out of the passband. Otherwise, the subreceiver stays in the same place even though you scroll the main.
  • Made significant changes to the UI. Moved most of the controls off into separate HUD windows. You can close them if you don't want them, and you can select the menu items in "Receivers" to get them back.
  • Developed a MUX to send the output of the panadapter from DttSP to the various components that consume it. It's based on NSNotification to notify components that register their interest that there is new data to be consumed. This way we don't have a lot of threads just spinning around timers.
  • Added click and drag frequency tuning to the waterfall display too even though the display itself is mildly broken.
  • SSB filters presets are now asymmetrical around their respective sidebands.

0.1.0.006 Application Changes

  • Added scrollwheel tuning on the panadapter.
  • Added drag tuning on the panadapter. Drag the panadapter right and left to tune up and down the band.
  • Added click scrolling on the panadapter. Click anywhere on the panadapter to tune to that frequency. This does not currently work on the waterfall.
  • Added change of filter widths via dragging the edges of the green block in the panadapter. The cursor changes to show when you're in the drag zone.
  • Modified the tick marks on the panadapter so that they're indexed to even frequency values instead of relative to the tuned frequency. They are now every 10kHz on the even 10kHz.
  • Added fequency labels for the tick marks.
  • Changed the filter controls in light of the new panadapter functionality. It now has some presets and numeric entry. The symmetrical option is still there.