MMVARI - обзор программы и ее возможностей


создано: октябрь 2004г.
обновлено: апрель 2005г.

Японский радиолюбитель Makoto Mori, JE3HHT, широко известный своими программами MMTTY, MMANA и MMSSTV - сделал еще один подарок любителям цифровых видов связи. MMVARI написана очень качественно и продуманно, впочем как и другие программы автора, работать c ней - одно удовольствие! Программу легко освоить и удобно пользоваться в реальной работе. Разработку этой программы автор начал, потому что ни одна из ранее написанных программ не могла полноценно работать с иероглифами (япония, китай и др.) в цифровых видах связи.

внешний вид MMVARI

Виды модуляции
Для проведения QSO и экспериментов в эфире, вы можете работать в BPSK, GMSK, RTTY, MFSK, FSK протоколах, из них MFSK самый подходящий для дальней связи. GMSK имеет немного выше чувствительность чем BPSK. Обратите внимание на скорость 20bps, на ней можно проводить QSO когда стандартные режимы BPSK31, 63, 125, 250bps декодируются с многочисленными ошибками. Краткое описание режимов работы:

  1. GMSK - чтото среднее между PSK и FSK, этот протокол давно используется в GSM-сетях. Для gmsk не требуется линейный передатчик. Скорость работы меняется от 20 до 250bps.
  2. FSK - этот режим рекомендуют для работы на КВ диапазонах, для радиостанций с низкой стабильностью частоты.
  3. FSK-W - широкополосный вариант FSK для УКВ, возможны скорости от 20 до 250bps.
  4. BPSK - особенный BPSK, адаптированный для работы с иероглифами, несовместим с обычным bpsk! Не используйте этот режим.
  5. bpsk - стандартный режим BPSK совместимый с другими программами, поддерживаются скорости 20, 31.25, 45.45, 62.5, 93.75, 125 и 250Bps.
  6. rtty-L / rtty-U - телетайп, L - обозначает LSB и используется по умолчанию, U - USB (реверс).
    - Возможны скорости от 20 до 250бод.
    - Разнос в 170Гц, можно менять из макросов <%TxShift...>, <%RxShift...>.
    - Поддерживается только 5bit BAUDOT S-BELL.
    - Функция UOS для приема RX по умолчанию включена, но это можно изменить из макроса
        <%UOS=ON/OFF/ONOFF>. Для передачи UOS включена всегда.
    - LTR diddle можно изменить из макроса <%DIDDLE=BLK/LTR>.
    - Режим FSK не поддерживается, только AFSK.
  7. mfsk-L / mfsk-U - MFSK режим, L и U обозначают боковую LSB или USB. Скорость 15.625 используется для стандартного MFSK16, а 31.25bps для нестандартного MFSK32, работайте им только по договоренности. Передача картинок SSTV в режиме MFSK не поддерживается.

Общее описание
Чтобы настроиться на сигнал из эфира, нужно навести на него курсор и кликнуть левой кнопкой мышки в окне индикатора настройки, который расположен в правой верхней части программы, он может работать в режимах FFT (Спектроскоп), W.F. (Водопад), Sync (Синхроимпульсы) соответствующие кнопки находятся слева от индикатора. Лучше всего, слабые сигналы видно когда индикатор работает в режиме 'водопада'. Нужно отметить, отличную работу 'водопада' на котором видны даже очень слабые сигналы. Чуть ниже, вы видите кнопки которыми меняется ширина обзора на индикаторе, это 500Гц, 1кГц, 2кГц и 3кГц. Для поиска интересных станций, лучше подходит широкая полоса в 2 - 3кГц, для проведения QSO - узкая, 500Гц или 1кГц.

Между индикатором настройки и кнопками FFT, расположена вертикальная полоса, это индикатор уровня сигнала и порога шумоподавителя. Входной сигнал на звуковую карту должен быть таким, чтобы полоска ярко-зеленого цвета доходила до середины или чуть выше. При недостаточном уровне звукового сигнала, качество приема заметно ухудшается.
Порог электронного шумоподавителя, устанавливается простым щелчком на этом индикаторе. Вы увидите тонкую полоску, которую можно двигать вдоль индикатора. Чем она ниже, тем более слабые сигналы будет принимать программа. Для DX QSO шумоподавитель лучше выключить, опустив его в самый низ или подведя курсор на полоску, нажмите правую кнопку мыши и выберите OFF.

