» Full Recital List
» » » »

Programme

The Story Behind Software Design

By 1986, a moose could appear on a Macintosh screen. He spoke out loud and told jokes, his mouth moving to match the words.

The Talking Moose was created by Canadian physician and programmer Steven B. Halls, at a time when a recognizable face had to be built out of black-and-white pixels. It didn't take many pixels to give this one a personality.

Today, talking computers usually bring up questions of artificial intelligence. The Moose's beginnings belong to another kind of story: a single programmer working out how to make a computer-generated voice seem to come from a character.

Why pick a moose?

Antlers helped.

Images of the original Talking Moose show a two-dimensional Macintosh character. With so little room for detail, its outline had to carry most of the work. As Halls recalls, antlers were easy to recognize at a small size. He liked moose as well, and that settled the choice.

Halls wrote the original program in assembly language. Getting the lips to follow the speech took some ingenuity. In his recollection, the program found Macintalk, the Macintosh speech engine, in memory. Watching data about the sound being played, it then adjusted the Moose's mouth shape to match.

This left the speech engine's memory untouched. The Moose was simply watching it. Accessing memory across applications was possible in early Macintosh software, though modern operating systems generally restrict it.

The character could also comment on window and document names in familiar applications, thanks to that access. When the Moose seemed to know something about your work, it was responding to information on your own computer. No language model stood behind the face; its behavior was programmed.

The Color Years

The Moose had taken on color by about 1989. A picture of that version, printed with an early Macintosh color printer, hung on Halls's wall. Scans in his color Moose account still show the printing dots.

It is a small piece of computing history you can inspect, the character as it looked then, preserved on paper as well as in software.

Another kind of record came from old users. In a letter published in 2016, Mike Ellis remembered seeing the Moose at a Boston Mac Developers Group conference in the late 1980s:

"He was widely admired by some of the cleverest developers I've ever known, and he became my constant companion on my Mac Plus."

That letter sits among other recollections sent to Halls. Decades after using the software, people still remembered the character well enough to write to its maker.

Making a 3D Head Seem Alive

The later Windows Moose came with a three-dimensional head. Its ears moved and its eyes looked around. More expression came from its eyebrows and mouth than the original pixels could manage.

Repeating the same animation clips would have made those movements predictable. Instead, the Windows character used procedural animation, with algorithms generating its motions.

Halls's account of the animation describes controlled randomness. A movement could stop near a target rather than at exactly the same spot each time. Both its speed and the pause before the next movement varied. The result avoided looking mechanical, thanks to smooth acceleration and deceleration.

The lip-sync mechanism changed with the platform. On Windows, the character took timing information from Microsoft's Speech API to choose its mouth shapes. Recreating the old Macintalk memory-observation technique was unnecessary.

Something Worth Saying

Jokes remained part of the Moose, but plugins gave it other things to talk about. To reminders and notifications were added news and weather.

A June 2016 update described a working Pushover connection, IFTTT supplying the events for the Moose to announce. In one example, the Moose warned of approaching rain. In another, a phone entering a home geofence triggered a spoken "Welcome home" on the user's PC.

You did not have to keep checking a screen for those messages. They could be heard.

A Voice That Had a Face

Forty years separate the original Moose's 1986 appearance from the current enthusiasm for AI assistants. Calling it an early version of today's conversational AI would miss what Halls actually built. A joke could appear to come from an antlered companion, thanks to speech synthesis and carefully written animation code.

For Mike Ellis, that companion belonged to his Mac Plus. It could announce rain or greet someone arriving home in the later Windows project.

Those early screenshots are still worth a look. It is plainly a face made of pixels, yet a former user remembered a companion. Quite a result, for a moose that told jokes.

Rosenblatt Recitals has become the place to go to hear hot new talent
The Independent