Syntax von Tonfolgen

Sie wird sowohl für den ekmelib Player als auch für die ekmelib Notenanzeige verwendet. Sie ist teilweise von LilyPond übernommen – z.B. Notennamen, relativer Oktavmodus, reziproker Notenwert, Skalierung, Bindung, Begrenzer, und einige Befehle – und erweitert mit Elementen zur Angabe von Proportionen, Cent-Werten, Frequenzen usw.

Eine Tonfolge kann beliebig lang sein, bestehend aus Tönen, Akkorden, Befehlen, Variablen, und Begrenzern. Diese Elemente müssen durch Leerzeichen1 voneinander getrennt sein (optional bei Begrenzern). Andererseits sind Leerzeichen nicht erlaubt innerhalb eines Tons, eines proportionalen Akkords, eines Befehls oder einer Variable.

Ton

TONCENTDAUERBINDUNG

TON ist eine Note, Frequenz, Proportion, Pause, oder ein Taktsignal.

Cent, Dauer und Bindung sind optional. Töne innerhalb eines Akkords dürfen jedoch keine Dauer oder Bindung haben.

Note

NOTENNAME NOTENNAME'NOTENNAME,

NOTENNAME: Die möglichen Notennamen sind abhängig von der verwendeten Version (Tonsystem und Sprache) von ekmelib. Verfügbar sind deutsche und englische Namen in den folgenden Tonsystemen:

Ein Apostroph ' setzt die Oktave um eins hinauf.
Ein Komma , setzt die Oktave um eins hinunter.

Im Absoluten Oktavmodus (Voreinstellung) bedeutet kein ' oder , die kleine Oktave. ein ' die eingestrichene Oktave, zwei '' die zweigestrichene Oktave, ein , die große Oktave usw.

Im Relativen Oktavmodus bezieht sich eine Note auf den Bereich einer Quarte ober- und unterhalb der vorhergehenden Note, ohne Beachtung der Versetzung. Andere Töne (Frequenz, Proportion, Pause, Taktsignal) zwischen zwei Noten haben keine Auswirkung auf die relative Oktave.

Beispiel: \relative=c' c fis c geses' c,
Hier liegen alle Töne innerhalb derselben Oktave, aber geses ohne ' läge unterhalb von c.

Die Tonhöhe berechnet sich aus der Frequenz des Kammertons.

Frequenz

FREQUENZhz

Eine absolute Frequenz in Hz (Hertz). Sie darf Nachkommastellen haben. Die Groß / Kleinschreibung von hz wird ignoriert.

Proportion

ZÄHLER/NENNER

Eine Proportion relativ zum Grundton. ZÄHLER und NENNER müssen Ganzzahlen sein. Die Tonhöhe berechnet sich aus der Frequenz des Grundtons (F): F × ZÄHLER / NENNER

+ZÄHLER/NENNER -ZÄHLER/NENNER

Eine Proportion relativ zum vorhergehenden Ton. ZÄHLER und NENNER müssen Ganzzahlen sein, mit einem vorangestellten Vorzeichen + oder -. Die Tonhöhe berechnet sich aus der Frequenz des vorhergehenden Tons (F):
mit +:  F × ZÄHLER / NENNER
mit -:  F × NENNER / ZÄHLER

Pause

r R s

Eine Pause (engl. rest). R ist eine Ganztaktpause. s ist eine unsichtbare Pause (engl. skip).
Für den Player sind alle drei äquivalent. Sie erzeugen ein Audio-Signal mit der Lautstärke 0.

Taktsignal

t

Ein Taktsignal (engl. tick). Dies ist tatsächlich ein kurzer hoher Ton, gefolgt von Stille bis zum Ende der Dauer.

Beispiele

d' a' as' gih' d' gih' as' a'
Tonfolge im Absoluten Oktavmodus (Übung für Vierteltöne2).
\relative=c' d a' as gih d gih as a
Dito im Relativen Oktavmodus.
1081.74586hz
Absolute Frequenz.
220hz +3/2 +4/3 +5/4 +6/5 +7/6
Naturtonreihe vom 2. bis zum 7. Partialton (220 - 770 Hz).
1/1 -5/4 -36/35 -28/27
Tetrachord enharmonisch nach Archytas (abwärts).

Akkord

AKKORDCENTDAUERBINDUNG

AKKORD ist ein Regulärer Akkord, ein Proportionaler Akkord, oder eine Akkord-Wiederholung.

Cent, Dauer und Bindung sind optional.

Alle Töne desselben Akkords beginnen zum selben Zeitpunkt und haben dieselbe Dauer. Sie dürfen keine eigene Dauer oder Bindung haben.

