It is used both for the ekmelib player and for the ekmelib score. It is partly adopted from LilyPond – e.g. note names, relative octave mode, reciprocal note values, scaling, ties – and extended with elements to specify proportions, cent values, frequencies etc.
A tone sequence may have any length, consisting of individual Tones, Chords, Commands, and Variables, in one or more voices (up to 16), all of which must be separated from each other by space characters1. However, space is not allowed within a tone, a proportional chord, a command, or a variable.
NOTENAME NOTENAME'… NOTENAME,…
NOTENAME: See Note names in 72-EDO, i.e. for all twelfth-tone degrees. Available are English or German names depending on the used language version of ekmelib; e.g. English names:
c cts cxs cqs csaqf crs cfts cs csts ctrs ctqs cssaqf cfxs cets css….
An apostrophe ' increments the octave by one.
A comma , decrements the octave by one.
In the Absolute Octave Mode, no octave accent means the small octave, one apostrophe ' the one-line octave, two apostrophes '' the two-line octave, one comma , the great octave, two commas ,, the contra octave etc.
In the Relative Octave Mode, a note is related to the range of a fourth above and below the preceding note, possibly specified with the
\relativecommand, ignoring the alteration by a suffix. Other tones (such as Frequency, Proportion, or Rest) between two notes do not effect the relative octave.
By default, the Absolute Octave Mode is set.
\relative=c' c fisih c ges' c,
Here, all five tones lie within the same octave, but
geswithout ' would lie below
The pitch is calculated from the frequency of the concert pitch.
An absolute frequency in Hz (Hertz). It may have a fractional portion. The case of hz is ignored.
A proportion relative to the root pitch. NUM and DENOM must be integer numbers. The pitch is calculated from the frequency of the root pitch (F): F · NUM / DENOM
A proportion relative to the preceding tone. NUM and DENOM must be integer numbers preceded by a sign + or -. The pitch is calculated from the frequency of the preceding tone (F):
with +: F · NUM / DENOM
with -: F · DENOM / NUM
r R s
A rest. R is a full measure rest. s is an invisible rest or skip.
They are all equivalent for the player. They produce an audio signal with the gain 0.
A clock signal (tick). This is actually a short tone (~50ms) followed by silence up to the end of the Duration.
d' a' as' gih' d' gih' as' a'
- Tone sequence in the Absolute Octave Mode (exercise for quarter tones 2).
\relative=c' d a' as gih d gih as a
- Dito in the Relative Octave Mode.
- Absolute frequency.
220hz +3/2 +4/3 +5/4 +6/5 +7/6
- Naturetone series from 2nd thru 7th partial tone (220 - 770 Hz).
1/1 -5/4 -36/35 -28/27
- Tetrachord enharmonic after Archytas (downward).
All tones of the same chord start at the same point of time and have the same duration.
- Regular Chord
- Proportional Chord
A chord made of any number of proportions relative to the root pitch. NUMBER1, NUMBER2,… must be integer numbers. The pitches of NUMBER1:NUMBER2:NUMBER3 are calculated from the frequency of the root pitch (F):
1st tone: F
2nd tone: F · NUMBER2 / NUMBER1
3rd tone: F · NUMBER3 / NUMBER1
< … TONE NUMBER1:NUMBER2… >
A chord made of any number of proportions relative to the preceding TONE. Further tones may also be specified between < and >. The pitches of NUMBER1:NUMBER2:NUMBER3 are calculated from the frequency of TONE (F); see above. Hence, this is the first tone of the proportions.
- Chord Repetition
Shortcut to repeat the preceding chord. Between this and q, individual tones are also allowed.
Examples (in the Relative Octave Mode)
< d a' >4
- Fifth, a above d (for a quarter note).
< d a >4
- Fourth, a below d.
- Perfect fourth.
- Natural third (for a whole note).
< e 5:7 >
- Tritone ekmelic.
< e aiser >
- (Almost) equivalent interval.
<c gesil' her fih'>2
- Four-voice chord (for a half note).
- Pythagorean minor third + pythagorean major third (for 2 seconds).
< 54:64:81 >2s
- Dito in another syntax.
< d 54:64:81 >2s
- Dito with d as the first tone (not 4 tones).
Alters the pitch of the tone or of all tones inside the chord.
CENTVALUE must always be specified with a sign + or - and
may have a fractional portion.
The pitch is calculated for the frequency of the tone (F):
F · exp(± CENTVALUE / 1200 · ln2)
- G a twelfth-tone higher.
- Absolute frequency by 10 cents higher (for 5 seconds).
- Chord a quarter-tone lower (for a half note).
The duration is either a Note value or a Time in seconds, optionally followed by a Scaling. Without a specified duration, the one of the preceding tone is taken. The default for the very first tone (also after a \tempo command) is the duration of a whole note.
- Note value
A reciprocal note value, optionally followed by one or more . for a dotted note. NOTEVALUE must be an integer number: 1 for whole note, 2 for half note, 4 for quarter note, 8 for eighth note, etc.
An absolute duration in seconds. It may have a fractional portion. The case of s is ignored.
A scaling factor for the duration. NUM and DENOM must be integer numbers preceded by a *. NUMBER is equivalent to NUMBER/1. Several scaling factors can be combined.
Examples (for tempo 4=60)
- Quarter note, 1 second.
- Quarter note dotted, 1.5 seconds.
- Absolute, i.e. always 4 seconds independent of the tempo.
- Quarter note scaled as triplet part, 2/3 seconds.
- Eighth note scaled as quintuplet part, 2/5 seconds.
- Whole note scaled, 35 seconds.
Ties the tone or chord with the subsequent one. Both must have the same frequency (or frequencies, resp.)
A tone sequence can be polyphonic. Tones to be played simultaneously can be specified as a chord and/or with additional voices as follows. Up to 16 voices are supported and they can be of different length.
Tone_Sequence_Voice_1 \\ Tone_Sequence_Voice_2 …
Advent of a new voice. The tone sequence starts at the same point of time as that of the preceding voice, i.e. from the beginning of either the entire tone sequence or a section (see below).
<< Tone_Sequence_Voice_1 \\ Tone_Sequence_Voice_2 … >>
Section in the tone sequence. All voices included in it start from the beginning of this section. A section must not be embedded within another section, i.e. << … << … >> … >> is not allowed.
The delimiters \\, << and >>3 may adjoin tones directly or they may be separated by space1. They have no impact on the Relative Octave Mode, i.e. the first note after one of these delimiters is related to the last note before it.
A command affects the subsequent tones, either up to the end of the
tone sequence or up to the next command of the same name.
It must be preceded by a \.
tempo have alternative forms without a NAME.
have corresponding attributes in the player and
score which insert the respective command at the
beginning of the tone sequence.
Note that variables take precedence over commands, i.e. a command can be overridden by a variable of the same name.
- Octave Mode
\relative=NOTE \relative \=NOTE \=
A NOTE sets the Relative Octave Mode and specifies the reference point for the octave of the subsequent note. NOTE itself must always be specified in the Absolute Octave Mode.
Without NOTE it sets the Absolute Octave Mode. This is the default.
- Concert/Root Pitch
\tempo=NOTEVALUE=RATE \tempo=DURATION \NOTEVALUE=RATE \DURATION
NOTEVALUE=RATE sets the number of reciprocal note values per minute. The default is "4=60".
DURATION sets the absolute duration of a whole note in seconds. It may have a fractional portion.
The subsequent tone has by default the duration of a whole note.
This command is executed only at the beginning, i.e. before the first tone. It has no effect in the score.
- Additional data
- Gain value
Sets the gain value, i.e. the sustain level, but only for the subsequent tones of those voice in which the command is specified. It may have a fractional portion. The nominal maximum is 1. The default is 0.95.
- Mark (Rehearsal mark)
Sets a mark ahead of a tone. In the score, it will be displayed by the next symbol in sequence A,B,C,…, skipping the letter I. NUMBER must be an integer number and sets the corresponding symbol.
… \mark … \mark … \mark=8 … \mark … \mark …sets the marks A B H J K.
- Possible Extensions
Though the following names are not defined as commands, they are likely to be added later (adopted from LilyPond):
A variable NAME is an abbreviation for a predefined tone sequence. It must be preceded by a \.
Click on V in the player to show the list of the loaded and the online available variables, or to load a new variable from a local file. The list is shared by all players in the same document (Web page). A selected variable will be inserted with \ into the tone sequence.
|22 basic exercises each|
|Ekmelic tones in varying sequences|
|Welle der Nacht|
|Scale for 1st oboe|
|Scale for 2nd oboe|
|Exercise for both oboes|
|Exercise for strings|
|Exercise for soprano|
|Ekmelischer Gesang for Solo-violin|
|Exercise for violin|
|Ekmelischer Satz for String quartet|
|Exercise for strings|
|“Föhn”: Organ push button setting|
|“Indago”: Harps main tuning|
|“Indago”: Organ push button base setting|
|“Vom Leben das Beste”: Guitar tuning|
|Always available variables|
Definition of Variables
Each variable is defined by a separate file.
This is a plain text file with the tone sequence and with the same name
as the variable and the filename suffix
The name must consist of a-z, A-Z, 0-9, _, and -, only.
A sole number is allowed.
The tone sequence of the variable must not contain any further embedded
Variables take precedence over commands, i.e. a command is overridden by a variable of the same name.
cih ciseh hisih deseh
c+50 his+50 deses+50
cis-50 hisis-50 des-50
ceh+100 cesih+100 hih+100 hiseh+100
- Enharmonically equivalent specifications for
Ca quarter-tone up.
\relative=c' c4 d er fih g asil hesel her c
- Ekmelic series 1 on 1 (partial-tone series) with 8 degrees.
Each tone takes a quarter note (
c'2s cis' er' fih' gesil' asil' hesel' hesil' c''
- Ekmelic series 3 on 2 with 8 degrees.
Each tone takes two seconds (
110hz1.5s +3/2 +4/3 +5/4 +6/5 +7/6 +8/7 +9/8 +10/9 +11/10 +12/11 +13/12 +14/13 +15/14 +16/15
- Naturetone series from 2nd thru 16th partial tone (110 - 880 Hz).
Each tone takes one and a half seconds (
1/1_4s -5/4 -36/35 -28/27
- Enharmonic tetrachord (28:27) (36:35) (5:4) after Archytas of Tarent.
Each tone takes four seconds (
t4 t d''2 a' gih' cisih'' gih' heseh' a' d''
- Two tick signals (
t) in quarter note distance (
4); then half notes (
2) with semitone and quarter tone steps (
1/1_4s 3/2 2:3
- Perfect fifth, one after the other and as a chord. Each tone takes
four seconds (
\relative=c' <a' d>2 es'4 dih q es' dih gih gel2 <h, e>4 gel' q
- One solo voice with fourth's (from exercise for “Ekmelischer Gesang for Solo-Violin” 2).
\relative=c' fih'2 eih es d cis c4 d fih2 c2. d4 \\ aseh2 geh fiseh e eser d1~ d2.~ d4
- Two voices (
\\) (from exercise for “Welle der Nacht” 2).
\relative=c' heser'2 << r1 r diser \\ r1. gil,2~ gil1 \\ r1 eih~ eih \\ r2 al,~ al1~ al \\ fil1~ fil~ fil >>
- Section between
>>with five voices separated by
\\(from exercise for “Welle der Nacht” 2).
- ↑abcActually, space can be
any Unicode white-space character: space, tab, line feed (LF),
- ↑abcdeFrom “Ekmelische Musik. Aufführungspraxis und Intonationsübungen” by Franz Richter Herf, 1979. The intonation exercises are available as PDF at the Scores. They include links to the Ekmelic Player, each with one tone sequence.
- ↑abAs an alternative to < and >, the delimiters
/* and */ can be used. They are intended for tone
sequences in the
seqattribute of HTML ekmaudio and ekmscore elements to discriminate them from the HTML characters < and >.
- ↑To create a plain text file, a simple text editor can be used, e.g. TextEdit on OS X, Notepad or WordPad on Windows.