The Birth of Music Industry

By 1986, a moose could appear on a Macintosh screen. He talked aloud and told jokes, with his mouth moving along with the words.

Canadian physician and programmer Steven B. Halls created the Talking Moose at a time when a recognizable face had to be assembled from black-and-white pixels. Only a handful of pixels were needed to give it a personality.

Today's talking computers tend to prompt questions about artificial intelligence. A different sort of story covers the Moose's beginnings: one programmer figuring out how a computer-generated voice could seem to come from a character.

Why a moose?

Antlers played a part.

Photographs of the original Talking Moose present a two-dimensional Macintosh character. With so little room for detail, its outline had to carry most of the work. Halls remembers that antlers were easy to recognize even when small. He also liked moose, which settled the choice.

Halls wrote the original code in assembly language. Making the lips follow the speech took real ingenuity. As he recalls it, the program located Macintalk, the Macintosh speech engine, in memory. It observed information about the sound being played, then adjusted the Moose's mouth shape to suit.

This didn't change the speech engine's memory. It was the Moose that did the watching. Early Macintosh software could access memory across applications in ways that modern operating systems generally restrict.

That same access let the character remark on window and document names in familiar applications. A Moose that appeared to know something about your work was reacting to information on your own computer. Behind the face was programmed behavior, not a language model.

The Color Years

By around 1989, the Moose had acquired color. Halls kept a picture of that version on his wall, printed with an early Macintosh color printer. His color Moose account includes scans with the printing dots still visible.

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.

Former users supplied a further kind of record. A letter published in 2016 has Mike Ellis recalling 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 on from using the software, people remembered the character well enough to write to its maker.

Making a 3D Head Seem Alive

The Windows Moose that followed had a three-dimensional head. Its ears moved; its eyes looked around. Eyebrows and mouth gave it more scope for expression than the original pixels could manage.

Those movements would have become predictable if the same animation clips played over and over. Algorithms generating its motions gave the Windows character procedural animation instead.

Controlled randomness is what Halls's explanation of the animation describes. Each movement could end near a target, not at precisely the same spot every time. Its speed varied too, as did the pause before the next movement. The result avoided looking mechanical, thanks to smooth acceleration and deceleration.

The lip-sync mechanism changed with the platform. On Windows, Microsoft's Speech API supplied timing information that told the character which mouth shapes to use. Recreating the old Macintalk memory-observation technique was unnecessary.

Something useful to say

Plugins gave the Moose other things to talk about, while jokes remained part of it. To reminders and notifications were added news and weather.

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

You didn't have to keep checking a screen for those messages. You could simply hear them.

A Face for a Voice

Forty years separate the original Moose's 1986 appearance from the current enthusiasm for AI assistants. To call 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.

Mike Ellis felt that companion belonged on his Mac Plus. For the later Windows project, it could be the voice announcing rain or greeting someone arriving home.

Those early screenshots are still worth a look. It's plainly a face made of pixels, yet a former user remembered a companion. That's quite a result for a joke-telling moose.