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, reziproke Notenwerte, Skalierung, Bindungen – und erweitert mit Elementen zur Angabe von Proportionen, Cent-Werten, Frequenzen usw.

Eine Tonfolge kann beliebig lang sein, bestehend aus einzelnen Tönen, Akkorden, Befehlen und Variablen, in ein oder mehreren Stimmen (bis zu 16), die alle durch Leerzeichen1 voneinander getrennt sein müssen. Leerzeichen sind jedoch 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. DAUER und BINDUNG sind jedoch nicht erlaubt bei Tönen innerhalb eines Akkords.

Note

NOTENNAME NOTENNAME'… NOTENNAME,

NOTENNAME: Siehe Notennamen in 72-EDO, d.h. für alle Zwölfteltonstufen. Verfügbar sind deutsche oder englische Namen, abhängig von der verwendeten Sprachversion von ekmelib; z.B. deutsche Namen: c cir cil cih ciseh cisel ciser cis cisir cisil cisih cisiseh cisisel cisiser cisis ….

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

Im Absoluten Oktavmodus bedeutet kein Oktavstrich die kleine Oktave, ein Apostroph ' die eingestrichene Oktave, zwei Apostrophe '' die zweigestrichene Oktave, ein Komma , die große Oktave, zwei Kommas ,, die Kontra-Oktave usw.

Im Relativen Oktavmodus bezieht sich eine Note auf den Bereich einer Quarte ober- und unterhalb der vorhergehenden, eventuell mit dem \relative Befehl angegeben Note, ohne Beachtung der Versetzung durch eine Endung. Andere Töne (wie etwa Frequenz, Proportion oder Pause) zwischen zwei Noten haben keine Auswirkung auf die relative Oktave.

Voreingestellt ist der Absolute Oktavmodus.

Beispiel: \relative=c' c fisih c ges' c,
Hier liegen alle fünf Töne innerhalb derselben Oktave, aber ges 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 Ton (~50ms), 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öne 2).
\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.

Alle Töne desselben Akkords beginnen zum selben Zeitpunkt und haben dieselbe Dauer.

CENT, DAUER und BINDUNG sind optional. Einzelne Angaben zur Dauer oder Bindung bei den Tönen innerhalb des Akkords sind nicht erlaubt.

Regulärer Akkord

< TON … >

Ein Akkord aus beliebig vielen Tönen zwischen < und >3. Diese Begrenzer dürfen an Töne direkt angrenzen oder durch Leerzeichen1 getrennt sein.

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

Proportionaler Akkord

ZAHL1:ZAHL2…

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

< … TON ZAHL1:ZAHL2… >

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

Akkord-Wiederholung

q

Kürzel zur Wiederholung des vorhergehenden 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 Zeit in Sekunden, optional gefolgt von einer Skalierung. Ohne angegebene Dauer wird jene des vorhergehenden Tons verwendet. Die Vorgabe 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 muss eine Ganzzahl sein: 1 für ganze Note, 2 für halbe Note, 4 für Viertelnote, 8 für Achtelnote usw.

Zeit

DAUERs

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

Skalierung

*ZÄHLER/NENNER *ZAHL

Ein Skalierungsfaktor für die Dauer. ZÄHLER und NENNER müssen Ganzzahlen sein, mit einem vorangestellten *. ZAHL entspricht ZAHL/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 dieselbe Frequenz (bzw. dieselben Frequenzen) haben.

Mehrstimmigkeit

Eine Tonfolge kann mehrstimmig sein. Gleichzeitig zu spielende Töne können als Akkord und/oder mit zusätzlichen Stimmen wie folgt angegeben werden. Bis zu 16 Stimmen werden unterstützt und 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 >>3 dürfen an Töne direkt angrenzen oder durch Leerzeichen1 getrennt sein. Sie haben keinen Einfluss auf den Relativen Oktavmodus, d.h. die erste Note nach einem dieser Begrenzer bezieht sich auf die letzte Note davor.

Befehle

\NAME=WERT \NAME

Ein Befehl wirkt sich auf die nachfolgenden Töne aus, entweder bis zum Ende der Tonfolge oder bis zum nächsten gleichnamigen Befehl. Ihm muss ein \ vorangestellt sein. Die Befehle relative und tempo haben alternative Formen ohne NAME.
Die Befehle relative, pitch, tempo, time, und add 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 kann von einer gleichnamigen Variable überschrieben werden.

Oktavmodus

\relative=NOTE \relative \=NOTE \=

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

Kammerton/Grundton

\pitch=FREQUENZ

Setzt die Frequenz des Kammertons a' für Noten, oder die Frequenz 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

\add=DATA

Stellt zusätzliche Daten für jeden nachfolgenden Ton bereit, welche z.B. in der Beschriftung einer Notenanzeige verwendet werden können. Siehe das add Attribut für weitere Details. DATA ist einer der folgenden Namen:

  • degree: Daten bezogen auf die jeweilige Tonstufe (Grad).
  • note: Daten der zum jeweiligen Ton nächstgelegenen Note.

Lautstärke

\gain=LAUTSTÄRKE

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 einem 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.

Mögliche Erweiterungen

Folgende Namen sind zwar nicht als Befehle definiert, könnten aber eventuell noch hinzukommen (übernommen von LilyPond):

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

Variablen

\NAME

Eine Variable NAME ist eine Abkürzung für eine vordefinierte Tonfolge. Ihr muss ein \ vorangestellt sein.

Klicken Sie auf V im Player für die Liste der geladenen und der online verfügbaren Variablen, oder um eine neue Variable aus einer lokalen Datei zu laden. Die Liste wird von allen Playern im selben Dokument (Web-Seite) gemeinsam verwendet. Eine ausgewählte Variable wird mit \ in die Tonfolge eingefügt.

Online Variablen

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

VariableBeschreibung
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 mit einer eigenen Datei definiert. Dies ist eine Reintextdatei mit der Tonfolge und mit dem selben Namen wie die Variable und der Dateinamenendung txt.4 Der Name darf nur aus a-z, A-Z, 0-9, _ und - bestehen. Eine Zahl alleine ist erlaubt. 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.

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. abcEin 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 (gleich [ \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 Intonationsübungen sind als PDF bei den Noten verfügbar. Sie enthalten Links zum Ekmelik-Player mit jeweils einer Tonfolge.
  3. abAlternativ zu < und > können die Begrenzer /* und */ verwendet werden. Sie sind gedacht für Tonfolgen im seq Attribut von HTML ekmaudio und ekmscore Elementen, um sie von den HTML Zeichen < und > zu unterscheiden.
  4. Zum Erstellen einer Reintextdatei kann ein einfacher Texteditor verwendet werden, z.B. TextEdit in OS X, MS-Editor oder WordPad in Windows.