Kopieren,KOPIERT

ekmelib

Aktuelle Version: 3.2

Ekmelib ist eine Sammlung von Skripten (JavaScript und CSS), welche die Einbettung einfacher Musikinhalte in HTML Dokumenten (Webseiten) unterstützen. Es implementiert zwei Geräte zur Wiedergabe von Musikbeispielen: Player zur Audio-Wiedergabe und Notenanzeige (Score).

Schwerpunkte sind:

Mikrotonalität:
Ekmelib ist vor allem gedacht für mikrotonale Beispiele (Skalen, Intonations­übungen usw.) Es bietet Skripte für die temperierten Tonsysteme 72-EDO (Zwölfteltöne), 24-EDO (Vierteltöne), und 12-EDO (traditionell).
Textform:
Musikbeispiele sind als Tonfolgen in Textform gegeben. Diese können direkt in Dokumenten (in ekmaudio und ekmscore Elementen) oder in URIs angegeben, oder benutzerseitig in ein Texteingabefeld eingetippt werden (siehe das Editierfenster).
Einfachheit:
Die Skripte implementieren eine einfache Wiedergabe und Notensetzung, die in modernen Browsern funktionieren und keine speziellen Plugins, separate Audiodateien oder Streaming Audio benötigen. Die Wiedergabe basiert auf der Web Audio API1 und verwendet einen Kanal. Die Notensetzung verwendet die Ekmelos Schriftart.

Siehe auch folgende Seiten, welche ekmelib verwenden:

Aktivieren Sie bitte JavaScript in Ihrem Browser für den Player und die Notenanzeige.
Ihr Browser unterstützt leider keine Web Audio-Wiedergabe.

Download

Ordner
  • coreKern-Skripte, einschließlich JSDoc Dokumentation.
  • docsZusätzliche Dokumentation zu den Interna.
  • preVorgefertigte Skripte zum Einfügen in HTML Dokumente, minimiert mit JSMin; verfügbar in drei Versionen, jeweils in Deutsch und Englisch:

Siehe auch die Tabellen mit Versetzungen und Notennamen.

Player

Der Player enthält folgende Elemente:

  • - / + links außen zum Minimieren / Öffnen des Players.
  • Transporttasten für Abspielen, Stopp, Pause / Fortsetzen, Halten / Fortsetzen, Vorherige Marke, Nächste Marke, und Wiederholung (Schleife).
  • zum Öffnen / Schließen des Steuerfensters für die Audio-Einstellungen.
  • zum Öffnen / Schließen des Editierfensters für die Tonfolge.
  • zur Anzeige der Noten; siehe Player mit Notenanzeige. Dieser ist nur zusammen mit dem Skript für die Notenanzeige vorhanden.
  • Anzeige der verstrichenen Zeit und der Gesamtdauer. Der Balken zeigt auch die Dauer des gerade gespielten Tons an.

Das HTML ekmaudio Element

Zum Einbetten von Audio-Inhalten, d.h. eines Players in ein Dokument, muss ein HTML ekmaudio Element eingefügt werden. Dies kann jedes geeignete HTML Element sein mit der Klasse ekmaudio, z.B.:

<div class="ekmaudio" [ATTRIBUT ...] > FALLBACK_CONTENT </div>

Der Inhalt (FALLBACK_CONTENT) eines jeden ekmaudio Elements im Dokument wird durch den eigentlichen Player ersetzt und dieser mit den angegebenen Attributen initialisiert.

Attribute

Die ersten sechs Attribute – seq, relative, pitch, tempo, time, supplement – bilden gemeinsam die tatsächliche Tonfolge, d.h. der Wert des seq Attributs wird ergänzt durch vorangestellte Befehle entsprechend den anderen fünf Attributen.

Die nächsten vier Attribute – var, volume, detune, type – werden nur bei ihrem ersten Vorkommen in einem Dokument (in einem Player oder einer Notenanzeige) beachtet.

seq="TONFOLGE"
seq="?"

Die Tonfolge. Der Vorgabewert ist leer.

? liest die Tonfolge aus der Query-Komponente, d.h. aus ?… in der URI des Dokuments. Wenn sie nur aus einer einzelnen Variable besteht, wird diese automatisch geladen; z.B. http://meine.domain/seite.htm?%5cmelodie (mit dem URI-Escape %5c für \) ladet die Variable melodie.