Regulärer Akkord

< TON>

Ein Akkord aus beliebig vielen Tönen zwischen den Begrenzern < und >.

Im Relativen Oktavmodus bezieht sich die erste Note nach dem Akkord (nach >) auf die erste Note innerhalb des Akkords (nach <).

Proportionaler Akkord

ZAHL1:ZAHL2:ZAHL3

Ein Akkord aus beliebig vielen Proportionen relativ zum Grundton. ZAHL1,… müssen Ganzzahlen sein. Der Akkord darf keine Leerzeichen enthalten. Die Tonhöhen berechnen sich aus der Frequenz des Grundtons (F):
1. Ton:  F
2. Ton:  F × ZAHL2 / ZAHL1
3. Ton:  F × ZAHL3 / ZAHL1

<TON ZAHL1:ZAHL2:ZAHL3>

Ein proportionaler Akkord relativ zum vorhergehenden TON. Zwischen den Begrenzern < und > dürfen auch noch weitere Töne angegeben sein. Die Tonhöhen berechnen sich aus der Frequenz von TON (F); siehe oben. Dieser ist daher der erste Ton der Proportionen.

Akkord-Wiederholung

q

Ein Kürzel zur Wiederholung des letzten Akkords. Zwischen diesem und q dürfen auch einzelne Töne stehen.

Beispiele (im Relativen Oktavmodus)

< d a' >4
Quinte, a oberhalb von d (eine Viertelnote lang).
< d a >4
Quarte, a unterhalb von d.
3:4
Reine Quarte.
4:5_1
Naturterz (eine ganze Note lang).
< e 5:7 >
Tritonus ekmelisch.
< e aiser >
(Fast) äquivalentes Intervall.
<c gesil' her fih'>2
Vierstimmiger Akkord (eine halbe Note lang).
54:64:81_2s
Pythagoräische kleine Terz + pythagoräische große Terz (2 Sekunden lang).
< 54:64:81 >2s
Dito in anderer Schreibweise.
< d 54:64:81 >2s
Dito mit d als ersten Ton (nicht 4 Töne).

Cent

+CENTWERT -CENTWERT

Verschiebt die Tonhöhe des Tons oder aller Töne innerhalb des Akkords. CENTWERT muss immer mit einem Vorzeichen + oder - angegeben werden und darf Nachkommastellen haben. Die Tonhöhe berechnet sich für die Frequenz des Tons (F):
F × exp(± CENTWERT / 1200 × ln2)

Beispiele

g+16.67
G ein Zwölftelton höher.
440.5hz+10_5s
Absolute Frequenz um 10 Cent höher (5 Sekunden lang).
<e aiser>-50_2
Akkord ein Viertelton tiefer (eine halbe Note lang).

Dauer

Die Dauer ist entweder ein Notenwert oder eine Absolute Dauer, optional gefolgt von einer Skalierung. Ohne angegebene Dauer wird jene des vorhergehenden Tons verwendet. Die Voreinstellung für den allerersten Ton (auch nach einem tempo Befehl) ist die Dauer einer ganzen Note.

Wenn die Dauer unmittelbar auf eine Zahl folgt, d.h. bei einer Proportion, einem proportionalen Akkord oder Cent, muss ihr ein _ vorangestellt werden. Sonst ist _ optional.

Notenwert

NOTENWERT NOTENWERT.

Ein reziproker Notenwert, optional gefolgt von ein oder mehreren . für eine punktierte Note.
NOTENWERT ist 1 (ganze Note, Voreinstellung), 2, 4, 8, 16, 32, oder 64.

Absolute Dauer

DAUERs

Eine absolute Dauer in Sekunden. Sie darf Nachkommastellen haben. Die Groß / Kleinschreibung von s wird ignoriert.

Skalierung

*ZÄHLER/NENNER *ZÄHLER

Ein Skalierungsfaktor für die Dauer. ZÄHLER und NENNER müssen Ganzzahlen sein, mit einem vorangestellten *. ZÄHLER entspricht ZÄHLER/1. Mehrere Skalierungsfaktoren können kombiniert werden.

Beispiele (für Tempo 4=60)

c4
Viertelnote, 1 Sekunde.
c4.
Viertelnote punktiert, 1.5 Sekunden.
c4s
Absolut, d.h. immer 4 Sekunden unabhängig vom Tempo.
c4*2/3
Viertelnote skaliert als Triolteil, 2/3 Sekunden.
c8*4/5
Achtelnote skaliert als Quintolteil, 2/5 Sekunden.
c1*7/8*10
Ganze Note skaliert, 35 Sekunden.

