Harmony Compiler

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Harmony Compiler
Original authorPeter Samson
Initial release1960, 2006
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    PlatformPDP-1
    TypeMusic
    WebsitePDP-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.

    Error creating thumbnail: File missing
    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 | edit source]
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). Samson's description begins at 1:20.

    Notes

    [edit | edit source]
    1. ^ Hackers: Heroes of the Computer Revolution by Steven Levy at Project Gutenberg. p. 24
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Alexander Pope. An Essay on Criticism at Project Gutenberg p. 13
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).