relative="NOTE"
Der Oktavmodus. Die Voreinstellung ist der Absolute Oktavmodus. Siehe den relative Befehl.
pitch="FREQUENZ"
Der Kammerton / Grundton. Der Vorgabewert ist 440 Hz. Siehe den pitch Befehl.
tempo="NOTENWERT=RATE"
tempo="DAUER"
Das Tempo der Notenwerte. Der Vorgabewert ist "4=60". Siehe den tempo Befehl.
time="ZÄHLER/NENNER"
Die Taktart (Metrum). Die Voreinstellung ist kein Metrum (keine Taktstriche). Siehe den time Befehl.
supplement="NAME …"
Zusätzliche Daten für die Töne. Dies ist eine leerzeichen-separierten Liste von Namen.2 Jeder bezeichnet einen Satz von Daten, welche zu jedem Ton als Eigenschaften hinzugefügt werden. Siehe das caption Attribut für Eigenschaften und Methoden von Tönen. NAME ist einer von:
  • degreeDaten bezogen auf die jeweilige Tonstufe (Grad):
    • partialPartialtonnummer.
    • propNum, propDenomZähler und Nenner der (näherungsweisen) Proportion.

    Dies gilt für Töne, die als Note, Proportion oder Frequenz in der Tonfolge angegeben sind. Für eine Proportion oder Frequenz werden auch die note Daten (s.u.) hinzugefügt.

  • noteDaten der Note, welche dem jeweiligen Ton am nächsten ist:
    • nameNotenname.
    • scaleSkalen-Index 0 - 6 (normalerweise).
    • accVersetzungszeichen-Index 0 - 4 (12-EDO), 0 - 14 (24-EDO), 0 - 34 (72-EDO).
    • octaveOktav-Index 0 - 15.

    Dies gilt für Töne, die als Proportion oder Frequenz in der Tonfolge angegeben sind. Diese Daten werden automatisch hinzugefügt, wenn das Score-Skript im Dokument inkludiert ist.

var="PFAD"

Die Pfad-Komponente der URI zu online verfügbaren Variablen, d.h. zu einem Verzeichnis mit Variablen-Dateien sowie der speziellen Datei list.txt. Diese muss die Namen der online Variablen enthalten (nicht die Dateinamen und ohne führenden \) als leerzeichen-separierte Liste.2 Sie wird automatisch geladen, um die Auswahlliste im Editierfenster zu belegen.

Beachte: Der Ursprung der URI (d.h. Protokoll, Host, und Port) kann nicht angegeben werden, weil er derselbe wie der des Dokuments sein muss; z.B. wenn die aktuelle URI http://meine.domain/und/seite.htm ist, hat die Datei melodie.txt die URI http://meine.domain/PFAD/melodie.txt.

Wenn dieses Attribut nicht vorhanden ist oder wenn PFAD leer ist, können nur lokale Dateien geladen werden.

volume="PEGEL"
Der Lautstärkepegel (Gesamtlautstärke). Der Bereich von PEGEL bestimmt die Einheit:
  • 0.0 ≤ PEGEL ≤ 1.0 ist der tatsächliche Pegel (still bis lautest).
  • PEGEL > 1.0 ist ein Prozentwert, d.h. 100 entspricht 1.0.
  • PEGEL < 0.0 ist ein Decibel (dB) Wert.
Der Vorgabewert ist 0.5 = 50 % = − 6.0 dB.
detune="CENT"
Der Cent-Wert der Verstimmung. Der Vorgabewert ist 0.
type="OSZILLATOR"
Der Oszillatortyp (Wellenform). OSZILLATOR ist einer von:
  • sineSinus (Voreinstellung)
  • sawtoothSägezahn
  • squareRechteck
  • triangleDreieck
loop
Ein boolesches Attribut. Wenn vorhanden, kehrt der Player bei Erreichen des Endes der Tonfolge automatisch zurück an den Anfang.
autoplay
Ein boolesches Attribut. Wenn vorhanden, startet der Player automatisch. Nur das erste Vorkommen dieses Attributs in einem Dokument wird beachtet.
mini
Ein boolesches Attribut. Wenn vorhanden, wird der Player minimiert.
score="NOTEN_ID"
score="+"

