Overview
CW Letter Trainer builds direct sound-to-letter recognition. It deliberately avoids showing the Morse pattern before an answer, so the learner connects a sound rhythm with a letter instead of counting dots and dashes.
The first release trains the 26 Latin letters only. Numbers, punctuation, and prosigns are reserved for later courses.
How to use it
- Choose Practice for staged learning or Challenge for a scored run.
- Practice remains available without an account and never enters the public leaderboard.
- A formal Challenge can start immediately without an account; choose a nickname only when publishing a verified result.
- Answer by clicking the on-screen QWERTY keyboard or pressing A-Z on a physical keyboard.
- Adjust the Tone Hz slider below the answer keyboard to a comfortable pitch; changing pitch does not change Morse timing.
Guest challenges and leaderboards
Start first, publish only if you choose
Letter Trainer and Callsign Trainer challenges no longer require an account or confirmed email. Start immediately, complete the run, and wait for server verification. The result shows score, correct answers, longest streak, server-measured time and the difference from your best published score. Choose Add to Leaderboard, enter a 2–20-character nickname and optionally remember it on this device. Next time, use Submit as… or Change name. Cancel leaves your verified result unpublished. Signed-in members use their server-held CW599 username; operators with a verified callsign use that callsign. Guest, Member and Verified badges describe identity, not skill.
Ranking and safety
Today starts at midnight UTC; 7 days is a rolling UTC window. Each period shows each identity’s best result, with up to 50 public rows and your own best rank even outside the top 50. Ties use score, correct answers, streak, shorter server-measured duration, earlier completion, then stable record ID. Duplicate nicknames are allowed but do not combine identities. Names are snapshots at publication; changing a nickname does not rename past scores. Guest results are not merged into a later member account.
A two-hour signed challenge is bound to the browser identity or authenticated account. The server recalculates the score from the issued targets and answers, checks plausible elapsed audio/answer time and freezes the result before publication. Each challenge can produce only one published score; network retries return that same result. Basic fixed-window limits are 30 starts/hour and 3 publications/minute or 20/hour per player, with a separate network start limit. This is a casual training leaderboard, not a tamper-proof examination: targets and audio must be available to the browser. Administrators can search nickname or score ID and hide or restore invalid/abusive scores.
Recovery and privacy
If a connection fails, keep the page open and retry verification or publication. The nickname prompt appears only after verification. Expired challenges must be restarted. If the account or browser identity changes, return to the original identity or start again. Callsign answers become available after the full transmission. Blocking local storage uses an in-memory identity for this page; clearing storage or changing devices creates a different guest. Clearing browser storage removes the remembered nickname and browser ID, not previously published scores. Contact support to request score review/removal.
A cryptographically random UUID is stored under cw599.player.id, with creation time and an optional nickname. The server stores a secret-key hash, not the raw browser UUID, in score records. Public leaderboards expose only the display name, identity badge and final summary, never account IDs, browser IDs, private hashes, IP addresses or individual answers. Targets are held privately only until verification or session expiry; answers are processed without persistent storage. Unpublished expired summaries are removed by daily cleanup. Published summaries remain until moderation/removal. No email, fingerprint, geolocation or extra account is required.
Optional first-party analytics follows the existing consent choice and privacy signals. It records tool/version, interface language, identity class, random-browser hash, timestamps, starts, verified completions, successful publications and coarse activity durations—not nicknames, answers, keying, audio, location inputs or full IP addresses. Unique browsers are estimates, not people. Non-competitive tools have usage counts only; CW Room communication identities and access rules are unchanged.
How it works
Practice contains ten fixed stages. Each stage adds a small group of letters and increases speed gradually. To unlock the next stage, score at least 9 correct answers in the latest 10 attempts; the required window grows by two attempts per stage (12, 14, 16, ...), keeping an 85% mastery ratio.
Challenge contains 30 single-letter questions. The character pool, WPM, background noise, and weak adjacent CW interference increase in fixed steps. WebAudio synthesizes all tones locally through one gain and compression chain.
Challenge sessions use a short-lived signed token. The server recalculates the final score, but it does not permanently store the target sequence or individual answers.
Versions and archives
v1.4 adds the complete Japanese interface, documentation, language links, and Japanese SEO without changing training, scoring, or stored data. v1.3 tidies the interface, moves the Tone Hz slider and mode switch, and changes stage unlocks to a growing 85% mastery window with a chime and automatic advance. v1.2 aligns the narrow-screen content gutter with the site header. v1.1 limits formal scores and leaderboard entry to confirmed-email accounts while preserving anonymous practice. v1.0 introduced staged A-Z practice, QWERTY input, the 30-question challenge, progressive noise, and the leaderboard.
Leaderboard update · September 13, 2026
v1.5 update: On a fresh page load, Challenge opens the All time leaderboard by default, including when a saved challenge is restored. You can still switch to Today or Last 7 days; your selection stays while using the current page. This changes only the initial view, not scoring, privacy or publication: results are published only when you choose Add to Leaderboard. Previous behavior is retained in Git and private deployment backups; documentation archives remain available.
Changelog · September 7, 2026
v1.5: Guest challenges without sign-in, optional remembered nickname, server-verified result before publication, single-use idempotent scores, identity badges, top-50 best-per-player boards, own rank, basic limits and participation analytics. The scoring formula is unchanged. Previous versions are documentation archives, not live legacy endpoints; implementation history is retained in Git and private deployment backups.
Site changelog · Spanish support
September 20, 2026: the homepage, all eight Morse Lab tools and their current help pages now support Spanish. State, error, permission and optional leaderboard messages are localized; audio, scoring, identities and saved results are shared and unchanged. Guides, articles, shop, account and legal destinations remain in English and are labeled accordingly. Historical help keeps its original languages. Analytics recognizes Spanish routes and respects the same privacy choices without collecting new fields.
Site changelog · Japanese support
September 22, 2026: all eight Morse Lab tools and their current guides now support Japanese. The existing Japanese homepage and interface copy have been reviewed, including dynamic feedback, errors, accessibility, permissions and voluntary leaderboard publication. Audio, scoring, shared identities and saved results are unchanged. English, Chinese and Spanish remain available. Untranslated destinations are labeled as English. Existing Japanese Letter Trainer archives remain available; other historical guides retain their original languages. No new data fields or permissions are introduced.
Version archive
When a retired release has a runnable snapshot, this list will link both its documentation and the archived tool. Earlier releases without a snapshot are explicitly marked documentation only.