Bindung

~

Bindet den Ton oder Akkord an den nachfolgenden. Beide müssen dieselben Tonhöhen (Frequenzen) haben.

Mehrstimmigkeit

Eine Tonfolge kann mehrstimmig sein. Neben Akkorden können gleichzeitig zu spielende Töne mit zusätzlichen Stimmen wie folgt angegeben werden. Bis zu 16 Stimmen werden unterstützt. Sie können unterschiedlich lang sein.

Stimme

TONFOLGE_STIMME_1 \\ TONFOLGE_STIMME_2

Anfang einer neuen Stimme. Die Tonfolge beginnt zum selben Zeitpunkt wie die der vorhergehenden Stimme, d.h. am Anfang entweder der gesamten Tonfolge oder eines Abschnitts (siehe unten).

Abschnitt

<< TONFOLGE_STIMME_1 \\ TONFOLGE_STIMME_2>>

Abschnitt in der Tonfolge. Alle darin enthaltenen Stimmen beginnen am Anfang dieses Abschnitts. Ein Abschnitt darf nicht in einen anderen Abschnitt eingebettet sein, d.h. <<<<>>>> ist nicht erlaubt.

Die Begrenzer \\, << und >> haben keinen Einfluss auf den Relativen Oktavmodus, d.h. die erste Note nach einem dieser Begrenzer bezieht sich auf die letzte Note davor. Daher ist es empfehlenswert, am Anfang jeder Stimme den relative Befehl anzugegeben.

Befehle

\NAME=WERT \NAME

Einem Befehl muss ein \ vorangestellt sein.
Die Befehle relative und tempo haben alternative Formen ohne NAME.
Die Befehle relative, pitch, tempo, time, und supplement haben entsprechende Attribute im Player und in der Notenanzeige, welche den jeweiligen Befehl am Anfang der Tonfolge einfügen.

Hinweis: Variablen haben Vorrang gegenüber Befehlen, d.h. ein Befehl wird von einer gleichnamigen Variable überschrieben. Daher sollten die folgenden Namen nicht unbedingt für Variablen verwendet werden.

Oktavmodus

\relative=NOTE \relative \=NOTE \=

NOTE setzt den Relativen Oktavmodus und ist zugleich Bezugspunkt für die Oktave der nachfolgenden Note. Sie selbst muss immer im Absoluten Oktavmodus angegeben werden; siehe Note.
Ohne NOTE wird der Absolute Oktavmodus gesetzt. Dies ist die Voreinstellung.

Kammerton / Grundton

\pitch=FREQUENZ

Setzt die Frequenz in Hz des Kammertons a' für Noten, oder des Grundtons für Proportionen und proportionale Akkorde. Sie darf Nachkommastellen haben.
Der Vorgabewert ist 440 Hz.
Dieser Befehl wird nur am Anfang, d.h. vor dem ersten Ton ausgeführt.

Tempo

\tempo=NOTENWERT=RATE \tempo=DAUER \NOTENWERT=RATE \DAUER

NOTENWERT=RATE setzt die Anzahl der reziproken Notenwerte pro Minute. Der Vorgabewert ist "4=60".
DAUER setzt die absolute Dauer einer ganzen Note in Sekunden. Sie darf Nachkommastellen haben.
Der nachfolgende Ton hat voreingestellt die Dauer einer ganzen Note.
Dieser Befehl wird nur am Anfang, d.h. vor dem ersten Ton ausgeführt. Er hat keine Wirkung in der Notenanzeige.

Taktart / Metrum

\time=ZÄHLER/NENNER \time

Setzt die Taktart (Metrum). ZÄHLER und NENNER müssen Ganzzahlen sein.
Ohne Wert wird das Metrum ausgeschaltet, d.h. die Notenanzeige setzt keine Taktstriche. Dies ist die Voreinstellung.
Dieser Befehl hat keine Wirkung im Player.

Zusätzliche Daten

\supplement=NAME

Dieser Befehl ist provisorisch. Siehe das entsprechende supplement Attribut (Englisch).

Lautstärke

\gain=PEGEL

Setzt die Lautstärke, d.h. den Sustain-Pegel, jedoch nur für die nachfolgenden Töne jener Stimme, in welcher der Befehl angegeben ist. Sie darf Nachkommastellen haben. Das nominelle Maximum ist 1. Der Vorgabewert ist 0.95.

Markierung (Übungszeichen)

\mark \mark=NUMMER

