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:
- 12-EDO (traditionell)
- 24-EDO (Vierteltöne)
- 72-EDO (Zwölfteltöne, Ekmelisches System)
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
/
NENNEREine 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/
NENNEREine 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
FREQUENZ
hz
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
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 darauffolgendec,
). 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
DAUER
s
Eine absolute Dauer in Sekunden. Sie darf Nachkommastellen haben. Die Groß / Kleinschreibung von
s
wird ignoriert.- Skalierung
*
ZÄHLER/
NENNER*
ZÄHLEREin 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
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: | |
---|---|
\v | Vierteltöne |
\s | Sechsteltöne |
\z | Zwölfteltöne |
\w | Ekmelische Töne in wechselnder Folge |
Welle der Nacht: | |
\welle-der-nacht-h | Harfenstimmung |
\welle-der-nacht-o1 | Tonleiter für 1. Oboe |
\welle-der-nacht-o2 | Tonleiter 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-t | Tonleiter |
\ekmelischer-gesang-t2 | Tonleiter aufwärts |
\ekmelischer-gesang-q | Quarten |
\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: | |
\a | a'20s r8s |
\intro | a'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 Taktsignalt
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 Taktsignalt
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
- 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 Vierteltonschritten (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).
Autor
- ↑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]
). - ↑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.