В верхнем левом углу располагаются две большие кнопки TX(Home) и TXOFF. Об их назначении догадаться нетрудно, при нажатии TX(Home) программа начинает передачу того, что вы печатаете в передающем окне или выводит текст из заранее подготовленных макросов, при этом название на кнопке меняется на RX. Нажав ее вы перейдете в режим приема. Обратите внимание, что в режимах MFSK, BPSK, GMSK переход на прием происходит не сразу, это особенность протоколов. Кнопка TXOFF выключает передачу мгновенно (обрывает передачу) и не ждет окончания передачи текста.

Под надписью BPF расположены четыре кнопки которые управляют шириной полосы пропускания DSP фильтра, чем уже выбранный фильтр, тем больше нагружается процессор компьютера, но и качество приема слабого сигнала или сигнала в QRM, реально возрастает. Хотя, с другой стороны, слишком узкий фильтр, может ухудшить качество приема.

Кнопка AFC(АПЧ) включает систему точной автоподстройки на частоту принимаемого сигнала, замечу, что в MMVARI имеется возможность регулировки АПЧ в широких пределах, как по ширине захвата так и по уровню. Когда станции расположены вплотную и сигнал принимаемой станции слабее других, АПЧ может перескочить на соседний сигнал, в этих случаях ее лучше отключать.

Кнопка NET фиксирует частоту передачи на определенной месте, в то время как частота приема может меняться, это удобно когда вам отвечают неточно на частоте. Когда NET нажата, частоты приема и передачи совпадают.

Кнопка ATC, это автоматический контроль синхронизации, полезная функция при проведении QSO, когда по каким любо причинам, сбиваются временные метки в принимаемом сигнале (например, если у корреспондента не калибрована звуковая карта). С помощью ATC, программа подстраивает временные метки под принимаемый сигнал, чтобы лучше его декодировать, это рельно помогает при приеме слабых и зашумленных сигналов. Обратите внимание, что функция ATC, в MMTTY имеет совершенно другое назначение (не перепутайте)!

Аппаратный журнал
Простой но в тоже время достаточно функциональный журнал, встроен в программу. Он полностью совместим с MMTTY, MMSSTV и позволяет экспортировать, импортировать данные в широко распространенный форматы ADIF, Log2000, Hamlog, Cabrillo. Файл с данными о проведенных QSO называется ваш_позывной.mdt. Программа может работать совместно с внешним аппаратным журналом Turbo HAMLOG который для нас пока не актуален, так как написан на японском языке.

панель аппаратного журнала

Начало связи, нужно обозначить нажатием кнопки QSO, после окончания связи, снова нажмите на кнопку и этот контакт будет записан в журнал. Если связь не нужно записывать в лог - нажмите на Clear.
Если связь с корреспондентом, позывной которого введен, уже была, в другие окна журнала автоматически подставляются его данные. Это очень удобно и экономит время. Нажав на кнопку Data вы получите полную информацию о позывном и список всех контактов с ним.
Чтобы в журнале появились пункты QTH, Note, QSL, подведите курсор на поле где написано слово Name и нажмите правую кнопку мыши. Еше одно нажатие, уберет дополнительные поля. Кнопка List расположена с правой стороны, она открывает новое окно с аппаратным журналом.

Приемное и передающее окна
Под аппаратным журналом располагается приемное окно, в его буфер помещается 1024 строки принятого текста. В приемном окне, вы можете выделять текст и копировать его в другие программы или окна. Стереть всю информацию из этого окна, можно макросом <%ClearRXW>. Еще ниже располагается передающее окно. В нем, можно печатать и корректировать текст прямо во время передачи. В него также можно копировать тексты из других окон и программ. Во время передачи, уже переданный текст, окрашивается в другой цвет. Макрос <%ClearTXW> сотрет все содержимое передающего окна.

Статусная строка
В самом низу окна программы, расположена строка состояния на которой отображается текущая страница (всего их может быть четыре), индикатор соотношения сигнал-шум, частота дискретизации звуковой карты, номер задействованного порта, тип кодировки шрифта при передачи и длинное окно с текущими подсказками.

Настройка русского языка
По умолчанию русский язык не везде отображается корректно, это легко исправить. Чтобы все выводилось правильно, во всех окнах программы, идем в меню OPTIONS → SETUP MMVARI → MISC → RX WINDOW и нажимаем кнопку FONT, выбираем шрифт ARIAL и набор символов: кириллица. Жмем OK, чтобы все изменения запомнились. Проделываем те же операции в меню TX WINDOWS → FONT. В меню MISC, кнопка ENGLISH должна быть вдавлена, нажмите на кнопку с многоточием рядом с ней и сделайте все как в RX WINDOWS. Теперь программа полноценно поддерживает русский язык во всех меню, окнах и аппаратном журнале.

