ATIS V+ Design

feature author: Paul Halliday


Automatic Terminal Information Service (ATIS) broadcasts airport weather information on VHF communications frequencies throughout the USA. The FAA uses a Speech to Text engine to automatically convert text to speech for the following information.

  • Airport identification

  • ATIS information sequence code

  • Time of last update

  • Ceiling

  • Visibility

  •  Temperature

  • Dewpoint

  • Wind direction and speed

  • Barometric pressure 

SimPhonics simulates ATIS using the V+ Text to Speech I/O Device. This device incorporates V+ with the Microsoft® Text-to-Speech engine, to “broadcast” airport weather information through the simulator’s cockpit communications. There are two files that support this effort: the ATIS V+ worksheet design, shown in Figure 53 and Figure 55, and the ATIS.txt file shown in Figure 54. Let’s discuss the first part of the ATIS V+ worksheet first.

For the most part, the ATIS worksheet takes inputs from the host and passes them to the Text to Speech I/O Device. It does this by hooking up to the appropriate speech synthesizer output ports. To view the list of available ports for the speech synthesizer, you bring up the Ports window by clicking on the ports icon while in the V+ development system. Select the Speech Synthesizer Output Data I/O Device at the top of the Ports window and you’ll see a list as shown in Figure 51. The ports are sequentially numbered starting at 0 and going to the maximum specified in the Number of Speech Tag Ports box during Speech Synthesizer Configuration (refer to the V+ Text To Speech I/O Device User Manual for more details). On the Beech 1900D we used ports 1 through 12, ignoring 0 and 13 through 50. The following inputs were provided from the host.

Figure 51.  Speech Synthesizer Output Data Ports    

How are these ports mapped to the host inputs? Table 6 provides this mapping along with a description of each element. This is also described at the top of the ATIS.txt file. You may have noticed that the input Altimeter Setting is split into two parts: integer and decimal. This is done due to an idiosyncrasy of the speech engine – it ignores the decimal part of a number. We want an altimeter setting of say 29.92 to be spoken as “two nine point nine two.” To do this we send the input through a Separate into Integer and Fraction object, whose integer portion goes directly to output port 11. The fractional part is then multiplied by 100 and fed to output port 12.

Table 6. Host Inputs to Speech Synthesizer Outputs

Host Input


Speech Synth Output Port

Airport ID

Unique Airport Identification code, as defined in ATIS.txt.


ATIS Info Code

Information sequence code, ASCII characters 65 to 90 (A to Z).


Ceiling Type

Airport ceiling type, as defined in ATIS.txt.



Airport cloud ceiling in feet.



Airport visibility in miles.


Visibility Modifier

Visibility modifier, as defined in ATIS.txt.



Airport temperature in degrees Celsius.



Airport dewpoint in degrees Celsius.


Wind Speed

Airport wind speed in knots.


Wind Direction

Airport wind direction in degrees.


Altimeter  Setting (integer part)

Airport barometric pressure in inches of mercury (integer part).


Altimeter Setting (decimal part)

Airport barometric pressure in inches of mercury (decimal part).



At the bottom of the worksheet there’s a section called Speech Synthesizer Control. This allows us to enable the speech engine, and to have the it continually repeat the text. There are two input ports called Com1 ATIS Enable and Com2 ATIS Enable that come from the host. The host determines if either of the VHF communications radios has tuned to the correct ATIS frequency for the currently selected airport. If true, it sets the appropriate enable flag. These inputs are wired to a Logical OR object whose output goes to the Enable port. Just above this logic, is a constant wired to a port labeled Repeat. With the constant set to 1.0, this tells the speech engine to continually repeat the text found in ATIS.txt. These two ports, can be found in the Ports window by selecting the Speech Synthesizer Control I/O device, shown in Figure 52.

Figure 52.  Speech Synthesizer Control Ports

Now let’s talk a little bit about the ATIS.txt file. This file is what the speech engine reads and “vocalizes.” It’s pretty straight forward, but there are some twists. The speech engine will say everything that is in the text file except for comments and logic that is encapsulated within curly braces ({}). Comments start with two slashes (//) at the beginning of a line. Logic is used to decode what’s in a port location. For instance, the first 17 logic statements check port 1 (Airport ID) for the value corresponding to the textual name for that airport. If value in port 1 is equal to say 5, the speech engine would say  “Kennedy Airport.” Sometimes the speech engine doesn’t get the intonation of a word quite right. Hence you’ll see different spellings for Cincinnati, Milwaukee, fog, and winds.

At the bottom of ATIS.txt, is a command that tells the device to wait 4 seconds before repeating. For more information on this command, and many more like it, refer to the V+ Text to Speech Device, refer to the V+ Text To Speech I/O Device User Manual.

The second part of the ATIS V+ worksheet (Figure 55), deals with the volume level of the ATIS. There are two models on this worksheet: one that handles ATIS volume in the Pilot’s headset and overhead speaker, and one that handles the ATIS volume in the CoPilot’s headset and overhead speaker. These models are very similar, so we’ll only consider the pilot’s model.

There are four inputs and two outputs in this model. Two of the inputs are the COM 1 Master Volumes and COM 2 Master Volume. These are the volume control knobs on the radio heads. The other two inputs are worksheet connectors that come from PilotCommLogic. They are the Pilot COM 1 and COM 2 switches located on the audio control panel. These switches are either on or off, with values of 1 or 0 respectively. In the top half of the model, the COM 1 volume is multiplied by the COM 1 switch resulting in either 0 or the setting of the volume knob. In the bottom half, the COM 2 volume is multiplied by the COM 2 switch to produce a similar result. These two results are then added together, limited to 1, and fed to the two DSP outputs: ATIS to Pilot Headset and ATIS to Pilot Overhead Speaker. Adding the two comm radio signals together and then limiting the result to 1 is not totally real-world accurate, but close enough for simulator purposes. The reason for the limiting is because the DSP will react strangely to a value greater than 1.

Figure 53. ATIS Design

ATISTextTemplate.gif (29294 bytes)

Figure 54.  ATIS.txt File

Figure 55. ATIS Design (Comm Radio Head Volume Controls)


Beech 1900D Aircraft


- concept

- space analysis

- speakers & amps

Data Collection

Sound File Editing

Computer Interface

Computer Configuration

Aero & Environmental V+ designs

- top level

- engine

- flaps & fuselage

- gear

- tires & runway

- tire blow

- weather

- windshield

- explosions

- audible warnings



- marker beacon

Communications V+ Designs


- pilot

- copilot


Speaker & Amp Specifications

Host Buffer Interface Table


Home  |  About  | Products  |  Support  |  News  |  Find  | Contact Us

 ©SimPhonics    Legal Notices   Privacy Policy