Mac Vocalizer - for PREDICT on Mac OS X

Updated: July 25, 2003

PREDICT is a satellite tracking program (what’s that?) designed primarily to run on Linux, but portable enough to run on Mac OS X (thanks to the Unix underpinnings of OS X). One feature of PREDICT that is not very portable is the separate vocalizer utility, which is invoked by the main PREDICT program in order to “speak” announcements about the satellite’s azimuth and elevation. The program supplied with PREDICT uses sound facilities that are not implemented in the same way on Mac OS X.

This program, Mac Vocalizer, performs a similar function under OS X. The main difference is that Mac Vocalizer uses the Macintosh’s built-in speech synthesizer to speak the announcements, instead of playing back prerecorded sound files.

When Mac Vocalizer was first implemented, the Linux vocalizer used home-recorded voice files and spoke individual digits (“123” as “one two three”), whereas Mac Vocalizer took advantage of the number speaking algorithms in the Macintosh speech synthesizer to render the numbers naturally (“one hundred and twenty-three”). This was a big improvement. As of PREDICT version 2.2.2, the Linux vocalizer has been improved to use nice synthesized voice files (better than the Mac's) and natural number rendering.

As a result of this improvement, a port of the Linux vocalizer might now make more sense than Mac Vocalizer. In the meantime, this update (1.1.0) of Mac Vocalizer supports the new speeches implemented in PREDICT 2.2.2.


Take the application file named vocalizer from the Mac Vocalizer distribution archive, and place it in the vocalizer subdirectory of the directory where PREDICT resides on your machine. That’s all. The rest of this archive may be discarded if you like.

The program must be named vocalizer and it must be in the vocalizer subdirectory, because that is where PREDICT looks for it.

System Requirements

Mac Vocalizer was built on Mac OS X 10.2.6, and has only been tested on that system. However, as far as I know it should work on any Mac OS X system.

Naturally, you will need sound output capability and speakers in order to hear the announcements. Type some text into TextEdit and check that the Edit, Speech, Start Speaking menu item works.

Use with PREDICT

To hear automatic announcements from PREDICT, you must invoke the Single Satellite Tracking Mode by typing an uppercase ‘T’ at PREDICT’s main menu. You can also command an immediate announcement by typing uppercase ‘T’ again while in Single Satellite Tracking Mode. If you use a lowercase ‘t’ instead, no announcements will be made (even if you type ‘T’ again).

Quoting from the PREDICT version 2.2.1 manual:

PREDICT will make periodic voice announcements stating the satellite's tracking coordinates in real-time. Announcements such as:

"This is PREDICT. Satellite is at 56 degrees azimuth and 45 degrees elevation, and approaching."

are made at intervals that are a function of how quickly the satellite is moving across the sky. Announcements can occur as frequently as every 50 seconds for satellites in low earth orbits such as the International Space Station (370 km), or as infrequently as every 8 minutes for satellites in very high orbits, such as the GE-2 geostationary satellite (35780 km). Voice announcements are performed as background processes so as not to interfere with tracking calculations as the announcements are made. Announcements can be forced at any time by pressing the ‘T’ key in Single Satellite Tracking Mode.

When you force an announcement using by typing ‘T’, you will notice a delay of up to several seconds before the voice announcement begins. Mac Vocalizer is starting up and initializing the speech synthesizer during this time. The delay is normal, and you won’t notice it as much on the automatic announcements.

Standalone Operation

Mac Vocalizer doesn’t do much useful by itself. Use it with PREDICT.

To test Mac Vocalizer without PREDICT, run it from a command line (in Terminal) and provide the azimuth and elevation as arguments. Add a ‘+’ or ‘-’ character as a third argument to represent “approaching” or “receding” states. Like this:

./vocalizer 123 45 +

You can also add a fourth argument of ‘V’ to make Mac Vocalizer add “Spacecraft is currently visible.” to the announcement. Like this:

./vocalizer 123 45 + V

Or, you can invoke these special speeches:

Updates and Support

The latest version of this program and related resources may be found on the author’s web page:

Please check the web page first. If you still have questions, you may send email to the author, Mac Vocalizer is provided in the hope that it will be useful, but without any warranty.

License and Source Code

Mac Vocalizer is released under the GNU General Public License, Version 2. See the file COPYING in this distribution for details.

The source code is included in this distribution. It consists of one short source code file written in C, mac-vocalizer.c, and a Project Builder project to build it, mac-vocalizer.pbproj. The Project Builder project is actually itself a directory containing a file, though the Mac OS X Finder displays it as a single file. To build the program using Apple’s standard development tools (available free for OS X) simply double-click the project file and click the build icon. The December 2002 version of the Developer Tools was used to build this version.


Mac Vocalizer was written by Paul Williamson, KB5MU,

The program interface was taken from the vocalizer module of PREDICT, written by John A. Magliacane, KD2BD. Thanks for releasing the source code!

I learned to use the speech synthesizer API by studying Speech Utilities by Raphael Sebbe.