Setzt eine Markierung vor dem nächsten Ton. Sie wird in der Notenanzeige durch das jeweils nächste Zeichen A,B,C,… angezeigt, wobei der Buchstabe I ausgelassen wird. NUMMER muss eine Ganzzahl sein und setzt das entsprechende Zeichen.
Beispiel: … \mark … \mark … \mark=8 … \mark … \mark … setzt die Markierungen A B H J K.

Taktstrich

\bar

Setzt einen Taktstrich vor dem nächsten Ton. Dieser wird nicht als Takt gezählt, so wie jene laut Taktart.
Dieser Befehl hat keine Wirkung im Player.

Mögliche weitere Befehle

Die folgenden Befehle könnten eventuell noch hinzukommen:

  • \clef=NOTENSCHLÜSSEL
  • \key=TONHÖHE_MODUS
  • \ottava=OKTAVIERUNG

Variablen

\NAME

Eine Variable NAME ist eine Abkürzung für eine vordefinierte Tonfolge. Ihr muss ein \ vorangestellt sein.
Der Schalter V im Player blendet die Liste aller geladenen und online verfügbaren Variablen ein / aus.

Online Variablen

Die folgende Tabelle enthält alle unter www.ekmelic-music.org/var online verfügbaren Variablen. Sie definieren Intonationsübungen2 und Stimmungen.

je 22 Grundübungen:
\vVierteltöne
\sSechsteltöne
\zZwölfteltöne
\wEkmelische Töne in wechselnder Folge
Welle der Nacht:
\welle-der-nacht-hHarfenstimmung
\welle-der-nacht-o1Tonleiter für 1. Oboe
\welle-der-nacht-o2Tonleiter für 2. Oboe
\welle-der-nacht-oÜbung für beide Oboen
\welle-der-nacht-strÜbung für Streicher
\welle-der-nacht-sÜbung für Sopran
Ekmelischer Gesang für Solo-Violine:
\ekmelischer-gesang-tTonleiter
\ekmelischer-gesang-t2Tonleiter aufwärts
\ekmelischer-gesang-qQuarten
\ekmelischer-gesangÜbung für Violine
Ekmelischer Satz für Streichquartett:
\ekmelischer-satzÜbung für Streicher
Stimmungen:
\foehn“Föhn”: Orgel Drucktasten Einstellung
\indago-h“Indago”: Harfen Grundstimmung
\indago-o“Indago”: Orgel Drucktasten Grundeinstellung
\vom-leben-das-beste“Vom Leben das Beste”: Gitarrenstimmung
Immer verfügbare Variablen:
\introa'10s r6s t4 t t t
\aa'20s r8s

Definition von Variablen

Jede Variable wird durch eine eigene Datei definiert. Dies ist eine Reintextdatei mit der Tonfolge und mit dem selben Namen wie die Variable und der Dateinamenendung txt.3 Der Name darf nur aus a-z, A-Z, 0-9, _ und - bestehen und muss mit einem Buchstaben beginnen. Die Tonfolge der Variable darf keine weiteren Variablen eingebettet enthalten.

Variablen haben Vorrang gegenüber Befehlen, d.h. ein Befehl wird von einer gleichnamigen Variable überschrieben.

Begrenzer

< > << >> \\

Diese Elemente bezeichnen Anfang und Ende eines Akkords, eines Abschnitts, bzw. einer Stimme. Sie dürfen an die benachbarten Elemente direkt angrenzen oder durch Leerzeichen1 getrennt sein.

Alternativ zu den Zeichen < und > kann auch /* und */ verwendet werden. Dies ist gedacht für Tonfolgen im seq Attribut von HTML ekmaudio und ekmscore Elementen, um sie von den HTML-spezifischen Zeichen < und > zu unterscheiden.

Fehlermeldungen

Die folgenden Meldungen werden für Fehler in einer Tonfolge erzeugt.
Der Player blendet sie automatisch ein (oder über den Schalter F), jedoch nicht die Notenanzeige.

