2.4.1 Stored Messages and the Function Key Editor

1. Fundamentals

One of the things that differentiates contest logging programs from general-purpose loggers is the ability to send stored messages, to save energy during long contests. N1MM Logger can send stored messages in CW, SSB and digital contests. These messages can incorporate macros, short-form statements which perform program tasks automatically.

It will help you to follow the discussion below if you first understand, in general terms, how N1MM Logger's message-sending capabilities are organized. The architecture consists of three primary components: Function Key Files, Messages, and Macros

  • Function Key Files are text files with a .mc extension that can be edited with a text editor (Notepad) or the program's internal Function Key Editor
    • Each row of text in a Function Key file is either a Comment or a Message
      • Comments begin with a pound sign "#" and help to explain the purpose of surrounding Messages. Comments are black text in the Function Key Editor
  • Messages are lines of text in a Function Key file that do not begin with a pound sign "#"
    • Messages begin with a label (text that will appear on the keys in the Entry Window), followed by comma ",", followed by the message itself
    • Messages can contain ordinary text, macros, or - in Messages for phone contests - WAV filenames
    • The first 12 Message lines are called Run Messages. They are assigned, in sequence, to the keyboard Function Keys F1 - F12 when you are in Run mode. Run Messages are blue text in the Function Key Editor
    • The next 12 Message lines (13 - 24) are called Search and Pounce Messages. They are also assigned, in sequence, to the keyboard Function Keys F1 - F12, but only when you are in Search and Pounce mode. Search and Pounce Messages are green text in the Function Key Editor
  • Macros are special text expressions surrounded by curly braces "{...}"
    • There are also a few single-character macros: !, *, #, @
    • Macros can either trigger a program action or expand to a string of text to be transmitted in CW or digital modes