Die ID eines ekmscore Elements, welches mit dem Player assoziiert wird. Siehe Player mit Notenanzeige.

Der Wert + erzeugt eine neue Notenanzeige unmittelbar nach dem ekmaudio Element.

Beispiel 1

Dieses Beispiel erzeugt einen Player für 72-EDO und deutsche Notennamen.3

Dazu müssen die folgenden Dateien in das Dokument eingefügt werden:

  • pre/css/ekmplayer.css
  • pre/js/ekmplayer-72-de.js
<div class="ekmaudio"
     seq="\gain=0.8 t4 t t t c4 r r8 er4. gir,2 fisir
          r4 heser2. r8 cel dir4.~ dir4 cel2 fih4 asil,2
          \\
          \gain=0.33 \=c'
          <fisil c' asel'>1~ q <gir cel esir>
          <heser dir fih>1*19/8 <heser dir fih>2.
          \\
          \gain=0.33 \=c,
          <er hesel''>1~ q <er desir''>
          <aser eir'>1*19/8 q2."
     relative="c''"
     tempo="4=80"
     volume="30"
     type="sawtooth"
     var="var"
>
Hier ist ein ekmelib Player
</div>

Resultat im Browser:

Hier ist ein ekmelib Player

Notenanzeige

Die Notenanzeige enthält folgende Elemente:

  • zum Öffnen / Schließen des Stilfensters für die Stil-Einstellungen.
  • zum Öffnen / Schließen des Steuerfensters für die Audio-Einstellungen. Sie werden beim Anspielen einer betätigten Note / Akkord verwendet.
  • zum Öffnen / Schließen des Editierfensters für die Tonfolge. Dieser ist nicht vorhanden, wenn die Notenanzeige mit einem Player assoziiert ist.
  • zur Anzeige der Noten, d.h. zur Anwendung der aktuellen Tonfolge. Dieser ist nicht vorhanden, wenn die Notenanzeige mit einem Player assoziiert ist.
  • Ein Notensystem für jede Stimme in der Tonfolge. Die Systeme können horizontal gescrollt werden, wenn sie nicht in das ekmscore Element passen, während die Notenschlüssel (die Notensystem-Präfixe) fixiert bleiben. Während der Wiedergabe des assoziierten Players wird automatisch gescrollt.
  • Eine Taktnummer über jedem vierten Taktstrich, ausgenommen die mit dem bar Befehl gesetzten Taktstriche.
  • Spezielle Rauten-Notenköpfe für Töne, die als Proportion oder Frequenz in der Tonfolge angegeben sind. Sie werden bei der nächstgelegenen Tonstufe gesetzt.
  • Anklickbare Noten / Akkorde, um diese einzeln anzuspielen. Eine weitere Betätigung während der Wiedergabe stoppt diese (nützlich vor allem bei Einstellung auf Dauerton im Stilfenster).
  • Eine optionale Beschriftung (z.B. Notenname) unter jeder Note / Akkord und ein zugehöriges Label unter dem Notenschlüssel.

Das HTML ekmscore Element

Zur Einbettung von Noteninhalten in ein Dokument muss ein HTML ekmscore Element eingefügt werden. Dies kann jedes geeignete HTML Element sein mit der Klasse ekmscore, z.B.:

<div class="ekmscore" [ATTRIBUT ...] > FALLBACK_CONTENT </div>

Der Inhalt (FALLBACK_CONTENT) eines jeden ekmscore Elements im Dokument wird durch die eigentliche Notenanzeige ersetzt und diese mit den angegebenen Attributen initialisiert.

Attribute

seq="TONFOLGE"
seq="?"
relative="NOTE"
pitch="FREQUENZ"
tempo="NOTENWERT=RATE"
tempo="DAUER"
time="ZÄHLER/NENNER"
supplement="NAME …"
var="PFAD"
volume="PEGEL"
detune="CENT"
type="OSZILLATOR"
Siehe diese Attribute im ekmaudio Element. Sie sind in einer Notenanzeige meist nicht notwendig, wenn diese mit einem Player assoziiert ist.
ledger="HILFSLINIEN"
Die maximale Anzahl Hilfslinien ober- und unterhalb. Dies vergrößert den Platz für jedes Notensystem. Für höhere / tiefere Notenpositionen wird eine Oktavierungs­klammer angezeigt. Der Vorgabewert ist 1.
spacing="ABSTAND"
Der Mindestabstand zwischen aufeinanderfolgenden Noten / Akkorden in Notensystem-Einheiten (halber Notenlinien-Abstand). Der tatsächliche Abstand kann größer sein. Der Vorgabewert ist 0, d.h. ein proportionaler Abstand.
clef="NOTENSCHLÜSSEL …"
Die Notenschlüssel. Dies ist eine leerzeichen-separierten Liste von Namen2 – einer für jedes Notensystem und der letzte gilt für alle weiteren Systeme. NOTENSCHLÜSSEL ist einer von:
  • trebleViolinschlüssel (G)
  • bassBassschlüssel (F)
  • altoAltschlüssel (C)