Дополнительные каналы приема
Кроме приема на основной частоте, MMVARI может вести одновременный прием на четырех дополнительных частотах. Каждый дополнительный канал приема работает в своем окне, с маленьким индикатором настройки и измерителем уровня сигнала. Программа позволяет вести одновременный прием до четырех станций работающих в разных протоколах и на разных скоростях! Чтобы открыть дополнительное окно, подведите курсор на сигнал станции и нажмите правую кнопку мышки. В открывшемся окне выберите Open sub channel on here и далее CH1.....CH4. В открывшемся приемном окне, установите вид модуляции, скорость и при необходимости, подстройтесь на станцию.

дополнительное приемное окно

Калибровка звуковой карты
Для перехода в меню калибровки звуковой карты, подведите курсор к статусной строке и кликните правой кнопкой мышки по окну с частотой дискретизации звуковой карты, обычно там стоит 11025/0.0. Перед вами откроется новое окно. Настройтесь на частоту 9994кГц USB и ждите частых сигналов. По экрану поползут полосы нужно сделать так чтобы они стали идеально ровными по вертикали. В конце нажмите ОК. Программа сама сохранит и запишет скорректированное значение.

Макросы и их использование
В программе имеется 144 кнопки к которым можно привязать различные тексты и команды, что более чем достаточно. Встроенные макросы очень разнообразны, с их помощью можно писать небольшие 'скрипты', для выполнения различных действий в программе и управления трансивером через CAT-интерфейс. Чтобы установить сколько строк с кнопками будет отображаться, зайдите в View → Row of Macro Buttons и выберите значение 2, 3 или 4.
Перед проведением цифровых QSO, нужно заранее приготовить типовые тексты. Как уже говорилось, макросы в программе настолько разнообразны, что просто поражают воображение. Для того чтобы создать текст, нажмите правой клавишей мышки, на любой кнопке находящейся ниже передающего окна.

окно для записи текстов и макросов

На картинке вы видите текст, который передает позывной корреспондента и затем ваш позывной. Макросы можно вставлять между текстом в нужные места. В MMVARI существует два типа макросов: Condition command и Macro command они отличаются назначением. Вот список Macro command которые вставляются в обычные тексты, для облегчения рутинной работы:

