By Guy Fedorkow
David C. Brock
Software History Center
Computer History Museum
Most of us are intuitively familiar with what we will call “auditory maintenance.” The faint cry of a child wakes you from the depths of sleep. A rattle from across the room signals that the washing machine is unbalanced. A break in the normal background ambient sound makes you worry that the heater has gone out. The fan going crazy in your computer indicates that it is working far too hard on something. How many trips to the garage are due to a “weird noise” from the car? “Noise” is a critical auditory signal calling for repair and maintenance in our everyday lives. While auditory maintenance in domestic life surely predates its use in industrial contexts, it is there that it has been given great attention. In his 1895 The Repair and Maintenance of Machinery, author Thomas Walter Barber gets to the point: “. . . no machine can be considered perfect that is noisy in working.”1 Not loud, mind you, but noisy.
For calculating and computing machinery, one can readily imagine how such auditory maintenance and monitoring was unavoidable in the world of electromechanical tabulators and computers of the 1940s, with their clacking relays and spinning shafts. (A silent sense can be felt in this footage of the Harvard Mark 1 computer). It was undoubtedly the case that auditory maintenance and monitoring was integral to the operation of the electromechanical code-breaking “bombes” used by the Allies during the Second World War. “Stops” in whirring drums indicated solutions to pressing problems.
With the rise of electronic digital computers, auditory maintenance became more deliberate. The essential switches at the heart of electronic computing—vacuum tubes and, later, transistors and microchips—are in and of themselves inherently quieter than the cams, synchros, drums, shafts, and relays of the electromechanical domain. Nevertheless, the early electronic digital computers still afforded the same sorts of passive, deviation-from-the-normal-ambient sort of auditory maintenance and monitoring as for mechanical and electromechanical machines. Joe Thompson, one of the first operators of the Whirlwind computer at MIT starting in 1950, recalls:
Later, using the XD-1 prototype computer at the Lincoln Laboratories, Apollo Program software pioneer Margaret Hamilton remembers:
By the end of the 1940s, engineers, mathematicians, and other researchers added a more deliberate modality to the auditory maintenance and monitoring of electronic digital computers: loudspeakers. By 1949, computer-makers in both the United States and the United Kingdom began to wire loudspeakers into their electronic machines to provide diagnostic signals about their operation and also to sound alarms about program states and errors. In the United States, this deliberate auditory maintenance began serendipitously, in Philadelphia. There, sometime before August 1949, Jack Silver, a technician, was assigned to work long hours monitoring the indicator lights on the Eckert-Mauchly Computer Corporation’s new computer, the BINAC, ordered by Northrup Aircraft. As a lead engineer on the BINAC project later recalled, Silver needed to spend hours monitoring the indicator lights to ensure the computer was still functioning during testing. For relief from the tedium, Silver turned on a portable radio set. He soon realized that the computer was causing the interference sounds on the radio. While BINAC was operating, the switching vacuum tubes, and varying electrical signals flowing through the computer produced unintended electromagnetic interference, an inadvertent broadcast that caused noise from the radio’s loudspeaker.
While these inadvertent broadcasts by computers and other electronic equipment would later become major opportunities for covert intelligence gathering—and ultimately the trigger for a program code-named “TEMPEST” from the National Security Agency, specifying the numerous practices to both intercept and prevent these emanations—for Silver, the new auditory maintenance was a source of delight: he could simply walk around the factory listening to the radio and only had to worry if the interfering noise to the songs caused by BINAC’s operation stopped.
Quickly, the BINAC engineers wired a loudspeaker to the electronics of the computer for this kind of auditory maintenance and soon realized that they could create programs for BINAC that would cause the loudspeaker to emit sequences of tones. With that, they could create programs that caused BINAC to make music: computer music. And this they did for an August 1949 party celebrating the completion of the machine.4 Betty Holberton (née Snyder), who had been a key programmer for the ENIAC, worked as a main programmer for the BINAC and succeeded in having BINAC produce “For He’s A Jolly Good Fellow” that night.5
As is typical in the history of technology, other computing pioneers were finding their way at just this time to deliberate auditory monitoring and maintenance of early electronic digital computers by attaching loudspeakers to the electronics of their machines. Unsurprisingly, these pioneers were also struck by the ability to make intentional sounds, that is, computer music. At the Computing Machine Laboratory at the University of Manchester, Alan Turing and others included a loudspeaker in their self-made Manchester Mark I computer, and loudspeakers were features of later computers in the laboratory, like the commercial computers created by Ferranti. By 1950, Alan Turing’s programming notes for the Manchester computer included discussions about how to produce musical tones, and in 1951 Manchester researcher Christopher Strachey wrote a program for the new Feranti Mark I (also confusingly called the Machester Mark II), which had it produce the song “God Save the King.” This and several other tunes were captured in a BBC recording of that year.
In Australia, the CSIRAC computer also incorporated a loudspeaker and, also in 1951, produced public demonstations of computer music, evidently including the tune “The Colonel Bogey March.”6 (You may not realize it, but you know it.) While there exists a priority dispute about which of these two machines played music first, what is evidently completely absent from these discussions of early computer music is the fact that at MIT, the Whirlwind computer played “Jingle Bells” for the famed journalist Edward R. Murrow on December 16, 1951.
That Sunday, CBS News broadcast a segment on their popular See it Now program, in which Murrow interviewed Professor Jay Forrester of MIT remotely in Cambridge, Massachusetts. Forrester was the leader of the project that had recently created a breakthrough electronic digital computer called “Whirlwind.”
Whirlwind was huge—over 10,000 vacuum tubes and more than 100 kW of power consumption—and ran at MIT for the decade between 1949 and 1959. While the operational machine is long gone, there are many pieces of it, and associated materials, preserved in the collections of the Computer History Museum (CHM), the Smithsonian, and the MIT Museum. CHM preserves some 1,000 punched paper tapes of Whirlwind software and data, believed to date exclusively from 1949 to 1959, with 1953 the earliest identified tape. CHM and the MIT Museum have launched a joint research project on these tapes, digitally preserving their contents and developing means to explore them, and in the course of this exploration came across one labeled “Jingle Bells.” Based on our research of this tape, and the Whirlwind program that it contains, we believe that it is a post-1953 version of the “Jingle Bells” song program first known to have been played for the December 1951 Murrow program. In what follows, we detail this research.
Whirlwind was a 16-bit parallel vacuum-tube machine with a memory system that ultimately grew to some 6,000 words. For contrast, contemporary laptops often are equipped with more than 6 billion bytes of memory. Whirlwind, intended for real-time operations for aircraft simulation and air defense, was speedy for its day, capable of carrying out 50,000 Add operations per second. For more detail on Whirlwind, see “The Whirlwind Computer at CHM.”
While the Whirlwind computer hardware will never run again, Whirlwind’s software is another matter. Emulation technology allows us to recover software from the paper tapes and to and run it again on contemporary computers. The “Jingle Bells” tape was a test-run for this approach for recovering and studying Whirlwind software, in no small part because we had a good guess, and a video recording, of what the program was supposed to do.
The Whirlwind computer was built under government contract as a one-of-a-kind research project, and as a result, there are many documents, memos, reports, and letters available online in MIT’s DOME digital collection and on Bitsavers.org. Using these documents, it is possible to reconstruct and emulate the instruction set. In our project, a contemporary program written in Python is being developed that can execute the instructions of an historical Whirlwind program.
So how then did Jay Forrester’s team get Whirlwind to play “Jingle Bells” for the CBS crew? Like BINAC and the British and Australian computers, Whirlwind had an attached loudspeaker for auditory maintenance and monitoring. As confirmed by our analysis of the “Jingle Bells” program tape, the loudspeaker was attached to the 13th bit (Bit 13) of Whirlwind’s Accumulator, a key part of the computer’s logic.7 When Whirlwind executed any arithmetic instruction, the loudspeaker (if active) would emit a click as Bit 13 changed from a 0 to a 1, vice versa.
Whirlwind’s programmers knew how long each instruction took to complete. To play a tone, they simply held Bit 13 at one constant value for half the period of the desired square wave frequency, then flipped the bit to the opposite value for the second half of the square wave. This was done with subroutines comprising long sequences of a “no-operation” instruction—in this case, Exclusive OR’ing zero into the accumulator—followed by an Add instruction to flip the bit to generate the tones, as shown in the figure below.
The result of the full program was a sequence of instructions that would cause Bit 13 of the Accumulator to turn on and off in a pattern that sounds to us like “Jingle Bells!”
Because we worked with the digital information from the “Jingle Bells” tape in an emulator and other new software tools, generating the sounds was much harder than wiring a loudspeaker to the original Bit 13. We altered the emulator to allow it to log the successive 0s and 1s produced in Bit 13 as the program ran, derived the square waves from that log, passed square waves through a digital filter to emulate a loudspeaker, and created the final MP3, which you can listen to below.
Sixty-seven years to the day after the television debut of Whirlwind’s “Jingle Bells,” we offer you this restoration of the program from the original punched paper tape at CHM, recovering an overlooked early piece of the rise of computer music from the auditory maintenance of early electronic digital computers.