YAMA: Yet Another Morse App

Welcome to YAMA! Whether you are looking for routine practice, some head copy, or want to test your copying limits against a simulated ionospheric storm, YAMA is built to help you.

YAMA has some standard, input processing for example: discarding non-morseable characters, space compression, character case agnostic, as well as, some non-traditional ones: ProSign support, selected character filtering, expansion of contractions, and dynamic wave shaping for QRQ, European and Esparanto support, auto-speed ramp up, and more. Changes to speed/tone and audio impairments can be made during play. YAMA uses a Terminal User Interface (TUI), navigation and selection will be by key combinations, mostly the Control Key and one letter, a few Function keys are supported as alternatives. Help is an exception which uses the standard F1 key.

Getting Started: Entering Text

Before YAMA can play anything, it needs some text! You have two easy ways to do this:

  1. Type or Paste: Simply click into the main Text Input box and type or paste your practice text directly. (Cursor keys, Backspace, and Delete are supported for editing).
  2. Load a File: Press Ctrl-F (hold the Control Key and simultaneously press 'f') to open the File Selector and browse for any standard .txt file on your computer.

Dynamic Menus & Navigation

YAMA is operated entirely via keyboard shortcuts. Keep an eye on the top menu bar—it is dynamic. YAMA will only show you the shortcuts that make sense for what you are currently doing. For example, you cannot open the Options menu while audio is actively playing, therefore there will not be an Options label, and Ctrl-O will be ignored. The Wave export label will only appear when you actually have text loaded to export.

The method to enter or change an option depends on the field type. Navigate using TAB or BACKTAB. For single-character fields, press Enter or Space to toggle. For drop-downs, use the cursor keys and hit Enter. For multi-digit options (like tones/speeds) or text boxes, use Backspace to clear, type the new value, and hit Enter or TAB.

If you ever get stuck in a menu, just press ESC to safely close it without saving.

Note: Insertion or removal of headphones can trigger a Windows hang of the YAMA app, requiring an app restart.
Key Menu Name Purpose
Ctrl-F, F3FileOpen a .txt file for playback.
Ctrl-PPlay/PauseStart or pause the current loaded input text.
Ctrl-SStopHalt playback immediately (cannot be resumed).
Ctrl-WWaveExport current text to .wav file(s).
Ctrl-EEraseClear the current text input (screen clear).
Ctrl-TTimingSpeed, Tone, and IWR settings.
Ctrl-OOptionsParser, messaging, and text processing options.
Ctrl-AAudioAudio impacting impairments (QRN, QSB, Drift, etc.).
Ctrl-DData-StatsView statistics and IWR counts. Use when play stops; new input clears data.
Ctrl-BAboutApp info and License.
F1HelpView this help screen.
Ctrl-QQuitExit YAMA.
ESCCloseCancel/Close menus without saving.
SpacebarHide/UnhideToggle text visibility during audio playback.

Supported Characters & Punctuation

YAMA naturally supports standard letters A-Z and numbers 0-9.

ProSigns & Equivalents

Supported ProSigns: <AR> <AS> <BT> <KA> <SK> <VA> <VE> <SN> <BK> <HH> <DU> <SOS> <CH>.

If "Play ProSigns" is disabled in Options, bracketed ProSigns will be ignored. However, the standard keyboard equivalents + (<AR>), = (<BT>), and - (<DU>) will still play unless added to the Skip List. (Note: <BK> is sounded as "B K". Any other use of '<' or '>' is ignored.)

Options Screen (Ctrl-O) - Settings

Setting Description
Play ProSignsToggles support for bracketed ProSigns. Does NOT affect -, +, or =.
Extended PunctuationToggles support for extended punctuation marks.
European & Esparanto Chars.Toggles support for 12 additional chars.
Use SkipEnables the Skip List filtering during playback.
Skip ListDefine specific characters or ProSigns to silently ignore (e.g. XY7<BT>=).
Start DelayAdds a countdown timer (in seconds) before playback begins.
Repeat LimitCaps consecutive repeating characters to prevent runaway sequences. Default 3.
Random OrderShuffles the playback order of the entire document's words.
Random WordsScrambles the letters within individual words. Mutually exclusive with IWR.
Word BuilderPlays words progressively (e.g., T, TH, THE). Mutually exclusive with IWR.
Use Start MsgToggles injecting a custom message at the beginning of the text.
Start Msg TextThe specific text to play at the start (e.g., VVV <KA>).
Use End MsgToggles injecting a custom message at the end of the text.
End Msg TextThe specific text to play at the end (e.g., <AR>).

The Skip List & Contractions

You can define specific characters or ProSigns to silently skip during playback.

Important Apostrophe Rule: If you add the apostrophe (') to your skip list, YAMA will automatically expand 17 common English contractions before removing the remaining apostrophes (e.g., "DON'T" safely becomes "DO NOT").

Input Modified Status: If the bottom status line displays "Input Modified", it means an option is actively altering your text before generating CW, so do not be surprised if the sound differs from the raw input on your screen.

Audio Screen (Ctrl-A) - Impairments

You can make changes to the currently playing audio with the Timing or Audio screens.

Setting Description
Static (QRN)Injects constant background hiss and random lightning crashes.
Fading (QSB)Simulates a slow ionospheric roll, dipping and recovering volume.
Tone DriftSimulates an unstable oscillator, bending the pitch up and down.
Speed DriftSimulates a tired operator by slowly expanding/contracting the timing.
Key ClicksInjects a harsh electrical spark at the start and end of elements.

WAV File Export (Ctrl-W)

YAMA exports 16-bit Mono audio. The wave screen lets you select a target directory for the created files; if the path does not exist, it will create it. The approximate play time and file size are shown. You can limit the number of output files (useful for large books), or cap the file size to roughly 10MB to make them easy to email to your phone. The wav file name makes reference to the source, as well as the timing mode and speed.

IWR - Instant Word Recognition

This head-copy feature matches words in your input and overrides your chosen timing mode to play the matched word at an increased speed with standard timing. To use this, you must have an active yamaIWR.txt file.

Note: If you enable Word Builder while IWR is active, the final built word will play once more at your IWR speed.

System Files

Downloads

Download the standalone YAMA executable for your operating system below. No installation script is required!

Download for Windows (.zip) Download for Linux (.tar.gz)

Linux users: Remember to extract the archive and ensure the file is executable (e.g., chmod +x yama).

counter

Support QSL.NET click here.