ARGO a QRSS Viewer by I2PHD & IK2CZL Version 1, build 134 May 11th, 2003 Change History at the end. Legal disclaimers at the bottom, after the Change Hystory, where they belong. Argo is program for viewing QRSS signals, i.e. very slow CW, or DFCW signals, i.e. slow CW where dots and dashes are of the same length, but offset in frequency by a few Hertz, or even a fraction of an Hertz. The name Argo is taken from that mytical ship which, with the Argonauts on board, headed to Colchis, in the quest for the Golden Fleece, much like the LF Hams are in search of that fraction of dB of S/N which will allow them to make that elusive QSO. INSTALLATION ------------ If you are reading this, probably you have already expanded the archive. If not, just execute it, it is a self expanding file. Give the target directory name when asked. That's all, no files are copied to the Windows directory, in blatant unrespect for the rules set forth by some Bill. At this point execute ARGO.EXE in the target directory. From the main menu choose Setup | Select Input | Real Time Input The Windows mixer panel should now open. Depending on your sound card it will open directly at the Recording Control subpanel, or at the Playback subpanel (which may be labelled differently). In this second case, choose Options | Properties then Recording. In the recording panel choose which input you want to use, and the relative level. That's all. If you have other soundcard programs that work with your current configuration, probably you don't have to modify anything. RUNNING IT ---------- The usage should be quite intuitive. The Start button starts the spectrogram. The Mode menu choice allows to set the viewing mode to NDB, 3, 10, 20, 30, 60, 90 and 120 sec/dot, to select or deselect the full band viewing, the length of the time ticks (short or full stroke), and to choose which spectral estimator to use for the color mapping in the spectrogram. A few words on this. The default is 'Magnitude', i.e. the so-called 'Voltage Spectrum'. You can also choose 'Magnitude Squared', the so-called 'Power Spectrum'. Which one to choose is up to you. The magnitude gives a less marked contrast, and maybe is more useful when searching for a signal all over the band. When you have found one, try to select magnitude squared, and perhaps to readjust the two sliders marked Sensitivity and Contrast, to make the wanted signal to better stand out from noise. The NDB mode has been added since build 130, to try to visualize a slow CW (not QRSS) like that used by the NDBs. When using NDB mode, most probably there will be a need to readjust the AGC, Sensitivity and Contrast settings for a better viewing. Experiment with this, I found that the Low setting for Visual Gain works better (in my case...). The Speed menu choice allows to set the spectrogram refresh speed to Slow, Normal or Fast. If you click on the spectrogram, the behaviour depends on the mode you are in. If in Full Band View, the display will change from vertical to horizontal, centered at the chosen frequency, keeping the last resolution used. If you are already in the horizontal display mode, the chosen frequency will be simply brought at the center of the range. If you do a right-click, the mode toggles between full band view and the currently selected dor mode, without changing the center frequency. When you just hover the mouse on the spectrogram, the frequency corresponding to the mouse position will be indicated, together with its relative signal strength. The 0 dB reference level can be selected between the magnitude of a monochromatic signal that would just saturate the ADC of the sound card, or the magnitude of a signal arbitrarily selected with the mouse. The relative magnitude displayed near the peak frequency is however always referred to the ADC full scale. When in full band view, the frequency spans from 0 to 2756 HZ, thus covering all of the 136 kHz band. Just click the left mouse button when on the upper frequency scale and, keeping the mouse button down, drag left or right the scale to see the desired portion. When exiting from the program the current settings will be saved in the Registry, and restored at next start. Additionally, you can save the current settings under a given name, and reload them in a subsequent session. Thus you can have multiple settings, for each favorite listening mode. A small square just on top of the level bar indicates with its color (green or red) whether the CPU is overloaded. No harm is caused by overloading, just the screen refresh speed becomes slower and some information is lost. The Visual Gain panel has three choices, AGC, Low and High. They refer to the type of processing done when mapping between signal magnitude and saturation of the spectrogram. The spectrogram works in the HSV color space, where H has been arbitrarily chosen by me as a pleasant (!) blue, V is always 1 and S is the output of the non-linear mapping algorithm. The AGC choice does not refer to the AGC function that some sound cards have. Instead it makes the mapping above mentioned between the spectrum values and the color saturation on the waterfall such that it depends only on the ratio between the instantaneous value and the low quartile boundary increased by 3 dB, which is a good representation of the current noise level (thanks to Andrew Talbot G4JNT, for this idea). With AGC off, the absolute value of the current spectrum sample is used instead, with a fixed gain selected between Low and High. The net effect of having AGC on is to make the waterfall largely independent of the input audio level (of course within limits...). Try for yourself. CAPTURE ------- The program has a builtin facility for capturing its window to a disk file, at timed intervals. To activate it, choose Capture | Setup from the main menu, to specify the radix of the capture files. The program will use this radix, adding a 5-digit progressive suffix. Then you will be asked for the number of seconds of interval between each capture. With a very fast PC you can even say 1 second, but better not... There is a maximum value of 99999 seconds, more than one day (should suffice...). If you press the "Compute screenfull time" pushbutton, the program will automatically compute the time interval to specify to have a capture every full screen of data (actually a bit less, so to give a bit of overlap). This is done using the current settings. If you change the speed or the mode, you have to recompute it. Then choose the format, JPEG or BMP. A BMP image will take slightly more than 1 MByte, while a JPEG image usually is in the order of 100 kByte, so use JPEG unless you know in advance that you will not be able to process this format. A note here : when capturing in JPEG format, if your PC is set for 256 colors only, some artifacts may be seen in the captured image. For optimal results, with JPEG set your Windows for more than 256 colors. The Start and Stop choices in the Capture menu speak for themselves. The Start choice is enabled only after having specified the capture parameters. The Capture Now choice take a snapshot of the screen when pressed. The screen capture, starting from build 123, works also if the Argo window is covered by anoher window, or if a screen saver is active. What happens is that Argo will pop out for a fraction of second, the capture is done, then the previos window, or the screen saver, is given back the focus. WAVE FILE READ/WRITE -------------------- Argo can save the incomig audio to a standard Wav file, which then can be used as input, instead of the sound card. Argo uses three sampling rates when reading from the sound card : 22050 in the NDB mode, 11025 in Full Band View mode and 5512 in the horizontal mode, from 3 to 120 sec/dot. Wave capture is done exclusively at 5512 Hz, so the capture is enabled only when this is the sampling rate in use. When capture is started, any attempt to change the mode that would modify the sampling rate is rejected. Wave recording can be Paused, Resumed or Stopped using a couple of buttons that will appear when recording has been activated. To read from a Wave file instead of the sound card, on the action bar click on Setup | Select Input | Open Wave File... and then specify the filename. Must be a single channel, 5512 Hz .wav file, as saved by the wave save function of Argo, or by another program. When Wave file playback is running, there will be no possibility to do a mode change that would cause a different sampling rate. Wave write is still enabled, so you can transfer a portion of a Wave file to another new file. During Wave playback a couple of radiobuttons is visible on the top of the screen, that will allow to choose between Normal Throttle and Full Throttle. In Normal Throttle mode, the spectrogram will have a timing similar to real time capture. In Full Throttle mode, the spectrogram will flow at the maximum speed that the hardware of your PC will allow. For this reason, in Full Throttle mode the timing ticks are disabled. LOGGING ------- Starting from build 127, Argo has a couple of logging features : - Serial Log : The frequencies of the ten strongest frequency components are output to COM1 or COM2 (selectable), sorted in decreasing magnitude order. This can be used for FDK experiments, or for DFCW outboard decoding. The serial speed is fixed at 9600 bit/sec, no parity, 1 stop bit. The format is the following : the string 'FDKDATA ' (8 bytes) time stamp, HH:MM:SS (with or without the AM/PM indicator, depending on your locale settings) ten binary words, with the frequencies in Hz of the ten strongest peaks, sorted in decreasing magnitude order. - File Log : the magnitudes of all the bins displayed in the current running mode are logged to a file, with a comma-delimited format, useful to be imported in, let's say, Excel or Access. The file name and the logging interval are selectable, and each snapshot is time-stamped. The format is the following : time stamp, of the form "DD/MM/YY HH:MM:SS" (again the exact format depends on the locale settings) starting frequency (float format) frequency increment between consecutive values (float format) number of values (integer format) N values, where N is given by the field before (float format) All the fields are separated by a comma. As an example, here following is the beginning of an actually logged row : "08/04/01 11:32:53",18.842,2.691650,560, 524.19,1113.27,1382.22,......etc. etc. ----------------------------------------------------------------- Don't know what else to say, the program is so simple to use that no other explanations should be needed. In case you have doubts, questions, requests for enhancements, etc. send me an email at : dibene@usa.net or i2phd@qsl.net Alberto di Bene, I2PHD ---------------------------------------------------- Change History Beta 1, build 110 (Dec. 27th 2000) - First release Beta 1, build 113 (Jan. 6th 2001) - Full band view expanded to 2756 Hz, and made scrollable. - Display of the mouse frequency. - Added 'Magnitude Squared' as spectral estimator. - Modified the AGC algorithm. - Minor esthetical changes (changed also the program icon, to not clash with SpecLab, sorry Wolf...) - A few bug fixing. Beta 1, build 117 (Jan. 21st 2001) - Added the choice between Slow, Normal and Fast Speed - Added 3 new QRSS modes, 60s 90s and 120s dots - Minor adjustments in the code Beta 1, build 119 (Feb. 3rd 2001) - 90s dots mode now enabled - Automatic save and restore of the settings - Improved panel to specify capture parameters - Facility for frequency calibration, both additive and multiplicative - Buffer allocation streamlined, saving more than 10 MB - More exact timing for capturing (now independent from the vagaries of Windows) - The ticks spacing has been doubled in each mode, to avoid excessive crowding - A couple of bugs, that caused random hangs, now exterminated Beta 1, build 120 (Feb. 11th, 2001) - More ticks on the frequency scale (ticks each 0.1 Hz at maximum resolution) - Named saving/loading of the settings - CPU overload indicator - Minor adjustments in the code Beta 1, build 123 (Feb. 21st 2001) - Screen capture now works even if the Argo window is covered by other windows. - When reloading saved settings, you don't have to type their name, but just make a choice in a list box. - CPU overload indicator now works ok, as the MasterTimer and the DoProcess routines are placed in different threads. This has also some more beneficial effects. - Frequency scale ticks algorithm slightly revised and amended. - Some code adjustment and error correction. Beta 1, build 127 (Apr. 8th 2001) - Added the 20s dot mode, upon request. - Right-clicking with the mouse on the spectrogram toggles between full band view and the current dot mode, without changing the center frequency. - The Visual Gain can now be set to : AGC, Low, High - The length of the ticks is selectable between short (as before) and long (full stroke across the spectrogram). - The peak frequency is now computed with a quadratic interpolation between three consecutive bins. - An indicator of the relative signal magnitude has been added, both near the field showing the mouse cursor frequency, and as a floating text that follows the cursor. The 0 dB reference level can be selected between the magnitude of a monochromatic signal that would just saturate the ADC of the sound card, or the magnitude of a signal arbitrarily selected with the mouse. The relative magnitude displayed near the peak frequency is however always referred to the ADC full scale. The dB display has a lower limit of -120 dB (computers still have to learn the concept of negative infinity...) - A couple of logging features have been added : - Serial Log : The frequencies of the ten strongest frequency components are output to COM1 or COM2 (selectable), sorted in decreasing magnitude order. This can be used for FDK experiments, or for DFCW outboard decoding. - File Log : the magnitudes of all the bins displayed in the current running mode are logged to a file, with a comma-delimited format, useful to be imported in, let's say, Excel or Access. The file name and the logging interval are selectable, and each snapshot is time-stamped. For both forms of logging, see the Readme for the exact format. - Some code adjustment, tuning (should require less memory) and error correction. Beta 1, build 128 (Apr. 9th 2001) - Stupid bug fix : I used 10*log10(x) instead of 20*log10(x) .... V1, build 130 (Nov. 17th, 2002) - NDB mode added - Wave file read/write added - Screen capture dialog rewritten (now should work as intended). - Added the computation of the capture timing to specify for a screenfull. - Corrected a few errors, one of which could cause random abnormal terminations. - Ported to V6 of the C++Builder compiler V1, build 131 (Dec. 1st, 2002) - Changed the requeing logic for the sound buffers, to prevent hangs with slow PCs and/or Win XP/2000 V1, build 132 (Jan. 6th, 2003) - Added date display on main panel - Modified screen capture dialog, when specifying the path\prefix of the captured files V1, build 134 (May 11th, 2003) - Added time information on mouse cursor display - Added Led to indicate capture status, clickable to change it - Dialog for recomputing screenfull time when changing QRSS mode or speed - The calibration function has been split for the horizontal and vertical scrolling modes - Floor for value at cursor lowered from -120dB to -160dB ------------------------------------------------------------------------------- Oh, I was forgotting the disclaimers. Here they are. DISCLAIMERS ----------- The authors will not be liable for any direct, indirect, consequential or incidental damages to other pieces of software, equipment, goods, or persons, arising from the use of this software. The authors are not liable for any possible illegal use of this software, and for any other act arising from the results obtained from the software. Although the use of the software ARGO is free for the purposes described in the present document, it is *not* a public domain software. The authors retain the full copyright on the software binaries, the source code, and the user interface. ARGO is a Copyrighted property of: Alberto di Bene, I2PHD dibene@usa.net via Albignano 28 I-24040 Casirate d'Adda (BG) Italy Vittorio De Tomasi, IK2CZL ik2czl@amsat.org Via Melzi d'Eril 10 I-20154 Milano Italy (c) 2000, 2001, 2002, 2003 The use of this software is free for hobby and research purposes. If used for commercial or industrial purposes, you must obtain a licence agreement from the authors. The program can be freely distributed, provided that you don't charge money for this, except for the cost of the transfer media, and that this text document is distributed as well. The commercial distribution of the software without the permission of the authors is strictly forbidden. ---------------------------------