<%TX>         перейти на передачу
<%RX>         перейти на прием
<%TXRX>       переключиться в противоположное состояние
<%TXOFF>      выключить передачу
<%AutoClear>  автоматически очищать предающее окно
<%ClearTXW>   очистить передающее окно
<%ClearRXW>   очистить приёмное окно
<%MyCall>     мой позывной
<%HisCall>    позывной корреспондента
<%HisName>    имя корреспондента
<%DearName>   подстановка имени корреспондента во фразу: Dear имя
<%HisRST>     рапорт для вашего корреспондента
<%MyRST>      мой рапорт
<%FREQ>       текущая частота
<%BAND>       текущий диапазон
<%HisQTH>     местоположение корреспондента
<%Note>       текст написанный в заметках
<%UDATE>      текущяя UTC дата
<%UTIME>      текущее UTC время в формате HH:MM
<%UTIMES>     текущее UTC время в формате HH:MM:SS
<%LDATE>      местная дата
<%LTIME>      местное время (HH:MM)
<%LTIMES>     местное время (HH:MM:SS)
<%PTIME>
<%LPTIME>
<%QPTIME>
<%Capture>
<%HisGreetings=2> автоматическое приветствие (1=GA, 2=Good morning)
<%HisNR>      порядковы номер и рапорт корреспондента (для контестов)
<%MyNR>       то же, но рапорт ваш (для контестов)
<%Entity=<%HisCall>>
<%EntityName=<%HisCall>>
<%Continent=<%HisCall>>
<%PLATFORM>   тип операционной системы
<%CodePage>   кодовая страница выбранного языка
<%LanguageID> цифровой идентификатор выбранного языка
<%VER>        версия программы
<%VERMINOR>
<%VARITYPE>
<%MODE>       текущий режим работы
<%Level>      соотношение сигнал-шум корреспондента
<%PeakLevel>  пиковое значение сигнал-шум
<%AverageLevel>
<%MetricMFSK>
<%MetricMFSK=even>
<%SquelchLevel=3.0> установить уровень шумоподавителя (s/n=3db)
<%CWID>       передать свой позывной CW в конце
<%CWID= 73 :> передать указанный текст
<%CWSpeed=20> скорость передачи CW
<%MODE=GMSK>  установить режим работы (rtty, bpsk, mfsk...)
<%AutoNET>    включить автоподстройку передачи автоматически
<%NETON>      включить автоподстройку передачи
<%NETOFF>     выключить автоподстройку передачи
<%AFCON>      включить автоподстройку приёма
<%AFCOFF>     выключить автоподстройку приёма
<%ATCON>      включить регулировку усиления
<%ATCOFF>     выключить регулировку усиления
<%RxCarrier>  показать текущую частоту приема
<%TxCarrier>  показать текущую частоту передачи
<%RxCarrier=1750> установить текущую частоту приема
<%TxCarrier=1750> установить текущую частоту передачи
<%AFCFrequency>   показать частоту автоподстройку приема
<%TONE>       передать одиночный тон
<%BPF=0>      установить один из фильтров 0, 1, 2 или 3
<%BPFTaps=64,80,128,256> установить ширину dsp-фильтров
<%Notch=ONOFF>    включить-выкл notch-фильтр
<%Notch=1750>     установить частоту notch-фильтра в герцах
<%NotchTaps=128>  установить добротность notch-фильтра (16-512)
<%NotchWidth=1>   установить ширину notch-фильтра (1-1000)
<%BAUD>       показать текущую скорость работы
<%BAUD=31.25> установить скорость (20-300)
<%AFCWidth=50>    частота AFC в герцах
<%AFCLevel=12>    чувствительность AFC в децибелах
<%ATCSpeed=0>     скорость ATC (0-5)
<%ATCLevel=15>    чувствительность ATC в децибелах
<%ATCPPM>         корректировка ATC в ppm
<%PTT=COM1>   установить номер порта для управления ptt
<%Radio=COM2> установить номер порта для обмена с трансивером
<%RadioOut=\$000000000F> информация для радиопорта
<%RadioCarrierKHz>
<%RadioKHz>       частота ГПД в кГц
<%RadioKHz=YAESU-HF,14073.000>
<%RadioMode>      показать режим работы интерфейса радиостанции
<%RadioMode=CI-V,LSB> установить режим работы интерфейса для радиостанции
<%PTTON>      нажать ptt
<%PTTOFF>     отпустить ptt
<%FFTScale>   показать текущий диапазон FFT индикатора
<%FFTScale=2> установить диапазон для FFT  (0-2)
<%FFTWidth=1000> установить ширину обзора FFT индикатора (500-3000)
<%SyncWidth=14>
<%ShowCH=1,ONOFF>     показать первый канал приема (1-4) (on/off/onoff)
<%SetCHSpeed=1,31.25> установить скорость в первом канале приема
<%SetCHMode=1,GMSK>   установить протокол в первом канале приема
<%ClearCHW=1> закрыть окно, первого канала приема (1-4)
<%QSOON>      обозначить начало qso
<%QSOOFF>     обозначить конец qso
<%FREQ=7>     установить частоту
<%BAND=40m>   установить диапазон
<%HisCall=<%Capture>> установить позывной корреспондента
<%HisRST=599> установить рапорт корреспондента
<%MyRST=599>  установить установить мой рапорт
<%Note=<%VARITYPE>> написать заметку в журнал
<%RefRXW>     открыть приемное окно для редактирования
<%EditFile=memo.txt, 0> открыть файл (имя, только чтение)
<%SendFile=test.txt>    передать файл
<%EditMacro=2>          редактировать макрос с указанным номером
<%EditMacro=OnStart>    редактировать макрос с указанным именем
<%EditMacro=AS(CW)>     редактировать макрос AS(CW)
<%EditMacro=MacroTxt.txt> редактировать текстовый файл с макросом
<%MacroText=MacroTxt.txt> запустить макрос из текстового файла
<%SaveMacro=Macros.mac> сохранить все макросы
<%LoadMacro=Macros.mac> загрузить все макросы
<%HEX2DEC=ABCD> перевод значения из DEC в HEX
<%CHAR=A>
<%CHARX=A>
<%CODE=82A0>
<%SP>         добавить пробел
<%CR>         добавить символ CR
<%BS>         добавить символ перевода строки
<%TAB>        добавить символ табуляции
<%SkipCR>     пропустить символ CR (ENTER) в макросе
<%DisableCR>  выключить CR в макросе
<%EnableCR>   включить CR в макросе
<%DisableTAB> выключить табуляцию в макросе
<%EnableTAB>  включить табуляцию в макросе
<%DisableSP>  выключить пробел в макросе
<%EnableSP>   включить пробел в макросе
<%Skip$=3,<%HisCall>> пропускать указанный ASCII код
<%MSkip$=3,<%Note>>
<%Find$=xx,ABCxxVVV>  искать строку
<%StrLen=<%HisCall>>  показать длину строки
<%MStrLen=<%Note>>
<%ONOFF=<%Cond=IsSQ>>
<%RepeatText=3,<%RepeatText=33,RY><%CR>> повторить указанную строку
<%IDLE>       передавать idle сигнал
<%DIDDLE=LTR> установить diddle код для RTTY (BLK или LTR)
<%UOS=ON>     установить UOS для RTTY (on/off/onoff)
<%RTTYWaitC=0> установить ожидание символа для RTTY
<%RTTYWaitD=0> установить ожидание diddle для RTTY
<%RTTYWordOut=ON>
<%TxShift=170.0> установить разнос тонов передачи
<%RxShift=170.0> установить разнос тонов приёма
<%ToUpper=<%HisName>>
<%ToLower=<%HisCall> de <%MyCall>>
<%IME=ON>     контроль IME (on, off, onoff)
<%RepeatTX=3000>  повторить предачу через указанное кол-во милисекунд
<%Repeat=10000>   повторить макрос через указанное кол-во милисекунд
<%OnTimer=<%WaterMsg=4,<%AFCFrequency>Hz>> установить OnTimer для макроса
<%Page=1>
<%AutoReturn>
<%MoveTop>    установить курсор в начало текста
<%MoveEnd>    установить курсор в конец
<%PopupTXW>
<%DupeText>
<%SeekNext>
<%SeekPrev>
<%SeekTop>
<%DigitalLevel=16384>
<%OutputVolume>
<%InputVolume>
<%Setup>      открыть окно с установками
<%SetupLog>   открыть окно аппаратного журнала
<%SetupRadio> открыть окно с установками для трансивера
<%Calibration> открыть окно для калибровки звуковой карты
<%BaseClock>  показать базовую частоту часов звуковой карты
<%Clock>      показать скорректированную частоту зв.карты для приема
<%Clock=11025.00> установить частоту зв.карты для приема
<%TxOffset>   показать сдвиг частоты тонов для передачи
<%TxOffset=0.00> установить сдвиг частоты тонов
<%DemodulatorClock> частота демодулятора в герцах
<%FFTClock>
<%FFTSize>
<%WaterNoise>       показать чувствительность водопада в децибелах
<%WaterNoise=35,65> установить чувствительность водопада
<%WaterLevels>      показать уровень водопада
<%WaterLevels=10,60,134,192,220,240> установить уровень водопада
<%WaterColors>      показать цвета водопада
<%WaterColors=0,FF0000,FFFFFF,FF,FFFF00,FF0000,FFFF00,FFFF,80FF,FF,FF,FF>
<%SpectrumColors>   показать цвета индикатора
<%SpectrumColors=0,FF00,FFFFFF,808080,FFFF00,FF0000> установить цвет водопада
<%RxColors>         показать цвета rx окна
<%RxColors=FFFFFF,0,FF0000,FF,E0E0E0>
<%TxColors>         показать цвета tx окна
<%TxColors=FFFFFF,0,FF0000,FF,FFFFFF>
<%SoundName>        показать имя звуковой карты
<%SoundDevice=MONO,-1> установить режим ввода-вывода звука
<%Suspend>          освободить звуковую карту без выгрузки программы
<%Resume>
<%Wait=1000>  ожидание в милисекундах
<%Execute=notepad.exe <%Folder>memo.txt>  запустить указанную программу
<%Shell=<%Folder>emmvari.txt>  открыть файл в оболочке
<%Exit>       выйти из программы
<%ShutDown>   перезагрузить windows
<%YesNo=String>
<%YesNoCancel=String>
<%OkCancel=String>
<%Error=Macro ERROR>
<%Warning=Macro WARNING>
<%Message=Macro message>
<%WaterMsg=4,Metric=<%MetricMFSK>>
<%Repeat=1000>
<%RxStatus=Status>
<%TableCount=AAA,BBB,CCC>
<%TableStr=1,AAA,BBB,CCC>
<%Table=<%BAUD>,20.0,31.25,45.0>
<%Menu=A,B,C,D>
<%MenuB="<%Table=<%BAUD>,20.0,31.25,45.45,62.5>",20.0,31.25,45.45,62.5>
<%Menu>
<%Input=Input strings>
<%Input$>
<%Click$>
<%CLICK$>
<%KeyStroke=41>
<%KeyDown=12>
<%KeyStroke=<%CHARX=V>>
<%KeyUp=12>
<%KeyUp=12>
<%DoMacro=2>
<%DoEvent=OnMode>
<%Events>
<%ButtonName=1,Clear>
<%ButtonContents=1,<%ClearTXW>>
<%PlayBack=ON>
<%PlayBack=10>
<%PlayBackSpeed=5>
<%PlayBackButtons=60,30,15>
<%PlaySound=sound.mmv>
<%PlaySound>
<%RecordSound=sound.mmv>
<%RecordSound>
<%QuickRecordSound>
<%StopPlayRecord>
<%SoundTime>
<%Slider=CW speed,<%CWSpeed>,10,60,1,10>
<%FileDialog=Text file,Text Files(*.txt)|*.txt|,Default,txt,>
<%CPUBENCHMARK>  показать скорость процессора
<%RANDOM=<%PTIME>>
<%RANDOM>
<%String=Name>
<%CallProc=Name>
<%DebugProc=Name>
<%Format=%.3f,<%BAUD>>
<%Inv=<%Cond=IsSQ>>
<%Floor=<%BAUD>>
<%Log=10>     вычислить логарифм указанного числа
<%Exp=2.302585092994046>
<%Sqrt=10>
<%Pow=10,2>
<%Sin=0.5>    вычислить синус указанного числа
<%Cos=0.5>    вычислить косинус указанного числа
<%Tan=0.5>    вычислить тангенс указанного числа
<%ArcTan=0.5> вычислить арктангенс указанного числа
<%Cond=IsSQ>
<%ListSpeed=20.0,31.25,45.45,62.5,93.75,125.0,250.0>
<%ListCarrier=500,800,1000,1200,1500,1750,2000,2210>
<%ListLogFreq=1.8,3.5,7,10,14,18,21,24,28,50,144,430,1200>
<%SetCaptureLimit>
<%ClearCaptureLimit>
<%Font>
<%Font=,14,>
<%SetFocus>
<%Folder>
<%AddMenu=E&X,Caption&1,OnCaption1Click>
<%InsertMenu=&H,&P,Caption&1, OnCaption1Click>
<%ShowMenu=&F, ONOFF>
<%EnableMenu=&F, ONOFF>
<%ShortCut=&V, &C, &1, Ctrl+1>
<%CheckMenu=&H, &P, ONOFF>
<%DeleteMenu=&X>
<%DoMenu=&V,&C,&1>
<%DoButton=FFT>
<%ShowHTML=home>
<%SendMessage=PSKGNRFUNC,0,1>
<%Memory>     статус памяти (загрузка в %, всего в Мб, свободно в Мб.)
<%BuffSize=4096> установить минимальный размер буфера для макроса
<%EOF>        символ конца макроса