Der Vorgabewert ist "treble treble alto bass".
notation="NOTATIONSSTIL"
Der Notationsstil. Er bestimmt die verwendeten Versetzungs­zeichen. NOTATIONSSTIL ist einer von:
für 12-EDO:
  • stdStandardnotation (Voreinstellung)
  • sagSagittal Notation
für 24-EDO:
  • arrowPfeil-Notation (Voreinstellung)
  • sagSagittal Notation
  • goGould Notation
  • stzStein / Zimmermann Notation
  • stcStein / Couper Notation
  • stvtStein / Van Blankenburg / Tartini Notation
  • fourZiffer-4-Notation
  • fernFerneyhough Notation
für 72-EDO:
  • arrowPfeil-Notation (Voreinstellung)
  • rhmRichter Herf / Maedel Notation
  • simsSims Notation
  • sagSagittal Notation
  • msagGemischte Sagittal Notation
  • wysWyschnegradsky Notation
  • bosBosanquet Komma-Notation
accidental="VERSETZUNGSZEICHENSTIL"
Der Versetzungszeichenstil. Er bestimmt die Regeln der Notation von Versetzungs­zeichen.4 VERSETZUNGSZEICHENSTIL ist einer von:
  • forgetImmer (vergessend) (Voreinstellung).
  • traditional18. Jahrhundert Stil (ist "default" in LilyPond!).
  • modern20. Jahrhundert Stil mit extra Zeichen.
  • modern-cautionaryDito mit extra Zeichen in Klammern.
  • neo-modernZeitgenössischer Stil mit wiederholten extra Zeichen.
  • neo-modern-cautionaryDito mit extra Zeichen in Klammern.
  • dodecaphonicVersetzungs- oder Auflösungszeichen bei jeder Note.
duration="DAUER"
Die Wiedergabedauer einer betätigten Note / Akkord in Sekunden. 0 setzt einen Dauerton. Der Vorgabewert ist 1.
caption="LABEL|BESCHRIFTUNG|…"

Eine Beschriftung unter jeder Note / Akkord und ein zugehöriges Label unter dem Notenschlüssel. Dies ist eine Liste mit beliebig vielen Label-Beschriftungs-Angaben, separiert durch |. Jede Angabe wird als vorformatierter Text in einer eigenen Zeile angezeigt und vergrößert den Platz unter jedem Notensystem entsprechend. LABEL und BESCHRIFTUNG können beide leer sein.

BESCHRIFTUNG ist ein beliebiger JavaScript Code (Ausdruck oder Anweisung), der für jeden Ton (oder für den obersten Ton eines Akkords) bewertet und das Ergebnis angezeigt wird. Innerhalb des Codes kann mit dem Namen (Variable) t auf den jeweiligen Ton (eine Instanz von EkmTone) zugegriffen werden. Wenn der ganze Code nur aus Buchstaben besteht (a-z, A-Z, keine Leerzeichen), wird er als Ton-Eigenschaft betrachtet (z.B. name entspricht t.name).

Einige Ton-Eigenschaften und Methoden:

  • nameNotenname.
  • fFrequenz in Hz, oder ein Flag < 0 für Pause, Taktsignal, oder Befehl.
  • scaleSkalen-Index 0 - 6 (normalerweise).
  • accVersetzungszeichen-Index 0 - 4 (12-EDO), 0 - 14 (24-EDO), 0 - 34 (72-EDO).
  • octaveOktav-Index 0 - 15.
  • partialPartialtonnummer.
  • propNum, propDenomZähler und Nenner der (näherungsweisen) Proportion.
  • centExplizit angegebener Cent-Wert.
  • valueNotenwert-Index 0 - 6.
  • dotsAnzahl der Verlängerungspunkte.
  • voiceStimmen-Index 0 - 15.
  • durDauer in Sekunden.
  • lagZeitabstand.
  • tieTrue wenn der Ton zum nächsten Ton gebunden ist.
  • degree()Tonstufe (Grad) 0 - 71 (72-EDO).
  • proportion()Proportion relativ zum kleinen C.
  • fullScale()Gesamter Skalen-Index.
