Audio and radio effects
radarcontrol.io features realistic radio audio to create an immersive ATC experience. All transmissions include authentic radio effects that make the simulation feel like real air traffic control.
Text-to-speech
The simulator uses your browser's built-in text-to-speech (TTS) to voice all radio communications:
- ATC transmissions - Your instructions to pilots
- Pilot readbacks - Pilots confirming your instructions
- Pilot requests - Weather deviations, altitude changes
- Emergency declarations - MAYDAY and PAN PAN calls
Enabling TTS
- Click the speaker icon in the top toolbar
- Or press T to toggle TTS on/off
When enabled, you'll hear:
- Your ATC instructions spoken aloud
- Pilots reading back clearances
- Check-ins from new aircraft
- Emergency declarations
High speed mode
TTS is automatically paused when simulation speed reaches 4x or higher. At high speeds, messages queue faster than they can be spoken, making real-time TTS impractical.
When TTS is paused due to speed:
- The speaker icon shows ⏸️ instead of 🔊
- Tooltip displays "Voice paused (speed ≥4x)"
- Messages still appear in the command history (visual log)
- TTS resumes automatically when you slow down below 4x
TIP
Message display durations also scale with simulation speed. At 2x, toasts disappear twice as fast. At higher speeds, the minimum display time ensures you can still read important messages.
Radio effects
For maximum immersion, enable radio effects to add realistic PTT (push-to-talk) sounds:
What you'll hear
| Sound | When it plays |
|---|---|
| Click on | Start of each transmission (PTT press) |
| Squelch | End of each transmission (PTT release) |
These sounds are generated synthetically using Web Audio API - no external files needed.
Enabling radio effects
Radio effects can be enabled via the TTS settings or programmatically:
// Enable radio effects
ttsService.setSettings({ radioEffects: true });
// Check current setting
const settings = ttsService.getSettings();
console.log(settings.radioEffects); // true or falseVoice variety
The simulator automatically assigns different voices to different pilots, creating a realistic mix of:
- Male and female voices
- Different accents (where available)
- Slight pitch variations
The ATC voice remains consistent throughout your session.
Selecting ATC voice
You can choose your preferred ATC voice:
// Get available voices
const voices = ttsService.getEnglishVoices();
// Set ATC voice by name
ttsService.setSettings({ atcVoiceName: 'Google UK English Male' });Settings reference
| Setting | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Master TTS on/off |
volume | number | 0.8 | Volume level (0-1) |
speechRate | number | 1.1 | Speech speed (0.5-2) |
radioEffects | boolean | false | PTT click sounds |
pilotReadbacks | boolean | true | Speak pilot responses |
atcVoiceName | string | auto | Preferred ATC voice |
Example: Configure all settings
ttsService.setSettings({
enabled: true,
volume: 0.7,
speechRate: 1.2,
radioEffects: true,
pilotReadbacks: true,
atcVoiceName: 'Samantha'
});Scripting API
Speech events
You can trigger custom speech in your scripts:
// Speak as ATC
ttsService.speak({
type: 'atc',
text: 'All aircraft, expect delays due to weather'
});
// Speak as pilot
ttsService.speak({
type: 'pilot',
text: 'Roger, holding as published',
callsign: 'DAL456' // Determines voice
});Speech request options
| Property | Type | Description |
|---|---|---|
type | 'atc' | 'pilot' | Speaker type |
text | string | Text to speak |
callsign | string | Pilot callsign (for voice selection) |
priority | 'normal' | 'high' | Queue priority |
onStart | function | Called when speech starts |
onEnd | function | Called when speech ends |
Queue management
// Check queue status
const queueLength = ttsService.getQueueLength();
const isSpeaking = ttsService.isSpeaking();
// Control playback
ttsService.pause(); // Pause current speech
ttsService.resume(); // Resume playback
ttsService.stop(); // Stop and clear queue
// Reset (clears pilot voice assignments)
ttsService.reset();Tips for best audio experience
- Use headphones - Radio effects sound more realistic
- Adjust speech rate - Faster rate for experienced users
- Lower volume slightly - Prevents distortion on some systems
- Enable radio effects - Significant immersion boost
IMMERSION TIP
Enable radio effects and set speech rate to 1.1-1.2 for the most realistic ATC experience. The slight speedup matches real controller cadence.
Browser compatibility
TTS is supported in all modern browsers:
| Browser | TTS | Radio Effects |
|---|---|---|
| Chrome | ✅ | ✅ |
| Firefox | ✅ | ✅ |
| Safari | ✅ | ✅ |
| Edge | ✅ | ✅ |
Voice availability varies by browser and operating system. Chrome typically offers the most voice options.
Troubleshooting
No audio playing
- Check that TTS is enabled (speaker icon should be active)
- Verify browser volume isn't muted
- Try refreshing the page
- Check browser permissions for audio
Robotic voices
Some systems have limited voice options. Try:
- Using Chrome for best voice variety
- Installing additional system voices (macOS: System Preferences → Accessibility → Speech)
Audio cutting off
If transmissions cut off early:
- Reduce speech rate slightly
- Check for browser tab throttling (keep tab in foreground)