Basic operations of MMSSTV
Version 1.06 - January 13, 2002 by JE3HHT Makoto Mori
Translated into English by JA7UDE Nobuyuki Oba
Please see "Version-up information" MMSSTV Help or
EUPDATE.TXT in the Menu for information on changes
made to this release.
This program is for transmitting and receiving SSTV using a PC soundcard.
I was making a utility to adjust the soundcard clock for PSK31 programs.
However, I have changed my mind, and the utility has eventually become
an SSTV program.
I thought that I should have made at least one SSTV QSO with this MMSSTV
and then declared it as the release version 1.0. However, I am very busy
on my own business and will have no time for amateur radio. In addition,
there seem to be some people already using this program. At this time,
I have decided to release this version as 1.00.
Use the provided uninstall feature. (Available from the Menu)
OS: Windows 95, 98, 98SE, ME, NT, 2000, XP
Soundcard: 16-bit 11025Hz or 22050Hz
Video adaptor: 256 or more colors (16- or 24-bit video adaptor is recommended)
RAM: 32MB or more
I managed to run MMSSTV on my old PC with a Pentium 100MHz, but I strongly
recommend a faster CPU.
The operation speed of MMSSTV is highly dependent on the performance of the
video adaptor. In other words, even if two PCs have the same CPU, they should
give different performance in accordance with the equipped video adaptor.
In particular, the 256-color video adaptor is likely to consume more CPU power
for the pallet calculation. For this reason, a 16- or 24-bit color adaptor
is strongly recommended. If a 256-color video adaptor is used, the displayed
colors are affected by the performance of the pallet calculation.
To save the CPU power, try the following steps.
- Increase the FIFO size of the soundcard.
(select Option, select the Misc tab, and increase the value
in the sound FIFO size)
- Disable the RxBPF
(select Option, select the RX tab, and check RxBPF OFF)
- Choose RX buffer FILE or turn it off
(select Option, select the RX tab, and check NONE or FILE
in the RX buffer pane)
- Turn the TX BPF off
(select Option, select TX tab, and uncheck Tx BPF)
In default, the Loopback is turned off. When it is turned on, MMSSTV performs
TX and RX in parallel and increases the CPU load. Make sure you turn it off
if your PC cannot afford to run them in parallel.
The RX buffer temporarily stores the receiving or just received image to get
it back to the RX window after adjusting the slant and phase. The buffer
stores 270-second sound data, and therefore it would cause page swapping if
the RAM is selected or if the physical memory size of your PC is not sufficient
to keep the data on the memory. If you have intermittent halts during the
receive operation, please select FILE or turn it off.
The size of the receive buffer is BIG; probably bigger than you expect. If you
do not use the automatic slant adjustment function, you should not have any
operation difficulties without the receive buffer.
PC and radio hookup
You can use the same interface of MMTTY. Refer to the MMTTY help.
You can use the same interface of MMTTY. Refer to the MMTTY help.
MMSSTV supports the following SSTV modes.
Mode Duration (sec) Size Method
Robot B/W 8 8 160x120 Mono tone
Robot B/W 12 12 160x120 Mono tone
Robot 24 24 160x120 Color differentiation
Robot 36 36 320x240 Color differentiation
Robot 72 72 320x240 Color differentiation
AVT 90 90 320x240 RGB (no synchronization pulse involved)
Scottie 1 110 320x256 RGB
Scottie 2 71 320x256 RGB
Scottie DX 269 320x256 RGB
Martin 1 114 320x256 RGB
Martin 2 58 320x256 RGB
SC2-180 182 320x256 RGB
SC2-120 122 320x256 RGB
SC2-60 62 320x256 RGB
PD50 50 320x256 Color differentiation
PD90 90 320x256 Color differentiation
PD120 126 640x496 Color differentiation
PD160 161 512x400 Color differentiation
PD180 187 640x496 Color differentiation
PD240 248 640x496 Color differentiation
PD290 289 800x616 Color differentiation
P3 203 640x496 RGB
P5 305 640x496 RGB
P7 406 640x496 RGB
As far as I know, all the domestic SSTV QSOs in JA are made in the
Scottie 1 mode. In US, Scottie 1 and 2 are commonly used.
In EU, Martin 1 and 2 are commonly used.
The following modes are in the experimental phase.
MP73 73 320x256 Color differentiation
MP115 115 320x256 Color differentiation
MP140 140 320x256 Color differentiation
MP175 175 320x256 Color differentiation
MR73 73 320x256 Color differentiation
MR90 90 320x256 Color differentiation
MR115 115 320x256 Color differentiation
MR140 140 320x256 Color differentiation
MR175 175 320x256 Color differentiation
ML180 180 640x496 Color differentiation
ML240 240 640x496 Color differentiation
ML280 280 640x496 Color differentiation
ML320 320 640x496 Color differentiation
MP mode: It is based on the color difference scheme that the PD mode uses.
This mode should be useful for reducing multi-path distortion and jitter.
The scan time for each pixel is longer than the other modes, but the
color information along the vertical axis is compressed.
MR/ML mode: It is based on the color difference scheme that the Robot 24/72
mode uses. This mode is aimed for offering good resolution in good condx.
The color information along the horizontal axis is compressed.
These modes are not new to SSTV actually, but I have added them by way of trial.
In particular, I have considered good trade-off between the transmission time,
picture size, and quality. As a new trial, the VIS signal is expanded to 16 bits.
It should be noted, however, that these modes are in the experimental phase and
subject to change.
SSTV operating frequencies
In JA, the most active frequency is 7.033 MHz LSB. The common frequencies in the
world are: 14.230, 21.340, and 28.680 MHz USB. I have noticed that these frequencies
are crowded nowadays. I recommend you make QSY after you once made a contact at
these call frequencies to avoid unexpected QRM.
(1) Tone frequency
SSTV's tone frequencies are defined as follows:
Synchronization pulse 1200 Hz
Low level of the image 1500 Hz
High level of the image 2300 Hz
There are four marker lines in the spectrum window of MMSSTV. From left to right:
Green line 1200Hz Synchronization pulse
Yellow line 1500Hz Low level of the image
Yellow dotted line 1900Hz Center level of the image
Yellow line 2300Hz High level of the image
To tune the frequency, make the signal energy be laid between the 1500Hz and 2300Hz
marker lines. Alternatively, you can tune the receiver so that the synchronization
pulses are on the 1200Hz marker line. However, the synchronization pulse is very short,
so it might take time for you to get used to adjusting the frequency in this way.
Since SSTV QSOs are made on the fixed common frequencies, you probably do not have
difficulty in tuning the radio after you have done once.
(2) Automatic start
When the Auto button in the RX mode pane is depressed, MMSSTV automatically starts
the receive operation in response to the start trigger signal. The start trigger signal
is called VIS signal, which consists of the 1200MHz marker signal and the SSTV mode
code (1100Hz and 1300Hz FSK). MMSSTV detects the signal by using a resonant FSK
demodulator, and automatically starts the receive operation if it finds the mode
To automatically start receiving, MMSSTV provides another method, which measures
the interval time of the synchronization pulses. If you do not want to use this method,
go to Option, select RX tab and choose 'VIS only' in the auto start option.
Four levels (Lowest, Lower, Higher, and Highest) for the trigger threshold can be selected.
Lowest makes MMSSTV trigger with the weakest signal.
Highest makes MMSSTV trigger with the strongest signal. In other words, only the strong
signal can kick off the receive operation.
(3) Manual start
In case MMSSTV does not automatically start receiving or you want to start receiving not
from the beginning, push one of the mode buttons below the Auto button. In JA, HL, and US,
try Scottie 1. In EU, try Martin 1.
(4) Automatic stop, restart and resync
When the auto stop in the RX window of the Setup MMSSTV is checked, MMSSTV automatically
stops receiving in case it has lost the synchronization signal (this does not work in AVT90).
When the auto start in the RX window of the Setup MMSSTV is checked, MMSSTV restarts the
receiving from the beginning in case it detects the VIS signal even during the receive
operation. It should be noted, however, that MMSSTV would not be able to detect the
VIS signal because of the RxBPF effect.
When the auto resync box in the RX window of MMSSTV Setup is checked, MMSSTV automatically
attempts to re-synchronize the RX image. This is useful if the MMSSTV has lost the
synchronization during RX. However, a couple of lines are displayed with the old
synchronization timing and therefore they might appear as a thin bar.
(5) Slant adjustment
MMSSTV latches the SSTV signal with respect to the soundcard clock. For this reason,
you would have a slanted image if the soundcard clock of your PC is not correctly
calibrated or if the timing of the received signal is discriminated. There are three
ways to adjust the slant.
- High-accuracy slant adjustment
- Automatic slant adjustment
- Manual slant adjustment
High-accuracy slant adjustment and Automatic slant adjustment analyze the timing of
the received signal to automatically adjust the slant. They, however, might not work
well in the situations of QRM, multipath, or weak signals.
The adjusted clock timing is applied only to the current image; it is not memorized
in the MMSSTV. If you want to keep the timing adjusted, push the Mem button.
The adjusted timing is used for all the images afterwards.
High-accuracy slant adjustment
In this method, MMSSTV uses the least square method to solve the linear equation for
analyzing the synchronization timings. For high quality RX signals, it will give
the error less than 2ppm. To start the high-accuracy slant adjustment, push the
NicoNico button (comment by JA7UDE: the smiley button). You also can start it by
right clicking on the sync or RX window and selecting "High-accuracy slant adjustment"
in the pop-up menu. It should be noted that you must have received at least 16 scan
lines to make this adjustment operational. The more the scan lines, the better the
* You cannot use this method if you turn the RX buffer off.
Automatic slant adjustment
In Automatic slant adjustment, MMSSTV periodically measures the interval of the
synchronization signals and automatically adjust the slant. When you leave this mode
turned on, MMSSTV adjust the image in real time, but it gives slightly less accuracy
than the High-accuracy slant adjustment.
To start this method, check the Auto slant box in the RX tab of the Setup MMSSTV menu.
You also can start it by right clicking on the RX window and selecting Auto slant
adjustment in the pop-up menu.
* You cannot use this method if you turn the RX buffer off.
Manual slant adjustment
Click the Sync tab of the main window and do the following procedure.
1) Push Slant button
2) Click the upper right edge of the synchronization signal (white line)
3) Click the lower right edge of the synchronization signal (same white line)
The synchronization signal is displayed in a relatively fat line, so you must click
the same side. Immediately after you click once on the line, a guide cursor is
displayed. Adjust the cursor in parallel with the synchronization signal line,
and click again.
According to this procedure, MMSSTV recalculates the sampling clock of the soundcard
and adjusts the receiving or just received image. If you do not obtain the acceptable
result, repeat the procedure.
In case of small slant, it is a good idea to use the up-down button at the bottom
of the Sync window. Click on the View menu, select Always show RX viewer, push the
up-down button with looking at the slant of the image.
When you have obtained the successful adjustment and want to use it as the default
frequency, push the Mem button; otherwise MMSSTV applies the adjustment to the current
* If you turn the RX buffer off, you cannot redraw the picture after adjusting the slant.
(6) Fine tune of the synchronization point
MMSSTV automatically gets the receive operation synchronized with the transmitted image
except in case of AVT90. However, it at times fails to do so in very bad conditions.
You should immediately become aware of such a condition because the image is ill colored.
If you are aware of the case, try the procedure below:
1) Push Sync tab of the main window.
2) Push Phase button.
3) Click the left edge of the synchronization line (fat white line).
MMSSTV arranges the image so that the clicked point becomes the leftmost position of the
image window. If you do not get it right position, repeat the procedure.
AVT90 does not have the synchronization signal in the image data. For this reason, you
will see only a monochrome image in the Sync window. You can click one of the gaps
(there are three gaps).
* If you turn the RX buffer off, you cannot redraw the picture after you adjust the phase.
MMSSTV can store up to 32 received images in default. To increase or decrease this number,
click Option, select Setup, click Misc tab, and change the value in the History max box.
If the number of stored images would exceed the specified value, the oldest image is erased
in an FIFO manner.
It should be noted that one image requires about 200KB disk space, and thus 256 images
require about 50MB. Pay attention to the disk space of your PC.
To reduce the disk space, you could use the JPEG format. Click the picture with the
right button of your mouse and select Use JPEG format in the pop-up menu.
The RX history is only used for a temporary buffer. The old pictures will automatically
be deleted. If you want to keep them, right click and check the auto copy to another folder.
With this automatic copy function turned on, MMSSTV records the index into the QSL field
of the log so that it can retrieve the picture later.
To manually copy the history picture to another folder, drag and drop the picture in the
history window to the QSL box in the log window. To use this function, you must define
the name of the target folder in advance.
MMSSTV automatically records the index in the QSL field of the log, either if the auto
copy is turned on or if the history image is dropped in the QSL box. Using the MMSSTV
log facility, you anytime can refer to the image by pressing the Image button.
To transmit an SSTV image, click TX tab of the main window. The image you see there
is transmitted (What You See is What You Transmit). Adjust the mic gain appropriately.
***** DO NOT USE SPEECH PROCESSOR *****
(1) TX image preparation
There are several ways to prepare the TX image.
1. Drag&drop an image from the stocked picture gallery at the bottom in the main window
to the TX window.
2. Drag&drop an image from the thumbnail window of the folder (View -> Always show
thumbnails of files folder) to the TX window.
3. Drag&drop an image from Windows file manager (Explorer) to the TX window.
4. Drag&drop an image from another image manipulation tool that supports Drag&drop to
the TX window.
5. Copy&paste an image from another image manipulation tool to the TX window through
the Windows clipboard.
You can make the TX image superimposed with a template. The template operation is
explained in the later section of this document.
Click the TX image with the right button of the mouse to get a pop-up menu that
facilitates image manipulations, such as file load and save. Drag&drop from Internet
Explore is also supported.
(2) Mode selection
Select the SSTV mode.
* If you uncheck "SSTV mode fixed" in the TX page of MMSSTV Setup option, MMSSTV
automatically uses the SSTV mode that was used by the most recently received
Push the TX button at the left bottom of the window to start transmission. The
horizontal marker line moves from top to bottom as the image is transmitted.
MMSSTV automatically returns to RX after it completes the transmission. If you
want to abort the transmission, push the TX button again.
MMSSTV has a 12-second sound buffer, which should be big enough in the normal
environment. If your PC is not powerful, you had better not do other operations
during the transmission.
If MMSSTV has lost the timing during TX, it shows a caution message after the TX
completion. In this particular case, you might be able to solve this problem by
increasing the number of FIFO in the Misc page of the Setup window.
(4) Adjustment of the slant of the TX image
Some soundcards (especially PCI form factors') have slightly different frequencies
for recording and playing. In this particular case, even if you have correctly
adjusted the clock in RX, you would have a slant image in TX.
MMSSTV has a means to adjust the soundcard clock for TX and RX independently.
Refer to the Soundcard section at the end of this document for details.
(5) Tune button and CWID
For repeaters in US, MMSSTV has a tone generator. Push the Tune button to transmit
a 1750Hz tone.
You can send a CWID after the TX completion. Check the CWID box in the TX of the
Setup window. This is for a European friend of mine.
Using a template, you can make a simple picture, which is superimposed to the TX image.
For example, you can use a macro command that puts his/her call sign on the TX image.
MMSSTV provides primitive image-manipulation functions, but has no support for the group
Make picture items using the tool buttons at the bottom of the window.
- Arrow button Turn on/off the selection mode
- Line button Draw line
- Square button Draw rectangle
- Shaded square button Draw rectangle with color pasted
- T button Draw text
- Picture button Insert picture or history image
- Color bar button Draw color bar
- Scissors button Cut the item
- Paste button Paste the item
- Color palette button Change the color
- L button Change the property of the selected item
- f button Change the font
To use a macro text, for example, push T button and then click the point in the window
where the text is placed. The text input dialog box is displayed. Push Macro button
and select %c to place his/her callsign there.
To move the item, push Arrow button and use drag&drop it.
Here I do not cover all the operations, but they are similar to the DRAW software.
Give it a try by yourself.
* You can use drag&drop to copy an image (BMP or JPG) from a file manager (e.g., Explorer)
to the template box.
Superimpose the template over the TX image
When you use a template, MMSSTV superimposes all the colors except a transparent one in
the template over the TX image. The default transparent color is defined at the bottom
right position of the template window. You can change the position by right clicking at
the arbitrary spot in the window. However, you must click the spot where no template
item resides in.
Special care should be taken if you place a template item at the bottom right of the window.
In version 0.21 or later, the function that automatically replaces the transparent point is
default ON. Therefore, the transparent point is automatically moved to where no template
You can use any color as the transparent (background) color, but you must choose the color
that you do not use in the template. However, a color bar and an image are the exceptions.
In other words, you even can choose a color that is used in a color bar or an image as a
* You can settle a background color that is not used in the template by right clicking on
the template and selecting "find unique background color."
If you want to create or edit the TX picture during the QSO, I would recommend you use other
editing software programs, which have excellent capability in manipulating images.
The template of MMSSTV is supposed to offer the macro functions, such as his/her call sign,
RSV report, and contest numbers. Therefore, you would not find good reason to use templates
if you do not use the logging function.
MMSSTV has a stock area, which can stores up to 300 images. Each stocked image has the
image data and the template information. To manipulate the clipboard, save and load files,
click the stock image with the right button of the mouse. You will have a popup menu.
To save the disk space, you can use the JPEG format for the stocked images.
Right click the image and select Use JPEG format in the pop-up menu.
It is a good idea to make a template picture in association with the TX image in advance.
The stocked area can store the images and the templates independently. However, if you
use drag&drop to copy the stock image to the TX window, MMSSTV copies the associated
template, too. This is effective only if the Show superimposed templates box is checked.
If the box is not checked, MMSSTV copies the image and the template independently.
The following table shows how MMSSTV performs the drag&drop operation.
[Show superimposed templates ON]
From To Action
Stocked image TX window Copy the image and template
Stocked template Template window Copy the template only
TX window Stocked image Copy the image and template
Template window Stocked template Copy the template only
[Show superimposed templates OFF]
From To Action
Stocked image TX window Copy the image only
Stocked template Template window Copy the template only
TX window Stocked image Copy the image only
Template window Stocked template Copy the template only
You can drag&drop an image from Explorer or My Computer to the stock.
It takes substantial time to make the text change in effect in the template.
For this reason, the window redraw is slowed down during superimposing of the template
in the stocked image area. If you do not like it, try checking off Show superimposed
templates or checking on Draft. In addition, the JPEG format will require a little bit
longer time to re-read the file.
* If you get the thumbnail window of the folder displayed on the stocked images window,
MMSSTV will use the thumbnail window on behalf of the stocked image window. MMSSTV
temporarily hides the thumbnail window when you switch to the stocked template window.
Picture size and header
The number of scan lines in the Robot and AVT modes is 240. On the other hand, that in
the Scottie and Martin modes is 256. This difference is due to the domestic TV modes on
which the SSTV modes are based. Robot and AVT were devised in the US and defined to have
240 scan lines after the NTSC. Scottie and Martin were devised in the UK and defined to
have 256 scan lines. My guess is that, to make them compatible to Robot and AVT, the first
16 lines are used for the header that has no picture data. When the receiver uses a scan
converter and an NTSC TV set, he/she should see only the 240 scan lines on the TV set.
I think, however, the 16 lines make no sense in the SSTV using PC. The 16 lines could
have some information on the sending picture.
MMSSTV allows users to define the header (16 scan lines) by using the template item.
The following TX modes are supported.
----- Raw picture has 240 lines; the SSTV mode has 256 lines (e.g., Scottie)
1) Define the header in the template.
2) Push "Shift picture for the header color bar" button to shift down the raw picture.
2) Preserve the upper margin in the picture clipper and copy it to the TX window.
----- Raw picture has 256 lines; the SSTV mode has 256 lines (e.g., Scottie)
You can put a header to the first 16 lines, or you put no header. Either is OK. Bear
in mind, however, that some receivers/converters will not be able to display the first
16 lines. When you use the header, you could push the "Adjust picture for the header
color bar" button in the TX window so as not to get the raw picture hidden behind the
color bar. In this case, the aspect ratio of the raw picture is changed.
----- Raw picture has 240 lines; the SSTV mode has 240 lines (e.g., Robot)
MMSSTV transmits the image without a header.
----- Raw picture has 256 lines; the SSTV mode has 240 lines (e.g., Robot)
1) Define the header in the template.
2) Push the "Shift picture and template for 240 line mode" button to shift up the raw
picture and the template. The upper 16 lines of the raw picture are not transmitted.
or Define the template without a header. The lower 16 lines of the raw picture are
not transmitted. If you push "Adjust picture and template for 240 line mode" button,
you do not lose the lower 16 lines but the aspect ratio of the picture is changed.
With the program menu, you can instantly start your favorite programs, such as an image
manipulation tool, PSK31, RTTY, and MFSK16 programs.
If you check Suspend box in the Assign menu, MMSSTV automatically goes down to the
suspended state and starts the selected program. In this state, MMSSTV has released the
COM and soundcard resources in order to allow the other program to use them. To restart
MMSSTV, first terminate the program and then click the MMSSTV icon in the Windows task bar.
When you want to start the program that is not assigned to the MMSSTV program menu, you
can select Suspend in the Program option. MMSSTV has released the hardware resources of
the COM and soundcard and makes itself iconized.
If you wake MMSSTV up again while the other program that uses the COM and soundcard
resources is running, MMSSTV would show an error message. In this case, MMSSTV will not
be iconized again. To resume MMSSTV, terminate the other program and wake MMSSTV up
again, or select Restore in the Program menu.
* You do not have to check Suspend for an image manipulation tool, because it typically
does not use the COM or soundcard.
Refer to the MMTTY manual.
This section describes the digital signal processing used in MMSSTV. Refer to Digital.Txt
of MMTTY for basic DSP operations.
MMSSTV has three types of demodulators.
(1) Demodulator configuration
MMSSTV's demodulator has the following configuration.
Sound --> BPF (FIR) --+> BPF1100 (IIR) --> VIS symbol '1'
+> BPF1300 (IIR) --> VIS symbol '0'
+> BPF1200 (IIR) --> Sync
---> Zero cross det. --> Picture data
(1500 to 2300)
---> PLL(1500 to 2300) --> Picture data
---> Hilbert(1500 to 2300) --> Picture data
The zero cross detector's configuration is
---> Differentiator ---> Counter ---> Out LPF ---> Pic. data
The next figure shows the PLL configuration
---> Phase det. ---> Loop LPF ----> Out LPF ----> Pic. data
<---- VCO <-------------
The next figure shows the Hilbert transform configuration. I got this idea from JA6UHL
Nishimura-san (MNI TNX to JA6UHL).
--+-> Delay(N) -> Real
| |==> ATAN -> Differentiator -> LPF -> Pic. data
--> FIR(2N) --> Image
According to my experiences, they have the following pros and cons. Please give it a
try by yourself to find your favorite method.
Decoder Zero-cross PLL Hilbert transform
Color accuracy Fair Good Good
Image resolution Fair Fair Good
QSB Good Fair Good
CPU load Low Low High
Sampling freq. HB* HB* ----------
*HB: The higher, the better.
In the zero-cross and PLL methods, you can set the cut-off frequency of the OutLPF higher.
In the Hilbert transform, the accuracy of the phase differentiation degrades as the sampling
frequency increases. The default sampling frequency, 11025Hz, gives better results, though
MMSSTV does the decimation to keep the transform accuracy.
(2) Zero cross detector parameters
This filter smoothes the frequency ingredients obtained by the counter.
If you want a sharp image, increase the cut-off frequency.
If you want a low-noise image, decrease the cut-off frequency.
You can select an IIR or FIR filter for the Out LPF. However, it seems that they have no
significant difference. The FIR filter is better for low sampling frequency because it
consumes lower CPU power than the IIR filter.
(3) PLL parameters
The parameters of the PLL affect the picture quality. Since the behavior of this PLL is
just the same as that of the hardware PLL, try adjusting the parameters as you have better
VCO gain strongly affects the response of PLL. Higher VCO gain gives quicker response;
lower VCO gain gives slower response. To high VCO gain would result in the oscillation of
the decoded signal.
In addition to VCO, the Loop LPF is an important parameter that dominates the loop dumping
factor. Always use a one-order filter. If you increase the cut-off frequency, the
oscillation amplitude of the decoded signal becomes bigger.
The Out LPF filter does not affect the response of the PLL because it sits outside of the
loop. It, however, should be noted that it strongly affects the picture quality. If you
want a sharp picture, set the cut-off frequency higher. If you want a low-noise picture,
set it lower. Adjust it according to your preference.
When the Differentiator box is checked, MMSSTV compensates the LPF effect by boosting the
high-frequency ingredient of the received image. However, it makes the receive image be
more likely affected by the noise. Try adjusting the effect with the slider for your
preference. As the slider goes right, the differentiator takes sharper effect.
*The differentiator is not related to the differentiator of the zero-cross detector.
(5) Level converter
The level converter translates the frequency value derived by the decoder into the color
amplitude values. MMSSTV provides two types of converters, which can be selected in
the RX window of MMSSTV Setup.
- Linear converter (uncheck the polynomial box)
It assumes that the frequency and the color level are linearly related. It is simple,
but the frequency characteristics of the decoder must be linear.
- Polynomial converter (check the polynomial box)
It uses a 17-th order polynomial formula for the level conversion. It works better if
the frequency characteristics of the decoder are not linear. Since the converter uses
a pre-calculated table to boost the processing speed, it should not require much more
It is a good idea to use the polynomial converter for the 11025MHz zero-cross detector
because it has a little linearity problem in 2200 to 2300Hz. As the sampling frequency
goes higher, the decoder will have better linearity. However, even in 11025Hz, the
conversion error is 2/256 - 3/256, and therefore the error might not be visible.
MMSSTV starts the automatic calibration by pressing the calibration button in the RX
window of MMSSTV Setup. It takes about 20 seconds. After the calibration, MMSSTV
shows the frequency characteristics figure. If the line of the figure goes straight
down to the right, you can uncheck the polynomial converter (you can use the linear
The default demodulator parameters are settled according to my experiments, which,
however, are very limited. I have had no sufficient time for the parameter
optimization. If you are a master of SSTV, you already have found good parameters.
With the Profile function, you can easily save and load up to 8 sets of the
demodulator parameters. Each set can be named, as you like.
It is a good idea to save your favorite demodulator parameter set as MyDefault before
you try many different parameters. If you got lost in the parameter setting, you will
be able to step back to the start point.
MMSSTV has a special profile "MMSSTV Default," which cannot be modified by the user.
This is the MMSSTV default parameter set.
* It should be noted that the Profile memorizes the demodulator parameters only.
Supplemental RX filters
MMSSTV has two supplemental RX filters.
Sound ---> LMS ---> BPF (FIR) ---> Demodulator
It is an adaptive filter based on Leaky LMS (Least mean Square) method.
It can be turned on/off using the LMS button in the main window.
It intentionally uses low number of taps so that it does not cause the image drift when it
is turned on and off even during the RX operation. For this reason, it does not have strong
noise reduction, but it sometimes works FB between QSB. Since LMS emphasizes the signal
that has strong correlation with the past signals, it might be ineffective or get QRM worse
for single beat QRM.
It is a simple FIR band-pass filter. You can choose the sharpness in the RX page of the
setup MMSSTV menu. As it is sharper, it is more likely to exclude adjacent QRMs, but on
the other hand it degrades the horizontal resolution. It should be noted that you will
have the RX image drifted if you change the sharpness during the RX operation. This is
because each selection has different delay time.
MMSSTV generates the TX signal with the flow shown below.
Picture data ---> LPF ---> VCO ---> BPF ---> D/A ---> Sound data
LPF and BPF are used to limit the frequency of the digital output as insurance.
If the CPU load is too high for TX, you can turn them off. However, I strongly recommend
that you turn the BPF on when you use CWID.
This filter smoothes the signal translation from the image to the frequency domain.
As a result, the frequency bandwidth is substantially limited and the horizontal resolution
of the TX image is slightly sacrificed.
This filter limits the bandwidth of the TX signal. It is useful to limit the spectrum spread
MMSSTV has an option that allows the following sampling frequencies:
8000 Hz Secondary standard frequency
11025 Hz Primary standard frequency
22050 Hz Primary standard frequency
44100 Hz Primary standard frequency
You will have better quality in the RX images by increasing the sampling frequency and setting
the cut-off frequency higher in the zero-cross and PLL decoders. In the Hilbert transform
decoder, on the other hand, I recommend the default sampling frequency 11025Hz.
It should be noted that not all the soundcards support the frequencies listed above all.
All the soundcards, however, should support 11025Hz, 22050Hz and 44100Hz. In addition, the
high frequency dissipates more CPU power and more memory space.
* MMSSTV always calculates the FFT with 2048 points. To obtain the proper frequency resolution,
MMSSTV uses a half frequency for FFT in case the sampling frequency is 18000Hz or higher.
In the same manner, MMSSTV uses a quarter frequency in case of 44100Hz.
In SSTV, the discrimination of the clock appears as a slanted image. For MMSSTV, you are
not required to have the absolute and exact clock frequency value (e.g. 11025Hz). But it
is important to get MMSSTV informed on what the frequency of your soundcard has.
In normal situations, you would only have to adjust the slant by using the Sync window.
If you want to calibrate your soundcard very accurately, listen to the standard radio or
1) Go Option, Setup, Misc page, and push Adj button.
2) Receive standard radio wave (e.g., WWV and JJY).
3) Tune into the tick sound.
4) Continue listening to the sound for a while. You have a vertical line.
5) Click the upper point of the line.
6) Click the lower point of the line.
You could use FAX broadcasting instead of WWV or JJY, but be sure it has exact timing.
Refer to the MMTTY help for details.
If your soundcard seems to have different clock sampling frequencies for TX and RX,
adjust the offset frequency with the following procedure.
1) Adjust the slant in RX.
2) Go Option, Setup, and TX page. Select External in the Loopback.
3) Connect the Line-out to the Line-in of your soundcard.
4) Transmit an image with Martin 1.
5) You should have an image through the external feedback.
6) After completing the image receive, go Sync page and adjust the slant.
- You could use the High-accuracy slant adjustment.
- Do not push the Mem button
7) Push the TX(TX offset) button in the sync page.
8) Make sure that you have no slant in the TX. If you still have slant, repeat from (6).
It is a good idea to use the High-accuracy slant adjustment at Step 6. If you are not
satisfied with the result, start it again. Never push the Mem button at this step.
You can use the LoopBack function of a mixer program instead of using the external feedback
line. Although this procedure can be applied only for the soundcard that supports the
full-duplex mode, the soundcard that does not support the full-duplex mode should not
have different frequencies for TX and RX, and therefore you do not need this calibration.
If you have a report that your TX image is greatly slanted, try changing the soundcard modes,
monaural or stereo (Source in the Misc window of Setup MMSSTV).
Some soundcards seem to use different sampling frequencies for the full-duplex and no-full-
duplex operations. In such a case, the offset calibration using the external loop back does
not help. You should always have the loop back External or consult the QSO report.
Setup MMSSTV Misc
FIFO specifies the number of the buffer for the low-level sound processing. As the number
is increased, the possibility of timing loss is decreased because of larger sound processing
margin. Enlarge the RX-FIFO if you lose the timing in RX. Enlarge the TX-FIFO if you lose
the timing in TX.
Priority defines the task priority for low level sound processing. If you lose the sound
during RX or TX, raise the priority. If the response of the menu operations is slow, lower
the priority. Normal is the lowest and Critical is the highest priority.
DeviceID specifies the ID number of the sound card. When you have only one sound card,
put -1 or 0 to DeviceID. -1 uses the default sound card. The sound card IDs are
sequentially assigned as 0, 1, 2, .... When you have two sound cards, for example, and
want to use the second one for MMSSTV, put 1 to DeviceID.
Source defines the channel of the sound card. Mono makes the sound card work in the monaural
mode. Left or Right makes the sound card work in the stereo mode and uses one of the channels.
In TX, MMSSTV outputs the sound to both channels irrespective of the Source setting.
Clock is the sampling frequency of MMSSTV. Refer to Sample frequency and Clock calibration
Font set up for Hangul and Chinese Windows
For Hangul and Chinese Windows users, try the following set up.
1. Click on Option and Setup MMSSTV.
2. Click on Misc tab.
3. Push the Misc button in the System font pane.
4. Select Hangul or Chinese font. Use the font that has small character spacing.
5. Push the OK button.
After this setup, you can use Hangul or Chinese FEP for the text input boxes.
It seems that Hangul and Japanese Windows manipulate 8-bit characters in a different manner
from English font. MMSSTV version 1.05 or earlier could not handle the slash zero properly.
MMSSTV 1.05D (1.06 hopefully) has special routine to work around this problem.
MMSSTV is a freeware program for amateur radio use. You can redistribute it as you like.
Please join the following reflector for detailed information,
The JPEG converter in MMSSTV is based on the freeware source code, "IJG code," provided by
Independent JPEG Group.
73 de JE3HHT Mako