Siehe docs/terms.md und die Dokumentation von EkmTone in core/js/ekmdata.js für mehr Details.

Beispiel 2

Dieses Beispiel erzeugt eine Notenanzeige für 72-EDO und deutsche Notennamen.3

Dazu müssen die folgenden Dateien in das Dokument eingefügt werden:

  • pre/css/ekmscore-72.css
  • pre/js/ekmscore-72-de.js
  • und die Ekmelos Schriftart, entweder "Ekmelos 72-EDO" oder "Ekmelos", als WOFF2, WOFF, oder OTF, online in einem Verzeichnis fonts, z.B. http://meine.domain/fonts/Ekmelos72edo.woff2, oder lokal installiert.
<div class="ekmscore"
     seq="t4 t t t c4 r r8 er4. gir,2 fisir
          \time=19/8 r4 heser2. r8 cel dir4.~ dir4 cel2
          \time=3/4 fih4 asil,2
          \\
          \=c' <fisil c' asel'>1~ q <gir cel esir>
          <heser dir fih>1*19/8 <heser dir fih>2.
          \\
          \=c, <er hesel''>1~ q <er desir''>
          <aser eir'>1*19/8 q2."
     relative="c''"
     time="4/4"
     clef="treble treble bass"
     notation="rhm"
     accidental="modern"
>
Hier ist eine ekmelib Notenanzeige
</div>

Resultat im Browser:

Hier ist eine ekmelib Notenanzeige

Player mit Notenanzeige

Ein Player kann mit einer Notenanzeige assoziiert sein zur Notensetzung seiner aktuellen Tonfolge.

Dies wird erreicht

  1. entweder mit dem Attribut score="NOTEN_ID" im ekmaudio Element, wobei NOTEN_ID die ID eines existierenden ekmscore Elements irgendwo im Dokument sein muss;
  2. oder mit dem Attribut score="+" im ekmaudio Element;
  3. oder durch Betätigung von im Player, wenn dieser noch nicht mit einer Notenanzeige assoziiert ist.

B und C erzeugen eine neue Notenanzeige, d.h. ein neues ekmscore Element unmittelbar nach dem ekmaudio Element und übergeben die folgenden Attribute vom ekmaudio Element an die Notenanzeige:

  • ledger
  • spacing
  • clef
  • notation
  • accidental
  • duration
  • caption

Ein Player kann nur eine assoziierte Notenanzeige haben. Eine Notenanzeige kann hingegen mit beliebig vielen Playern im selben Dokument assoziiert sein. Sie zeigt immer die Tonfolge jenes assoziierten Players, für welchen zuletzt oder betätigt wurde.

Beispiel 3

Dieses Beispiel erzeugt einen Player und eine Notenanzeige, die durch die ID "show" assoziiert sind. Hier befindet sich das ekmscore Element nach dem ekmaudio Element mit einem Text dazwischen, aber es kann überall im Dokument stehen.3

Dazu müssen die folgenden Dateien in das Dokument eingefügt werden:

  • pre/css/ekmcomb-72.css
  • pre/js/ekmcomb-72-de.js
  • und die Ekmelos Schriftart, entweder "Ekmelos 72-EDO" oder "Ekmelos", als WOFF2, WOFF, oder OTF, online in einem Verzeichnis fonts, z.B. http://meine.domain/fonts/Ekmelos72edo.woff2, oder lokal installiert.
<div class="ekmaudio"
     seq="\gain=0.8 t4 t t t c4 r r8 er4. gir,2 fisir
          \time=19/8 r4 heser2. r8 cel dir4.~ dir4 cel2
          \time=3/4 fih4 asil,2
          \\
          \gain=0.33 \=c'
          <fisil c' asel'>1~ q <gir cel esir>
          <heser dir fih>1*19/8 <heser dir fih>2.
          \\
          \gain=0.33 \=c,
          <er hesel''>1~ q <er desir''>
          <aser eir'>1*19/8 q2."
     relative="c''"
     tempo="4=80"
     time="4/4"
     volume="30"
     type="sawtooth"
     var="var"
     score="show"