Как видите, здесь есть всё что только можно придумать, но и это еще не все! Теперь смотрите список Condition command, они применяются при создании сложных (интелектуальных) скриптов для расширения возможностей программы:


#if IsCall
#if IsName
#if IsHisRST
#if IsMyRST
#if IsQTH
#if IsNote
#if IsLocal
#if IsQSO
#if IsDupe
#if IsAFC
#if IsNET
#if IsTX
#if IsPTT
#if IsSQ
#if IsTone
#if IsTXEmpty
#if IsRXScroll
#if IsRepeat
#if IsIME
#if IsPlaying
#if IsFileSending
#if IsRecording
#if IsFile(test.txt)
#if IsDefined(Name)
#if IsMBCS(<%HisName>)
#if IsAlpha(<%MyNR>)
#if IsNumber(<%MyNR>)
#if IsUOS
#if IsRadioLSB
#if IsCaptureText(CQ)
#if IsOnTimer
#if IsIdle
#if IsEnglish
#if IsMfskCenter
#if IsMfskMetricSq
#if Is1stCR
#if IsPlayBack
#if IsCodeMM
#if IsCall(<%CLICK$>)
#if IsRST(<%CLICK$>)
#if IsMenu(&H, &U)
#if IsMenuEnabled(&H, &U)
#if IsMenuChecked(&H, &U)
#if IsMenuVisible(&H, &U)
#if IsButton(QSO)
#if IsButtonEnabled(QSO)
#if IsButtonDown(QSO)
#if ValFreq>=144
#if ValBaud==31.25
#if ValCarrierRX<1500
#if ValCarrierTX<1500
#if ValTimeLocal<1200
#if ValTimeUTC>=0900
#if ValDateLocal>=0801
#if ValDateUTC<0401
#if ValScope
#if ValMacro(<%VER>)>=0.37
#if ValMenu
#if StrCall==JA3QRZ
#if StrMode==GMSK
#if StrBand==40m
#if StrHisRST==599
#if StrMyRST==599
#if StrNote==???
#if StrEntity==JA
#if StrContinent==AS
#if StrVARITYPE==JA
#if StrPLATFORM==XP
#if StrMacro(<%VER>)==0.37
#else
#endif
#macro <%TX>
#proc Name
#endp конец процедуры
#repeat 3
#define Name Strings
#DELETE Name
#DELETEALL
#exit выход из макроса
#comment строка с коментарием

