Syntax von Tonfolgen

Die Syntax wird in ekmelib verwendet, sowohl für den Player als auch für die Notenanzeige.

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, absoluten Frequenzen u.a.

Eine Tonfolge besteht aus Tönen, Akkorden, Befehlen, und Variablen, welche durch Leerzeichen1 voneinander getrennt sein müssen. Andererseits sind Leerzeichen nicht erlaubt innerhalb eines Tons, eines proportionalen Akkords, eines Befehls oder einer Variable.

Eine Tonfolge kann beliebig lang sein, jedoch ein längeres Musikbeispiel (mehrere hundert Töne) verlangsamt die Notensetzung deutlich.

Alle Beispiele in dieser Seite verwenden die deutschen Notennamen.

Ton

TONCENTDAUERBINDUNG

TON ist eine Note, Proportion, Frequenz, 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 hängen ab vom verwendeten ekmelib Skript für ein bestimmtes Tonsystem und eine Sprache. Verfügbar sind deutsche und englische Namen in den Systemen:

Ein Apostroph (einfaches Anführungszeichen) ' 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.

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

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

Frequenz

FREQUENZhz

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

Pause

r R s

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

Taktsignal

t

Ein Metronom-Taktsignal (englisch: tick). Im Player ist dies tatsächlich ein kurzer hoher Ton, gefolgt von Stille bis zum Ende der Dauer.

Beispiele

\relative=c' c fis c geses' c,
Tonfolge im Relativen Oktavmodus. Alle Töne liegen innerhalb der eingestrichenen Oktave, aber geses ohne ' wäre in der kleinen Oktave (und daher auch das darauffolgende c,).
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
Dieselbe Tonfolge 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, ZAHL2, … 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), wie oben. Dieser ist daher der erste Ton der Proportionen.

Akkord-Wiederholung

q

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

Beispiele

Alle im Relativen Oktavmodus.

< d a' >4
Quinte, a oberhalb von d (eine Viertelnote lang).
< d a >4
Quarte, a unterhalb von d.
<c gesil' her fih'>2
Vierstimmiger Akkord (eine halbe Note lang).
3:4
Reine Quarte.
4:5_1
Naturterz (eine ganze Note lang).
< e 5:7 >
Tritonus ekmelisch.
< e aiser >
(Fast) äquivalentes Intervall.
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
Absolute Frequenz um 10 Cent höher.
<e aiser>-50_2
Akkord ein Viertelton tiefer (und 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 ersten 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, gefolgt von ein oder mehreren . für eine punktierte Note.
NOTENWERT ist 1, 2, 4, 8, 16, 32, oder 64. 1 (ganze Note) ist die Voreinstellung.

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 alleine entspricht ZÄHLER/1. Mehrere Skalierungsfaktoren können kombiniert werden.

Beispiele

Angaben 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

Die Befehle relative und tempo haben alternative Formen ohne NAME. Die Befehle relative, pitch, tempo, time, und supplement haben entsprechende Attribute im HTML ekmaudio und ekmscore Element, welche den jeweiligen Befehl am Anfang der Tonfolge einfügen.

Hinweis: Sowohl Befehle als auch Variablen beginnen mit \ und NAME kann auch als Name einer Variable verwendet werden, welche dann den Befehl ersetzt.

Oktavmodus

\relative=NOTE \relative \=NOTE \=

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

Tempo

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

NOTENWERT=RATE setzt die Anzahl der reziproken Notenwerte pro Minute. DAUER setzt die absolute Dauer einer ganzen Note in Sekunden. Sie darf Nachkommastellen haben. Der nachfolgende Ton hat voreingestellt die Dauer einer ganzen Note. Der Vorgabewert ist "4=60".

Dieser Befehl 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.

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.

Dieser Befehl hat keine Wirkung in der Notenanzeige.

Marke (Übungszeichen)

\mark \mark=NUMMER

Setzt eine Marke vor dem nächsten Ton. Die Notenanzeige setzt das jeweils nächste Zeichen A,B,C,…, wobei der Buchstabe I ausgelassen wird. NUMMER ist eine Ganzzahl für das zu setzende Zeichen.

Beispiel: … \mark … \mark … \mark=8 … \mark … \mark … setzt die Zeichen A B H J K.

Taktstrich

\bar

Setzt einen Taktstrich vor dem nächsten Ton. Er wird nicht als Takt gezählt, so wie jene laut Taktart.

Dieser Befehl hat keine Wirkung im Player.

Variablen

\NAME

Eine Variable NAME ist eine Abkürzung für eine vordefinierte Tonfolge. 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. Der Name darf nur aus Buchstaben a-z, A-Z, Ziffern 0-9, und Minus - bestehen und darf nicht mit 0-9 beginnen. Es darf auch der Name eines Befehls sein, welcher dann durch die Variable ersetzt wird. Der Name list ist reserviert für eine Datei mit der Liste aller online verfügbaren Variablen und sollte nicht verwendet werden.

Die Tonfolge darf Befehle enthalten, jedoch keine weiteren Variablen (eingebettete Variablen).

Siehe auch das var Attribut und das Editierfenster zur Variablen-Verwaltung. Variablen-Dateien können auch mit einem einfachen Texteditor wie z.B. TextEdit auf OS X, oder MS-Editor auf Windows erzeugt werden.

Online Variablen

Die folgende Tabelle enthält alle bei 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
Ergänzende Tonfolgen:
\aa'20s r8s
\introa'10s r6s t4 t t t

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 Fehler können in einer Tonfolge vorkommen. Sie werden im Editierfenster aufgelistet.

Unbekannter Notenname
Ein Notenname welcher im verwendeten ekmelib Skript nicht definiert ist.
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.
Unbekannter \ Ausdruck
Ein unbekannter Befehl, oder 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 >>.
Bindung bei einem Extra-Ton
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 >.
Unnötiges Akkord-Ende
Ein abschließender Begrenzer > ohne vorhergehenden öffnenden <.
Kein Akkord zum Wiederholen
Eine Akkord-Wiederholung q ohne vorhergehenden Akkord.
Abschnitt nicht in Stimme 1
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, im Relativen Oktavmodus. 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, im Absoluten Oktavmodus. 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), gefolgt von halben Noten (2) mit Halbton- und Viertelton­schritten (ih eh), im Absoluten Oktavmodus.
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 getrennt durch \\ (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 u.a. entsprechend der JavaScript Zeichenklasse \s (≡ [ \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.