Three default Function Key message files are included with the program, one for each mode: SSB Default Messages.mc", "CW Default Messages.mc, and Digi Default Messages.mc. These are assigned automatically when you open a new contest (>File >New Log in database), as indicated on the Associated Files tab of the Contest Setup Dialog. You can edit the messages in the default files, export the messages to a new .mc file, or load different messages from an existing .mc file (for example, a .mc file that you download from the website's >File >Sample Function Key Files gallery). We'll get further into this below.

 A Macro is Not a Message

Early in the use of computers for amateur radio contesting, the term "macro" was used to denote any stored message. We follow a different convention - for us, the term Macro means a message component that either triggers a program action or expands to a string of text to be transmitted in CW or digital modes. The use of the .mc filename extension for our Function Key message files is a left-over from those days. Don't be misled.

1.1. Important Change for Those Transitioning from N1MM Classic

N1MM Logger Classic found its wav files assuming the starting directory was the N1MM Logger program directory. Typically users would place their wav files in a sub-directory of the N1MM Logger program directory called wav. To call up a wav file in this sub-directory, you would specify the file name in the form wav\filename.wav (or wav\{OPERATOR}\filename.wav if you were using operator-specific files) in your function key messages.

N1MM Logger Plus finds its wav files assuming the starting directory is the wav sub-directory created by the installer inside the N1MM Logger+ user files directory (*not* the program files directory). To call up a wav file in this sub-directory, you specify the file name in your function key messages as filename.wav, i.e. without the leading wav\ (or if you are using the {OPERATOR} macro, as {OPERATOR}\filename.wav, again without the leading wav\). If you edit your message files by removing the leading wav\ on file names in messages, you will be able to access wav files you have placed in the wav sub-directory.

Alternatively, if you want to continue to use the same message files you used with Classic without editing them to remove all those leading wav\'s, you can create a new wav sub-sub-directory inside the wav sub-directory in the N1MM Logger+ user files directory (so that these wav files are located at My Documents\N1MM Logger+\wav\wav\filename.wav, or My Documents\N1MM Logger+\wav\wav\{OPERATOR}\filename.wav - note the two levels of wav\ in the path name), and once you have placed your wav files in that new sub-directory (or in operator-specific sub-directories under that wav\wav sub-directory if you are using the {OPERATOR} macro), you can call those wav files up using your old function key message files.

2. The Function Key Message Editor

The Function Key Message Editor is the key tool for managing your Function Key messages. It provides the best way for assigning, managing and editing Function Key Message files using a Notepad-like editing window. You can import and export function key message files, edit them, and save them.

The easiest way to open the Function Key Message Editor is by typing Alt+K in the Entry Window, or by simply right-clicking on the message buttons in the Entry Window. The editor will display the message file associated with the current program mode (CW, SSB or digital). If you want to open the message files associated with the other modes, select >Config >Change CW/SSB/Digital Function Key Definitions and select the desired mode.

 Unknown Operating Mode?

If right-clicking on a message button or pressing Alt+K results in an error message to the effect that the function key editor cannot be opened because the operating mode is not set, or if the function key editor opens up but the messages you see are for the wrong mode, you must first set the operating mode (CW, SSB or digital) before opening the function key editor. You do this by typing the mode (CW, SSB, RTTY or PSK) into the call sign box and pressing Enter. Once you have done this, right-clicking on a message button or pressing Alt+K will open the function key editor with the messages for the mode you entered.

The Function Key Editor dialog window:

FunctionKeyEditor Main

2.1. The Save and Cancel Buttons

  • Save assigns the messages to the current contest and saves them to the file indicated in the title bar of the Function Key Editor. If you want to save those changes to a different file, use Export. Note: It is easy to change a default function key file without meaning to, if you forget that it is the file in the title bar and Save a modified version. If you do this, use the Sample Function Keys function below to retrieve the defaults, and then save them to the original file name.
  • Cancel closes the editing window without saving. If you have made any changes, or imported a file, the program will ask you whether you want to save the changes. Answer Yes and the editor assigns the messages to the current contest and saves them to the file indicated in the title bar of the Function Key Editor. Answer No and the editor just closes, abandoning any changes you may have made.

2.2. The File Menu

Function Key Editor File Menu

  • Copy these Messages to the Clipboard places the entire contents of the editor on the clipboard
  • Delete These Messages and insert Starter Message Text if you want to revert to the standard messages for the current mode, this option will copy them into the editor in place of the messages that were there, retaining the original filename. You will be asked if you wish to save your changes. OK makes the changes in the database and in the open .mc file; Cancel reverts to the previous message set.
  • Import and Assign a Different Function Key (.MC) file to this Contest assigns a file that you choose to this contest. It is entered on the Associated Files tab and will be automatically opened whenever you open this or another instance of this contest.
  • Save these Messages to a Different Function Key (.MC) filename opens a dialog where you can copy the current contents of the Function Key Message Editor to an .MC file of a different name.

 Starter Messages

There has been a significant change in the way Default [mode]Message text is handled.

A set of Default .mc files is loaded in the Documents folder at program installation. If you wish, you may modify these to your heart's content, changing them to fit each contest, or you may create and save contest-specific .mc files. Note, though, that if you start with a Default CW file, for example, make changes in the Function Key Editor, and Save them, they will be saved under that filename.

If you wish to restore the original Default messages, you can do the following:

  • Click on "Import and Assign a Different Function Key File" on the File menu, and select the Default [mode] Messages.mc file you wish to revert.
  • Click on "Delete these Messages and Insert Starter Message Text" (also on the File Menu).
  • Click the Save button in the Function Key Editor, to save the Starter messages to the database and to the Default [mode] Messages.mc file, effectively recreating it in original form. If you exit without clicking Save, you will be prompted to decide whether you want to save the changes or not.

2.3. The Edit or Right-click Menu

FunctionKeyEditor Rightclick

If you select the drop-down menu item >Edit, or right-click in the Function Key Message Editor Window, you'll see a short menu. Three of the choices - cut, copy and paste - are the familiar Notepad editing commands and should need no explanation.

  • Insert wav filename selection does what its name implies. Click on it and you will be asked to select a wav filename from the N1MM Logger+\Wav directory. Select a Wav file, and its filename will be inserted at the location of your cursor. The intended use of this function is to make it easy to construct complex SSB messages, combining macros and filenames.

 Databases and Function Key Assignments

Each database remembers your preferred Function Key file for a particular contest. For example, if you assign CQWWCW.MC to the CQ Worldwide CW contest in 2014, the database will remember your preference and also automatically assign the same file to the CQ Worldwide CW 2015 contest. However, if you open a new database for your logs, that memory is lost and you will begin with the default assignment of CW Default Messages.MC.

3. Function Key Message File Contents

Refer to the previous Fundamentals section and the Function Key Editor Dialog window screenshot for the following explanations

N1MM Logger accommodates up to 24 messages for each mode (CW, SSB and Digital), each divided into two sets of 12, one for Run mode, the other for Search and Pounce (S&P). (For more information on Run vs. S&P and other features of function key usage, see the Entry Window chapter section on Function Keys). This means that your Function Key message files can have as many as 24 active lines, plus an unlimited number of Comment lines. Here's an example::

3.1. Comment Line - any line that begins with a pound sign "#"

    • Comment Example: #This is a comment line

3.2. Message Line - any line that does not begin with a pound sign "#"

    • Simple Message Example: F1 CQ, CQ
      Message lines have two elements - a Label and the Message itself. The Label is separated from the Message with a comma ",". In this example, the label is "F1 CQ" and the transmitted message is "CQ"

    • Simple Message Example with a Macro: F1 CQ, CQ de {MYCALL}
      In this example, the transmitted message is "CQ de" followed by my callsign, which the program will retrieve from the >Config >Change Your Station Data "Call" dialog

    • Message Example with multiple Macro: F2 Exch,! {SENTRST} {EXCH} de {MYCALL}
      In this example of a contest exchange, the transmitted message begins with the other station's callsign "!", followed by an RST report "SENTRST", followed by the contest exchange (which could be an incrementing contact number, a state, a CQ zone, or any number of parameters based on the contest and the contents of the Sent Exchange box in the Contest Setup dialog), followed by "de", and finally my callsign

3.3. Message Content Limitations

    • Label length is limited to 29 characters, though you would never want to use that many
    • Message total length is limited to 255 characters
    • Message line count is usually 24 - 12 for Run and 12 for Search & Pounce. However, if you do not assign S&P messages the program will automatically substitute the Run messages in their place. For example if your S&P messages for F9 - F12 are identical to those in Run, you can leave those lines blank. But be careful - because you cannot have any gaps in the sequential numbering of the S&P messages

4. Sample Function Key Files

In addition to the three default message files that install with the program, there are also a large number of Sample Function Key files available for download here on the website. The advantage of these sample files, over the default files, is that they have been customized for the major contests and can be used without further modification.

5. Per-Operator Function Key Files

There is an option, selectable under the Other tab in the Configurer, which allows individual operators in a multi-operator station to each have their own function key message file. This gives different operators the capability to have function key message files tailored to their individual preferences. The function key file for all operators, is based on the function key message filename specified under the Associated Files tab in the contest setup window. The master function key file is edited when the OPERATOR is set to the station call sign.

In phone contests it is not necessary to use this option simply to change the voice in recorded messages (see the description of the {OPERATOR} macro in the next section on SSB function key messages instead). However, by using individual per-operator function key files, it is possible for one operator to use a function key message file that includes ! and # macros for voicing of call signs and serial numbers using pre-recorded letters and numbers, while another operator can use a function key message file that does not include these macros, and speak call signs and serial numbers into the microphone. In CW and digital modes, by using this option different operators can tailor their function key messages to match their individual preferences.

When this option is enabled, changing operators using the OPON or Ctrl+O command will switch the function key message file currently in use to that operator's personal function key message file. The first time an operator whose call sign is different from the station call sign signs on using Ctrl+O or OPON, the personal function key message file for that operator is initialized from the "master" file specified under the Associated Files tab in the contest setup window. Subsequently, that operator can make changes to the file using the Function Key Message Editor without having any effect on other operators' function key message files, thus enabling each operator to have their own individual files. The "master" file specified under the Associated Files tab can be edited only by the operator whose call sign is the same as the station call sign. See the description of this option in the Configurer section of the manual for more information on how this is implemented.

If an operator changes the function key message filename specified under the Associated Files tab in the contest setup window during the contest, all operators will be assigned new message files based on the new filename as they OPON.

6. Special Measures for SSB Function Keys

CW and RTTY messages are quite straightforward. SSB messages, however, are a bit trickier. If you run two filenames, or a macro and a filename together - for example "Mycall.wavCQ.WAV" or "1Mycall.wav - Windows won't know where the firstelement ends and the second begins. The simple solution is to insert a comma between elements in an SSB message, so that example becomes "Mycall.wav,CQ.WAV". Note that if you use a comma to concatenate wav files, you must put the whole string in double quotes in the editor.

The SSB Default Message.mc file, as shown in the Function Key Editor

Default SSB Messages Shown In FKey Editor

This screenshot shows the default SSB function keys, as supplied with the program initially. You'll note that each of the function key messages includes only one Wav filename. F5-His Call, which can either be 1 space, or if you are using voicing of call signs, filled with "!". This is the macro that is used to tell the program to voice a callsign by putting together letter and number files, so it would not normally be used. The whole subject of voicing, which is both a little complicated and quite controversial, is discussed below. __Unless you are planning to voice call-signs or serial numbers (see below), you should never have the "!" macro in your SSB definitions. The same goes for the "#", "*", and "@" macros. Use an explicit filename like mycall.wav.

The Wav files must be placed in the N1MM+ user directory, which would be C:\Users\login\Documents\N1MM Logger+\Wav (unless you changed the default user directory at time of installation). There is no "empty.wav" file; the program looks for that file name and treats it as a do-nothing command. In the case where a station has multiple operators, each operator's Wav files would be in an operator subdirectory C:\Users\login\Documents\N1MM Logger+\Wav\callsign\. For example, K3CT's Wav files when operating at N1MM's station would be located in C:\Users\N1MM\Documents\N1MM Logger+\K3CT\. Use the ctlr+O or OPON command to change the operator and tell the program to switch to that operator's Wav files.

6.1. The {Operator} Macro

As you probably noticed above, there is an {Operator} macro in the path for each of the .wav message files. The purpose of this is to enable you to change the stored message files to match the operator currently on duty (in a multi-op or guest op situation), so that the voice used in the stored message files will be the same as the live operator's voice when using the microphone. For example, if a set of messages (such as CQ.wav) are stored in My Documents\N1MM Logger+\Wav\N1MM, then if N1MM is the operator and the message refers to {OPERATOR}\CQ.wav, the program will send his stored CQ.wav file when that key is pressed. The same is true for stored letters and numbers, used in voicing callsigns and serial numbers, except that those are stored in the path which is identified on the Other tab of the Configurer. If the path specified in the Configurer is {OPERATOR}\, N1MM's letter and number files will be found at My Documents\N1MM Logger+\wav\LettersFiles\N1MM\ .

The current operator is displayed in the title bar of the Info window, and also in large blue letters inside that window, to the right. It is pre-filled with the callsign in the Station Data. To change the operator, just press Ctrl+O and enter the desired call-sign.

Even if you operate alone, and never need to change operators, we recommend you leave the {Operator} macros in place and put the wav files in folders with your callsign as the title. That will make it easy to add a guest op, and in the meantime the substitution for {OPERATOR} will be provided from the Station Data page.

6.2. Recording on the Fly

If you need to record or re-record a function key file in a hurry, you can do so from inside the program, so long as the Function Key message calls only a single .wav file, and that .wav file is already assigned to that function key file in the database. Despite the limitations, this is still very useful, particularly for split operation in SSB contests where you want to specify a listening frequency that changes often.

The key sequence to start and stop on-the-fly recording is Ctrl+Shift+Fkey, in either Run or S&P mode.
When you start on-the-fly recording, a message will appear in the status line of the Entry window. If all is well, it will read "start recording:[file path and name]. Press Ctrl+Shift+Fkey after you have finished recording, and the status line will read "recording saved: [file path and name]. If you get an error message, and the Entry window is not large enough to read the whole thing, simply stretch it horizontally until you can.

If you invoke a .wav file that is not found (for example, by having the wrong .wav file or an incorrect path in the .mc file), you'll be warned in the same place. To trouble-shoot path problems, you may have to stretch the Entry window horizontally, because there is only limited space for the message in the status line.

6.3. Voicing Call-signs, Serial Numbers and Frequencies

This option appears to be growing in popularity among SSB contesters. One operator, to protect the sleep of his wife and young children, even created such a complete set of voicing files that he could operate an entire Sweepstakes without a microphone. Earlier releases of N1MM Logger contained a simplified form of voicing. In version 11.12.3 and thereafter, a more sophisticated way of voicing numbers was added. What follows explains the difference and how to implement either one.

When voicing is used, the !, # and @ macros can be used in SSB messages, and the program will send the individual letter and number files that make up the call name or number that is to be sent. The individual letters, numbers and special characters used for voicing are stored in the location defined in the letters file path on the Other tab of the Configurer . Again, if you wish to have more than one operator, you will want to insert the {Operator} macro in the letters file path in the Configurer, and then record in a subdirectory named with the operator's call-sign, so that Ctrl+O can be used to tell the program which operator's letter files to use.

Function key messages that use voicing may have more than one wav file or macro in them. Use commas to separate the individual wav file names and macros within a message.

Note: If you do not want to use voicing, be sure that your Run F5 key is programmed to a single space, not "!".

6.3.1. Simple Voicing

This technique is used for voicing call-signs, as the simplest way of voicing serial numbers, and for giving your listening frequency when operating split. The operator records files for the letters A-Z, the numerals 0-9, and a few special characters - query.wav for the "?" character, stroke.wav for the slash indicator used with reciprocal operating callsigns, portable operation, etc. (which you denote in your log using the "/" or slash character), and point.wav to voice the decimal point (in a frequency, for example). You can optionally also record a file called strokep.wav for the "/P" (portable) indicator (e.g. to send "stroke portable", instead of "stroke papa" with the separate stroke.wav amd P.wav files). When the ! macro is included in a function key definition, and the key is pressed, the program substitutes a sequence of .wav files for the number or callsign. N1MM is parsed into N.wav+1.wav+M.wav+M.wav. The # and @ macros work the same way for serial numbers and frequency, respectively.

6.3.2. Advanced Voicing

This technique is used to voice serial numbers in a way that is considered to be more intelligible than a simple string of numbers. The theory is that "One hundred twenty three" will likely be more easily understood than "one two three", because of the redundancy added by the "place markers."

In order to implement advanced voicing, you will need to record the following wav files. These files must be stored in the user programmable Letters File path (Config, Files tab). The letters file path may contain the {Operator} macro, which is essential if you have more than one operator. Example: If the path in the Configurer is {OPERATOR}\, the letter and number files will be in My Documents\N1MM Logger+\Wav\LettersFiles\{Operator}\

0.wav through 19.wav (20 files)
20.wav through 90.wav (only the even tens intervals) (8 files)
hundred.wav and thousand.wav

When you try to voice a number for the first time after program start, the program checks to see whether all the needed files for advanced voicing are present. If one or more are missing, serial numbers will be voiced using the simple voicing method. The same check is also made with changing operators (with Ctrl+O). A comment appears in the bottom pane of the Info window to report the outcome of the wav file check.

A complete table showing the files voiced for each number can be found in the files section here. There is one further variation - if you have Logger set to use leading zeros,, then one or two leading 0.wav files are voiced before the number, as appropriate. We do not recommend using leading zeros with Advanced Voicing. As you can imagine, "zero eleven" is probably not an improvement in intelligibility over "eleven" or "zero one one."

A good way to get natural-sounding numbers is to record full compound numbers, like "one hundred ten" or "two thousand four hundred and thirteen" with a program like Audacity (see below), and then use it to cut up the recording into the various components you need. This will help you get a natural intonation pattern, making your voiced numbers easier to understand. For example, numbers like "thirteen" are generally only at the end of compound numbers, and will typically be voiced naturally with a falling intonation.

6.4. Recording Letters and Numbers

This is the hardest part of voicing. A more natural-sounding output will be much easier for other stations to understand, a particularly important point with serial numbers. The question of how to reduce the robotic sound is a complicated one, as users of the phone companies' 411 service will appreciate.

The program-induced lag between numbers is very brief, so the real tricks are:

  • trimming the individual voice files so that they have as little "dead air" as possible before and after the letter or number.
  • adjusting the speed, intonation and audio level of the individual number files so that they go together as naturally as possible.

The best single tool we have found so far for this purpose is the freeware Audacity audio editor. It incorporates a variety of excellent tools for trimming, equalizing levels, and so on. A lot will always depend on how much time the individual op is willing to devote.

When recording with Audacity, be sure to "Export as .WAV" using the default file creation settings; these work fine with N1MM Logger, while some of its other .wav file options will not.

Here's a tip some people have found to be helpful. This may or may not work for you.

  • Do not record individual letters and numbers. Instead, record callsign-like strings, such as A1BCD, E2FGH and so on. Try to speak at the same speed you would during a contest. Then use Audacity (or whatever editor you favor) to cut the recording apart, trim off any dead time, and equalize the levels. You can even use the Change Tempo tool (under Effects) to speed up your recorded letters and numbers to sound more natural while retaining your voice's pitch and other characteristics - amazing!

6.5. Processing all recordings with Audacity

Audacity is capable of processing files in bulk using "Chains". If you are using callsign voicing you may find this capability helpful. Chains are created and run from the Audacity File menu. You can select multiple files to process. The chain shown below does the following:

  • Removes high frequencies
  • Removes low frequencies
  • Normalizes the levels
  • Truncates silence (watch out for silence between syllables/words)


6.6. Should I Use Voicing?

This remains controversial. Is the saving in energy during a contest worth the potential loss in intelligibility? You can potentially operate an entire contest using "search and pounce", without ever having to say a word yourself. On one hand, when you are running, voicing the other station's call-sign is pretty safe, since he knows who he is, and needs only to be confident that you're calling him. On the other hand, some operators feel that the loss of the "human touch" may deter casual contesters from calling in.

From an intelligibility standpoint, voicing serial numbers is less attractive. In poor conditions, the "robotic" quality may make copy harder, particularly for non-English-speakers. The jury is still out on this one as well.

Last Modification: 30 April 2017 16:52:27 EDT by VE3KI.