Авторские макросы от RN9AAA
Виктор rn9aaa много экспериментирует с MMVARI, он прислал полезные и интересные скрипты, расширяющие возможности управления программой и демонстрирующие примеры использования ее скриптов.

Управление добротностью полосового DSP-фильтра:
Внимание, установка добротности 512 не документированна, но работает! Интересно то, что повышение добротности не всегда оправданно, так что пробуйте разные варианты и определитесь сами.

<%DisableCR>
#macro <%Menu=16,32,64,80,96,112,128,256,512>
#if ValMenu
#define        _cLine        <%Format=%d,<%Input$>>
<%BPF=0><%BPFTaps=_cLine>
#endif
<%EOF>

Меню для управления DSP-фильтром:
В этом макросе, я хотел показать возможность совместной работы BPF и Notch фильтров, в режиме rtty смоделированна более прогрессивная хар-ка с двумя узкими полосами, за счет взаимодействия двух фильтров. В режиме bpsk-Narrow, в зависимости от положения курсора, эмулируется фильт нижних частот или же верхних, в дополнение к полосовому фильтру. Это дает прирост в отношении сигнал-шум и позволяет более устойчиво работать системе ATC и AFC, на предельно малом сигнале (пробуйте раные режимы). Для активации переключения, необходимо в меню еще раз нажать на bpsk-Narrow. Для полного отключения данного макроса, обязательно нажмите stop!

