Harmony Compiler

Compiler written by Peter Samson

Harmony Compiler

Manuscript, Music Compiler (PDF)

Original author(s)| Peter Samson
Initial release| 1960, 2006
Platform| PDP-1
Type| Music
Website| PDP-1 Restoration Project

Harmony Compiler was written by Peter Samson at the Massachusetts Institute of Technology (MIT). The compiler was designed to encode music for the PDP-1 and built on an earlier program Samson wrote for the TX-0 computer.

TX-0 music

Jack Dennis noticed and had mentioned to Samson that the sound on or off state of the TX-0's speaker could be enough to play music.[1] They succeeded in building a WYSIWYG program for one voice before or by 1960.[2]

For the PDP-1 which arrived at MIT in September 1961, Samson designed the Harmony Compiler which synthesizes four voices from input in a text-based notation. Although it created music in many genres, it was optimized for baroque music. PDP-1 music is merged from four channels and played back in stereo. Notes are on pitch and each has an undertone. The music does not stop for errors. Mistakes are greeted with a message from the typewriter's red ribbon, "To err is human, to forgive divine."[3]

Samson joined the PDP-1 restoration project[4] at the Computer History Museum in 2004 to recreate the music player.

## References

[edit]

* Smith, Daniel P. B. (1997). "PDP-1 Music". Retrieved 2006-07-05.
* Samson, Peter (2006). The Mouse That Roared: PDP-1 Celebration Event Lecture 05.15.06. Computer History Museum. Retrieved 2006-07-05. Samson's description begins at 1:20.

## Notes

[edit]

1. ^ Hackers: Heroes of the Computer Revolution by Steven Levy at Project Gutenberg. p. 24
2. ^ "MUSIC X". 28 May 1960. Retrieved 2006-07-05.
3. ^ Alexander Pope. An Essay on Criticism at Project Gutenberg p. 13
4. ^ Cheponis, Mike (Spring 2006). "Restoring the DEC PDP-1 Computer". Core. Computer History Museum. Retrieved 2007-11-23.

This music software article is a stub. You can help Wikipedia by expanding it.

|

* v
* t
* e

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template