A web-based CW (Morse code) sending trainer inspired by Iambic Master. Practice your Morse code sending skills with real-time feedback and scoring.
-
Multiple Practice Modes
- Sprint: Practice contest-style exchanges (callsign, serial number, name, state)
- Sweepstakes: ARRL Sweepstakes format exchanges
- Mixed: Random groups of mixed characters
- Uniform: Random groups of a single repeated character
- Clipboard: Practice sending text from your clipboard
- Free Practice: Freeform practice with no scoring
-
All Keyer Modes from Vail Repeater
- Straight Key / Cootie
- Bug
- ElBug
- Single Dot
- Ultimatic
- Iambic (Plain, A, B)
- Keyahead
-
Input Support
- MIDI devices (Vail adapter, N6ARA TinyMIDI)
- Keyboard (Left/Right Ctrl for vband adapter, brackets, X/Z keys)
- Touch buttons for mobile
-
Scoring System
- Iambic Master scoring formula
- Efficiency tracking
- Perfect trial streaks
- Per-character accuracy analytics
- Score history by mode and run length
-
Adaptive Morse Decoder
- Real-time decoding with scrolling echo display
- Configurable buffer size and flush timeout
- Works with any sending speed
Vail Master is a static web application with no build step required. However, because it uses ES6 modules, it must be served over HTTP (not opened directly as a file).
If you have Python installed:
cd vail-master
python -m http.server 8080Then open http://localhost:8080 in your browser.
If you have Node.js installed:
npx http-server -p 8080Then open http://localhost:8080 in your browser.
You can use any static web server (nginx, Apache, Caddy, etc.) to serve the files. Simply point the server's document root to the project directory.
Vail Master is designed for static hosting. Simply upload all files to your web server or static hosting service (Netlify, GitHub Pages, Vercel, etc.).
No build step is required - just serve the files as-is.
- Select your keyer mode and WPM
- Choose a practice mode
- Click "Start" to begin a scored run, or "Free Practice" for freeform practice
- Key your response to match the target text
- The decoder will show your input in real-time
- When your echo matches the target, the trial completes and advances
- Left Ctrl: Dit (dot)
- Right Ctrl: Dah (dash)
- [ and ]: Dit and Dah
- X and Z: Dit and Dah
- Period and Slash: Dit and Dah
Connect a Vail adapter or compatible MIDI device. The app will automatically detect it and show the device name in the header.
Vail Master uses proven keying and decoding technology from Vail Repeater:
- Full iambic keyer implementations (A, B, Ultimatic, etc.)
- MIDI and keyboard input handling
- Adaptive Morse decoder (morse-pro library)
MIT License - See LICENSE file for details.
- Inspired by Iambic Master by NA0N
- Keying and decoder technology from Vail Repeater
- morse-pro library by Stephen C. Phillips