>
Hier ist ein ekmelib Player
</div>
Betätigen Sie zum Anspielen eine Note oder einen Akkord:
<div class="ekmscore"
     id="show"
     clef="treble treble bass"
     notation="rhm"
     accidental="modern"
>
Hier ist eine ekmelib Notenanzeige
</div>

Resultat im Browser:

Hier ist ein ekmelib Player
Betätigen Sie zum Anspielen eine Note oder einen Akkord:
Hier ist eine ekmelib Notenanzeige

Beispiel 4

Dieses Beispiel erzeugt einen Player und automatisch eine assoziierte Notenanzeige mit Hilfe des speziellen Attributwerts score="+". Die Tonfolge ist eine längere Version der obigen Beispiele.3

Dazu müssen dieselben Dateien wie in Beispiel 3 in das Dokument eingefügt werden:

  • pre/css/ekmcomb-72.css
  • pre/js/ekmcomb-72-de.js
  • und die Ekmelos Schriftart, entweder "Ekmelos 72-EDO" oder "Ekmelos", als WOFF2, WOFF, oder OTF, online in einem Verzeichnis fonts, z.B. http://meine.domain/fonts/Ekmelos72edo.woff2, oder lokal installiert.
<div class="ekmaudio"
     seq="\gain=0.8 t4 t t t  c4 r r8 er4.  gir,2 fisir
          \time=19/8 r4 heser2. r8 cel dir4.~ dir4 cel2
          \time=3/4  fih4 asil,2
          \time=29/8 r4 deseh2 r4 eser2 eir8 deseh4. aser8 r
                     r4 aser8 heser4 cel2 her4
          \time=6/4  r4 eser,2 r4 desil2
                     gir4 r r2 fisir4 r8 cel'8
          \time=4/4  d4 asel'2.
          \time=6/4  r2 heser,4. cel dir8 cel
          \time=3/4  fih4 asil, heser8 cel
                     r4 eir,8 fih eir ger
          \time=6/4  r4 deseh'2 r8 eser2 eir8
                     deseh4 aser r heser r r8 cel
                     her4 eser,2 r4 desil4 r8. desil16
          \time=4/4  ces1
          \\
          \gain=0.33 \=c'
          <fisil c' asel'>1~ q <gir cel esir>
          <heser dir fih>1*19/8
          <heser dir fih>4 asil'8 fih asil fih
          <aser, deseh eir>1*29/8
          R1.
          <gir cel esir>1.
          <fisil c' asel'>1
          <heser dir fih>1*6/4
          <eir, heser' dir fih>8 <ger cil>
            <eir heser' asil'> <ger cil fih>
            <eir heser' fih'> <ger cil>
          <eir heser' asil'>4 <eir heser' fih'>2
          <aser deseh eir>1*6/4~ q~ q
          <ces, fil heser>4 fil heser2
          \\
          \gain=0.33 \=c,
          <er hesel''>1~ q <er desir''>
          <aser eir'>1*19/8
          q2.
          <eser desil''>1*29/8
          eser1.
          <er desir''>1.
          <er hesel''>1
          <aser eir'>1*6/4
          <aser dir'>2.~ q
          <eser desil''>1*6/4~ q~ q
          R1"
     relative="c''"
     tempo="4=80"
     time="4/4"
     volume="30"
     type="sawtooth"
     var="var"
     clef="treble treble bass"
     notation="rhm"
     accidental="modern"
     score="+"
>
Hier ist ein ekmelib Player mit Notenanzeige
</div>

Resultat im Browser:

Hier ist ein ekmelib Player mit Notenanzeige

Fenstertypen

Diese Fenster dienen der Eingabe / Auswahl von Parametern für Player und/oder Notenanzeige. Ein Fenster eines Typs wird von allen Geräten im Dokument gemeinsam genutzt, d.h. es kann nur für ein Gerät gleichzeitig geöffnet sein.

Editierfenster