<%DisableCR>
<%SquelchLevel=0><%AFCON>
#macro <%Menu=rtty-U-Smart,rtty-L-Smart,bpsk-Narrow,mfsk-U-DX,mfsk-L-DX, -, Stop>
#if ValMenu == 1
#macro <%OnTimer=<%MODE=rtty-U><%Notch=<%AFCFrequency>>><%NotchTaps=512><%NotchWidth=40>
#elseif ValMenu == 2
#macro <%OnTimer=<%MODE=rtty-L><%Notch=<%AFCFrequency>>><%NotchTaps=512><%NotchWidth=40>
#elseif ValMenu == 3
<%MODE=bpsk><%BPF=0><%BPFTaps=256><%NotchTaps=512><%NotchWidth=400>
#if <%AFCFrequency> >= 1450
#macro <%OnTimer=<%Notch=<%Format=%f,<%AFCFrequency>-433>>>
#else
#macro <%OnTimer=<%Notch=<%Format=%f,<%AFCFrequency>+433>>>
#endif
#elseif  ValMenu == 4
#macro <%OnTimer=<%MODE=mfsk-U><%Notch=OFF><%BPF=0><%BPFTaps=96>>
#elseif ValMenu == 5
#macro <%OnTimer=<%MODE=mfsk-L><%Notch=OFF><%BPF=0><%BPFTaps=96>>
#elseif ValMenu == 6
#macro <%OnTimer=><%Notch=OFF>
#endif
<%EOF>

Установка порога чуствительности 'водопада':
Своего рода это подавитель визуальных помех, но не стоит ставить большие значения т.к. вы можете не увидить сигнал, он окажется за порогом отображения. С помощью этого макроса я устанавливаю уровень сигнала с приемника на зв.карту, для моего харда (AC97-ALC201A) величина равна 38-42дб, при этом, прием самых слабых сигналов оптимален. Внимание, порог индикации не документированны, автор предлагает только 35 и 65дб!

