Overview
概要
聴音(受信)・打鍵(送信)・変換ツールを統合した、日本語対応のモールス信号学習サイトです。和文モールス(イロハ48字+濁点等)と欧文の両方に対応し、実用速度の中から2文字で始めて正答率90%で1字ずつ増やす『コッホ法』のカリキュラムを両言語に用意。CW音はWebAudioで完全に生成し、聴音のレッスン、押下時間から短点/長点を自動判定する打鍵練習、テキストとモールスの相互変換、符号表までを揃えます。
How to use
遊び方・使い方
/listenでコッホ法のレッスンを選び、60秒のランダムな文字グループを聴音して聞き取った文字を入力します(正答率90%で次の文字が解放)。/keyではスペースキーやタップの押下時間で短点・長点を自動判定し、送信練習ができます。/convertでテキストとモールスを相互変換し(共有URL対応)、/referenceで符号表、/statsで成績を確認。トーン周波数や速度(WPM)、文字速度と実効速度を分けるFarnsworth方式も設定できます。
Tech stack
技術スタック
TypeScriptNext.js 16React 19Web Audio APITailwind CSS v4
追加npm依存はなく、/statsの折れ線もSVGで自前描画。CW再生はReact外のクラス、打鍵デコーダは押下時間列→符号→文字の復号ステートマシンとして実装しています。navigator.vibrateの振動フィードバックにも対応。
Highlights
工夫した点
- CW音はOscillatorとGainで生成し、5msのランプでクリックノイズを防止。PARIS基準のタイミング(unit=1200/WPM)をAudioContextのcurrentTime基準で先行予約スケジューリングし、テンポの揺れを排除
- コッホ法は欧文40レッスン(LCWO準拠の導入順)と、標準順のない和文を符号長・頻度優先で独自順に50レッスン用意。打鍵は押下/離鍵時間から短点・長点・文字間・語間をヒステリシス付きで判定し、適応モードで実効速度に追従
- 符号表とencode/decodeは純関数として切り出しテスト可能に。/referenceの符号表はSSR静的HTMLで出力し検索流入を狙う
To improve
改善したい点
- iOS Safariのサイレントスイッチ等、端末依存の音声再生挙動の実機検証を継続する必要がある
- 打鍵判定の閾値・ヒステリシスは、個人差に応じたキャリブレーションに伸びしろがある
- 和文レッスンの導入順は独自設計のため、学習効率の検証余地がある
What's next
今後の展望
- 実際のQSO(交信)形式の練習や、略符号・Q符号の学習
- パドル(エレキー)入力やイアンビックキーヤーへの対応
- レッスン進捗のエクスポート/インポート

