Generate random combinations of characters and numbers from selected CW Academy sessions!
- From Session: 1-10
- To Session: 1-10
- Example: From 1 to 5 = Use all characters from sessions 1, 2, 3, 4, 5
- 2 characters: "AT", "N4", "E2"
- 3 characters: "NET", "5A1", "THO"
- 4 characters: "SENT", "4TE2", "HOLD"
- 5 characters: "STONE", "14T2N", "HORSE"
- Dynamic (1-5): Random length each time!
- โ ๐ Sending Practice: See block, send it
- โ ๐ง Listening Practice: Hear block, decode it
1. Enable Training Mode
โโ> Click [Enable Training]
2. Enable Random Blocks
โโ> Check โ ๐ฒ Random Blocks Mode
3. Configure Settings
โโ> From Session: [1]
โโ> To Session: [5]
โโ> Block Size: [3 characters]
4. Select Mode
โโ> Click [๐ Sending] or [๐ง Listening]
5. Practice!
โโ> Click [Next Item] for new random blocks
๐ CW Academy Training Mode
[Disable Training]
Session: [Session 1 โผ]
Practice Type: [Characters โผ]
โ ๐ฒ Random Blocks Mode โ NEW!
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Random Blocks Settings โ
โ โ
โ From Session: [1 โผ] To: [5 โผ] โ
โ Block Size: [3 characters โผ] โ
โ โ
โ ๐ Training characters from โ
โ Session 1 to 5 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Training Mode:
[๐ Sending Practice] [๐ง Listening Practice]
โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Practice This: โ
โ โ
โ N4T โ โ Random!
โ (yellow) โ
โ โ
โ [Next Item] โ โ New block
โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
From: 1 To: 1
Size: 2 characters
Chars: A E N T
Examples: "AT", "NE", "TA"
From: 1 To: 5
Size: 3 characters
Chars: 22 characters + numbers
Examples: "NET", "C3M", "W1U"
From: 1 To: 10
Size: Dynamic (1-5)
Chars: All 44 characters
Examples: "A", "QX", "B8K", "M,W?Y"
โ No Memorization - Every combination is random โ Character Recognition - Focus on individual sounds โ Real-World Practice - Like copying random callsigns โ Progressive Learning - Control difficulty with session range โ Flexible Training - Adjust block size as you improve
- โ
src/cw_academy_training.rs- Added random block generator (+117 lines) - โ
src/main.rs- Added UI and state management - โ
paddle_decoder_linux_amd64- Rebuilt binary (8.3MB)
// Get characters from session range
get_characters_from_range(from, to) -> Vec<char>
// Generate random block
generate_random_block(from, to, size) -> String
// Block size options
BlockSize::Fixed2, Fixed3, Fixed4, Fixed5, DynamicAppState {
random_blocks_mode: bool,
block_from_session: SessionNumber,
block_to_session: SessionNumber,
block_size: BlockSize,
}| Session Range | Characters | Example Blocks (size 3) |
|---|---|---|
| 1-1 | 4 | "ATE", "NET", "TAN" |
| 1-2 | 9 | "NO1", "S4I", "T14" |
| 1-3 | 15 | "DHL", "R2S", "5TE" |
| 1-5 | 22 | "MCW", "U3?", "6WM" |
| 1-10 | 44 | "QXZ", "B8K", "J0." |
Just learned Session 3?
- Set From: 3, To: 3
- Size: 2 characters
- Practice new chars in isolation
Review Sessions 1-5?
- Set From: 1, To: 5
- Size: 3 characters
- Mix all learned characters
Preparing for on-air?
- Set From: 1, To: 10
- Size: Dynamic
- Simulate random callsigns
Building speed?
- Set From: 1, To: 3
- Size: 4 characters
- Increase WPM gradually
Tight (1-2): Easy, focused practice
Medium (1-5): Moderate difficulty
Wide (1-10): Maximum challenge
Single (3-3): Isolate specific session
2 chars: Learn new characters
3 chars: Build fluency (recommended)
4 chars: Challenge yourself
5 chars: Advanced practice
Dynamic: Simulate real copying
Sessions: 1-1
Size: 2 chars
WPM: 15
Goal: Master A E N T
Sessions: 1-2
Size: 2-3 chars
WPM: 18
Goal: Add S I O 1 4
Sessions: 1-3
Size: 3 chars
WPM: 18-20
Goal: Add D H L R 2 5
Sessions: 1-5
Size: 3-4 chars
WPM: 20
Goal: 22 characters solid
Sessions: 1-10
Size: Dynamic
WPM: 20-25
Goal: Full alphabet ready
โ Sending Practice Mode โ Listening Practice Mode โ WPM adjustment (5-40) โ Frequency adjustment (300-1000 Hz) โ All feedback features (RIGHT/FALSE) โ Automatic replay on errors โ Answer reveal after 2 attempts
โ Session selector (overridden in Random Blocks) โ Practice Type selector (uses characters only) โ Specific word lists
Q: How do I enable Random Blocks? A: Check the โ ๐ฒ Random Blocks Mode checkbox
Q: Can I use it with Words practice? A: No, Random Blocks generates character combinations, not words
Q: From/To session dropdowns are confusing A: From = Start, To = End. Example: From 1 To 3 = Sessions 1, 2, 3
Q: What does Dynamic block size do? A: Each block is randomly 1-5 characters long
Q: Blocks seem too hard A: Reduce session range (e.g., 1-2 instead of 1-10) or block size
Q: Blocks seem too easy A: Increase session range (e.g., 1-10) or use larger block size
After restart, verify:
- โ ๐ฒ Random Blocks Mode checkbox visible
- From Session dropdown works (1-10)
- To Session dropdown works (1-10)
- Block Size dropdown works (5 options)
- Blue info text shows session range
- Random blocks appear in yellow
- Next Item generates new random blocks
- Works in both Sending and Listening modes
- Characters match selected session range
- Detailed Guide:
RANDOM_BLOCKS_GUIDE.md(414 lines) - This Summary:
RANDOM_BLOCKS_SUMMARY.md - Listening Mode:
LISTENING_MODE_GUIDE.md - Training Mode:
TRAINING_MODE_ADDED.md
- Session range too wide โ Reduce range
- Blocks too long โ Reduce block size
- Not random enough โ Click Next Item more
- Characters wrong โ Check session range
- Restart the application
- Enable Training Mode
- Check Random Blocks Mode
- Configure your settings
- Click Next Item
- Practice and improve!
73 and enjoy your random block training! ๐ฒ ๐ป