<%DisableCR>
#macro <%Menu=16,25,35,45,55,65,75>
#if ValMenu
#define        _cLine        <%Format=%d,<%Input$>>
<%WaterNoise=_cLine>
#macro <%OnTimer=<%WaterMsg=4,УРОВЕНЬ <%WaterNoise>dB>>
#endif
<%EOF>

Определение страны по позывному:
Скрип облегчает определение страны по позывному. Имеет два режима Auto Info Call автоматический анализ принятой информации и поиск в ней позывных, и ручной режим Manual info Call, вы сами выбираете позывной с помощью клика мышки.

<%DisableCR>
#comment  made  rn9aaa 2004.11.06
#macro <%Menu=Auto Info Call,Manual info Call,-, Stop>
#if ValMenu == 1
#macro <%OnTimer=<%WaterMsg=4,<%Capture>><%WaterMsg=3,<%EntityName=<%Capture>>
                                                  ** <%Continent=<%Capture>>>>
#elseif ValMenu == 2
#macro <%OnTimer=<%WaterMsg=3,<%EntityName=<%HisCall>> ** <%Continent=<%HisCall>>>>
#elseif ValMenu == 3
#macro <%OnTimer=>
#endif
<%EOF>

Изменение разноса между частотами
Часто в режиме RTTY(FSK-W) операторы используют нестандартные разносы частот, для быстрой настройки на такие сигналы, я предлагаю следующий скрипт (примечание: стандарт для RTTY HAM 170HZ).

<%DisableCR><%DisableTAB>
#comment  made  rn9aaa 2004.11.06
#define        _tTitle        Shift RTTY and FSK-W
#define        _tCommand        TxShift
#define        _tRange        "10,450,1"
#macro <%Menu=_tTitle>
#if ValMenu
#define        _strArg        <%TableStr=<%Menu>,_tTitle>,<%TableStr=<%Menu>,_tCommand>,
                                              <%TableStr=<%Menu>,_tRange>
<%CallProc=Slider, _strArg>
#endif
#proc Slider @Title, @Command, @Min, @Max, @Step, @NumScales
<%DisableCR>
#macro <%Slider=@Title, <%@Command>, @Min, @Max, @Step, @NumScales>
#if StrMacro(<%Input$>)
<%@Command=<%Input$>> <%RxShift=<%Input$>>
#endif
#endp
<%EOF>

Обновление файла ARRL.DX
Забирайте отредактированный файл ARRL.DX, в который добавлены росскийские и украинские префиксы. Просто запишите его, вместо старого в директорию c:\mmvari и пользуйтесь на здоровье.

Сканирование в полосе звуковых частот:
Скрипт предназначен для сканирования в полосе от 250 до 2650Гц, полосу сканирования можно легко изменить, также можно изменить и чуствительность (Level). При обнаружении сигнала, система автоматически подстраивется и происходит декодирование в основном окне. В виду простоты работы алгоритма, возможны ложные срабатывания, что в прочем свойственно и аппаратным решениям.

<%DisableCR><%DisableSP>
<%AFCON><%ATCON><%NETON>
#comment  made  rn9aaa 2004.11.24
<%WaterMsg=1,Scan>
#if <%RxCarrier> > 2650
<%RxCarrier=250>
#elseif <%RxCarrier=<%Format=%f,<%RxCarrier>+20>>
#endif
#if <%Level> > 5
<%RxCarrier=<%Format=%f,<%RxCarrier>+5>><%WaterMsg=1,Busy>
#else
#macro <%Repeat=1>
#endif
<%EOF>

Эти примеры, сделаны мной для изучения возможностей программы, все константы вы можете менять в разумных пределах и попробрвать подобрать оптимальные значения для вашей системы PC<-->TX/RX. Я не несу какую либо ответственность за последствия в применении данного макро-кода, все что вы делаете, является только вашей личной волей и стремлением к познанию.


Заключение
MMVARI использует продвинутый алгоритм, который позволяет вести качественный прием слабых сигналов. Скорость обмена регулируется во всех цифровых видах. Несмотря на beta версии, работает она очень хорошо и может составить конкуренцию лучшим программам в этой области.
Скачать MMVARI, можно с японского сайта автора, размер архива примерно 700Кб. С другими программами JE3HHT, вы можете познакомится на сайте mmhamsoft.ham-radio.ch.

Результаты тестирования MMVARI и сравнение ее с другими программами аналогичного назначения, смотрите в ''сводной таблице качества приема программ'', данные в ней простоянно уточняются.

Полезные ссылки
Модуляция GMSK в современных системах радиосвязи

RN9AAA
UA6HJQ