Skip to content

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

  1. Click the speaker icon in the top toolbar
  2. 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

SoundWhen it plays
Click onStart of each transmission (PTT press)
SquelchEnd 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:

javascript
// Enable radio effects
ttsService.setSettings({ radioEffects: true });

// Check current setting
const settings = ttsService.getSettings();
console.log(settings.radioEffects); // true or false

Voice 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:

javascript
// Get available voices
const voices = ttsService.getEnglishVoices();

// Set ATC voice by name
ttsService.setSettings({ atcVoiceName: 'Google UK English Male' });

Settings reference

SettingTypeDefaultDescription
enabledbooleanfalseMaster TTS on/off
volumenumber0.8Volume level (0-1)
speechRatenumber1.1Speech speed (0.5-2)
radioEffectsbooleanfalsePTT click sounds
pilotReadbacksbooleantrueSpeak pilot responses
atcVoiceNamestringautoPreferred ATC voice

Example: Configure all settings

javascript
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:

javascript
// 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

PropertyTypeDescription
type'atc' | 'pilot'Speaker type
textstringText to speak
callsignstringPilot callsign (for voice selection)
priority'normal' | 'high'Queue priority
onStartfunctionCalled when speech starts
onEndfunctionCalled when speech ends

Queue management

javascript
// 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

  1. Use headphones - Radio effects sound more realistic
  2. Adjust speech rate - Faster rate for experienced users
  3. Lower volume slightly - Prevents distortion on some systems
  4. 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:

BrowserTTSRadio Effects
Chrome
Firefox
Safari
Edge

Voice availability varies by browser and operating system. Chrome typically offers the most voice options.

Troubleshooting

No audio playing

  1. Check that TTS is enabled (speaker icon should be active)
  2. Verify browser volume isn't muted
  3. Try refreshing the page
  4. 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)