Fenster zur Eingabe von Tonfolgen und zur Verwaltung von Variablen. Es enthält folgende Elemente:

  • zum Laden einer Variable aus einer lokalen Datei. Dies ist auch möglich durch Ziehen und Ablegen in das Texteingabefeld. Die Variable wird in die Tonfolge mit \ eingefügt.
  • zum Speichern der Tonfolge aus dem Texteingabefeld in eine lokale Datei (zur Verwendung als Variable).
  • zum Erweitern aller geladenen Variablen in der Tonfolge.
  • Eine Auswahlliste mit allen geladenen und optional allen online verfügbaren Variablen. Eine ausgewählte Variable wird mit \ in die Tonfolge eingefügt. Diese Liste wird von allen Geräten im selben Dokument gemeinsam genutzt.
  • Eine Auswahlliste mit den Fehlermeldungen für die Tonfolge oder “-- OK --”. Bei Auswahl einer Meldung springt der Cursor im Texteingabefeld zu jener Stelle, an der der Fehler aufgetreten ist.
  • zum Öffnen der Seite Syntax von Tonfolgen in einem eigenen Browser-Fenster (oder Tab).
  • zum Schließen des Fensters.
  • Ein Texteingabefeld für die Tonfolge. Änderungen im Text haben keine unmittelbare Auswirkung. Die Tonfolge wird erst bei Betätigen von oder angewandt. Wenn sie Fehler enthält, wird das Editierfenster für das betreffende Gerät geöffnet, mit den Fehlermeldungen in der Auswahlliste.

Steuerfenster

Fenster für die Audio-Einstellungen. Diese werden von allen Geräten im Dokument gemeinsam genutzt.

  • Lautstärke (Gesamtlautstärke): Die Anzeige des Lautstärkepegels ist zugleich ein Umschalter zwischen Prozent (%) und Dezibel (dB).
  • Verstimmung: Die Anzeige des Cent-Werts ist zugleich ein Schalter zum Rücksetzen des Werts auf Null.
  • Oszillatortyp (Wellenform): Sinus Sägezahn Rechteck Dreieck

Stilfenster

Fenster für die Stil-Einstellungen einer Notenanzeige. Diese gelten für alle Notensysteme, außer dem Notenschlüssel.

  • Notenschlüssel: Siehe das clef Attribut im ekmscore Element. Bei mehreren Notensystemen, d.h. bei einer Tonfolge mit mehreren Stimmen erscheint neben der Auswahlliste ein Umschalter des Systems, für welches der Schlüssel ausgewählt werden soll.
  • Notationsstil: Siehe das notation Attribut im ekmscore Element.
  • Versetzungszeichenstil:4 Siehe das accidental Attribut im ekmscore Element.
  • Wiedergabedauer einer betätigten Note / Akkord: 1 bis 4 Sekunden oder Dauerton. Siehe das duration Attribut im ekmscore Element.

Autor / Lizenz

Geschrieben von Thomas Richter, thomas-richteraonat

Copyright © 2016-2021 Thomas Richter

Ekmelib ist lizensiert unter der GNU General Public License, Version 3 oder höher.
Siehe die Datei LICENSE.txt. Diese Lizenz ist auch unter www.gnu.org/licenses verfügbar.

  1. Die Web Audio API ist eine high-level Web (JavaScript) API zur Audio Verarbeitung und Erzeugung in web Anwendungen. Siehe die W3C Spezifikation bei www.w3.org/TR/webaudio.
  2. abcIn einer leerzeichen-separierten Liste kann jedes Unicode White-space Zeichen als Separator verwendet werden: 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]). Jedoch laut HTML 5 sind in einem “set of space-separated tokens” eines Attributs nur Space, Tab, Line Feed (LF), Form Feed (FF), und Carriage Return (CR) erlaubt.
  3. abcdDie Tonfolge ist eine adaptierte Version der Intonationsübung für Sopran zu “Welle der Nacht”, op. 2 von Franz Richter Herf. Die Noten mit allen Übungen sind als Download verfügbar. Sie enthalten Links zum Ekmelik-Player mit jeweils einer Tonfolge.
  4. abDer Begriff des Versetzungszeichenstils und die Namen wurden von LilyPond übernommen, außer "default", weil "immer (vergessend)" geeigneter ist für die typische Verwendung von ekmelib mit mikrotonalen Skalen und Intonations­übungen.