for Electronic Music Oriented Language

Also ELMOL 70

Jed Marti, St . Olaf College in New Ulm, Minnesota 1970

A language to use the computer with a musical instrument, the Moog Synthesizer

There are digital-to-analog converters which convert a binary number from the computer into an analog voltage which affects the Moog Synthesizer. Compiler is written in FORTRAN IV for IBM 1130.

  • Marti, Jed "The ELMOL 70 Programming Logic Manual", unpublished, 1973 view details
  • Marti, Jed "The ELMOL 70 Programming System Manual", unpublished, 1973 view details
  • Marti, J. B., "ELMOL: A Language for the Real Time Generation of Electronic Music," view details Extract: Introduction
    The computers contribution to the field of music can be categorized into four areas; 1) Compu ter storage and retrieval of musical scores, 2) Computer analysis of musical composition, 3) Computer composition, 4) Computer generation of musical sound. In the first category are music document storage and retrieval programs such as MIR. in the second category are programs that analyze the patterns of rhythm and melody of a composer or make comparisons between different pieces of music. In the third cateqory are proqrams that generate musical compositions or modify existing ones. The Computer Cantata and the ILLIAC Suite are the more well known products of those programs. In the fourth category are proqrams, such as BTL and MUSIC IV, that generate musical sound waves by digital approximation to the waveform. Since the computer cannot generate the waves fast enough to be heard directly, a subcategory Is reserved for programs that produce music directly, by the above means or through a musical instrument. The player piano, the music box, "Anchors Aweigh" on the high speed chain printer and loop tunes played on a radio near the CPU are all examples of this subdivision. ELMOL (Electronic Music Oriented language) is an attempt to use the computer with a musical instrument; the Moog Synthesizer. An ELMOL program can be written almost directly from sheet music, yet it allows control over musical quality not achievable with any normal musical instrument. Extract: Mechanism
    A note is a length of time during which a pitch of stable frequency and varying amplitude and harmonic content is played. More precisely:
    1. The pitch (frequency) of a note is constant over the duration of the note,
    2. The amplitude of the note may vary with time. The graph of amplitude vs time is known as the envelope of ths note. (See figure 1.)
    3. The timbre of a note may vary with time. The note may have additional frequencies accompanying the main one. (See figure 2.)

    ELMOL divides the amplitude envelope into discrete time Intervals known as beats. All time computations in the ELMOL program are relative to these beats. A sufficient number of beats per envelope are used so that the digital approximation to the notes envelope does not sound choppy.
    To play a note, the computer must have hardware to generate pitches and changes in amplitude and timbre. This has been accomplished by a set of Digital to Analog (D/A) converters, which convert a binary number from the computer into an analog voltage. The D/A converters are electrical ly connected to the voltage control led audio frequency oscillators, amplifiers and filters of the Moog Synthesizer.

    A voice is a set of single notes. Normally three D/A converters are needed to play one voice, one for the pitch, one for the envelope and one for the timbre. The computer does not generate the waveforms, but it controls the Moog Synthesizer which does all of the waveform generation. Extract: Structure
    A computer with a single CPU is not ideally suited to play music that involves more than one set of rhythms or single chords at a time. ELMOL allows the user to act as though he had more than one musical instrument in his orchestra. The ELMO  program is 3 set of parallely operating programs, one for each voice. The programs start in unison and flow from the first to last statement unless interrupted by a flow directing statement. A flow directing statement may affect only 3 single voice, or it may affect all of the voices simultaneously.

    If only a single voice, then the voice number (an integer) is placed before the statement
    (column 6 on the ELMOL program card). If the statement affects all voices, no number is given (blank in column 6).

    Statements for each of the voices are freely mixed in the ELMOL source program. Statement numbers, similar to the FORTRAN convention, are used to identify locations in the source code. A statement number indexes all the voices, not just the voice that it is connected with. It indexes the location of its statement in that statements voice and the first statement in each of the other voices that follows it.

    Variables, statement numbers and envelope descriptions are qlobal to all voices.

          in SIGPLAN Notices 8(07) July 1973 view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 view details