Unbekannter Notenname
Ein Notenname der in der verwendeten Version (Tonsystem, Sprache) von ekmelib nicht existiert.
Ungültiger Notenwert
Ein Ton oder Akkord mit einem ungültigen Notenwert, d.h. keine der Zahlen 1, 2, 4, 8, 16, 32, oder 64.
Unbekannte oder eingebettete Variable
Eine Variable die nicht geladen wurde oder in der Tonfolge einer anderen Variable enthalten ist.
Unbekanntes Element
Ein unbekanntes Element, d.h. weder ein Ton, noch ein proportionaler Akkord, Befehl, Variable, oder Begrenzer.
Ungültige Zeichen
Ungültige Zeichen am Ende eines Tons oder Akkords.
Illegaler Wert Null
Ein time Parameter, eine Frequenz, oder der Nenner einer Proportion oder Skalierung mit dem Wert 0.
Dauer Null
Ein Ton oder Akkord mit der Dauer 0.
Bindung verschiedener Töne
Eine Bindung zwischen Tönen mit verschiedenen Tonhöhen (Frequenzen).
Offene Bindung
Eine Bindung beim letzten Ton oder Akkord am Ende der Tonfolge, einer Stimme \\ oder eines Abschnitts >>.
Extra-Ton mit Bindung
Eine Pause r, R, s, oder ein Taktsignal t mit einer Bindung.
Begrenzer im Akkord
Ein Begrenzer \\, <<, >>, oder < innerhalb eines Akkords. Erlaubt ist nur der abschließende Begrenzer >.
Extra-Ton im Akkord
Eine Pause r, R, s, oder ein Taktsignal t innerhalb eines Akkords.
Dauer im Akkord
Ein Ton mit einer Dauer innerhalb eines Akkords.
Bindung im Akkord
Ein Ton mit einer Bindung innerhalb eines Akkords.
Leerer Akkord
Nur die Begrenzer < und > ohne Töne dazwischen.
Offener Akkord
Ein Akkord ohne abschließenden Begrenzer > (am Ende der Tonfolge).
Unnötiges Akkord-Ende
Ein abschließender Begrenzer > ohne vorhergehenden öffnenden <.
Kein Akkord davor
Eine Akkord-Wiederholung q ohne vorhergehenden Akkord.
Abschnitt nicht in erster Stimme
Ein Abschnitt innerhalb einer höheren Stimme.
Ungültiger Parameter
Ein Befehl mit einem ungültigen Parameter.

Beispiele

cih ciseh hisih deseh
c+50 his+50 deses+50
cis-50 hisis-50 des-50
ceh+100 cesih+100 hih+100 hiseh+100

usw.
Enharmonisch äquivalente Angaben für c einen Viertelton höher.
\relative=c' c4 d er fih g asil hesel her c
Ekmelische Reihe 1 auf 1 (Partialtonreihe) mit 8 Stufen. Jeder Ton dauert eine Viertelnote lang (4).
c'2s cis' er' fih' gesil' asil' hesel' hesil' c''
Ekmelische Reihe 3 auf 2 mit 8 Stufen. Jeder Ton dauert zwei Sekunden lang (2s).
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
Naturtonreihe vom 2. bis zum 16. Partialton (110 - 880 Hz). Jeder Ton dauert ein-einhalb Sekunden lang (1.5s).
1/1_4s -5/4 -36/35 -28/27
Enharmonischer Tetrachord (28:27) (36:35) (5:4) nach Archytas von Tarent. Jeder Ton dauert vier Sekunden lang (_4s).
t4 t d''2 a' gih' cisih'' gih' heseh' a' d''
Zwei Taktsignale (t) im Viertelnoten-Abstand (4); danach halbe Noten (2) mit Halbton- und Viertelton­schritten (ih eh).
1/1_4s 3/2 2:3
Reine Quinte, nacheinander und als Akkord. Jeder Ton dauert vier Sekunden lang (_4s).
\relative=c' <a' d>2 es'4 dih q es' dih gih gel2 <h, e>4 gel' q
Eine Solo-Stimme mit Quarten (aus Übung zu “Ekmelischer Gesang für Solo-Violine” 2).
\relative=c' fih'2 eih es d cis c4 d fih2 c2. d4 \\ aseh2 geh fiseh e eser d1~ d2.~ d4
Zwei Stimmen (\\) (aus Übung zu “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 >>
Abschnitt zwischen << und >> mit fünf Stimmen getrennt durch \\ (aus Übung zu “Welle der Nacht” 2).
  1. abEin Leerzeichen kann tatsächlich jedes Unicode white-space Zeichen sein: space, tab, line feed (LF), carriage return (CR) u.a. entsprechend der JavaScript Zeichenklasse \s (entspricht [ \f\n\r\t\v​\u00a0\u1680​\u180e\u2000​-\u200a​\u2028\u2029\u202f\u205f​\u3000\ufeff]).
  2. abcdeAus “Ekmelische Musik. Aufführungspraxis und Intonationsübungen” von Franz Richter Herf, 1979. Die Noten mit allen Übungen sind als Download verfügbar. Sie enthalten Links zum Ekmelik-Player mit jeweils einer Tonfolge.
  3. Zum Erstellen einer Reintextdatei kann ein einfacher Texteditor verwendet werden, z.B. TextEdit in OS X, MS-Editor oder WordPad in Windows.