ekmelib

Download ekmelib 2.8

Hinweis: Dies ist eine gekürzte Fassung. Siehe die englische Dokumentation für eine genaue Beschreibung der Element-Attribute und für Beispiele.

Ekmelib ist eine Sammlung von Skripten (JavaScript und CSS), welche die Einbettung einfacher Audio- und Noteninhalte in HTML Dokumente (Webseiten) unterstützen. Schwerpunkte sind:

  • Mikrotonalität:
    Ekmelib ist vor allem gedacht für mikrotonale Beispiele (Skalen, Intonations­übungen usw.), insbesondere im Ekmelischen, d.h. im 72-stufigen temperierten Tonsystem (72-EDO).
  • Textform:
    Musikbeispiele sind als Tonfolgen in Textform gegeben. Diese können direkt in Dokumenten (in ekmaudio und ekmscore Elementen) oder in URIs angegeben werden, ohne separate Audiodateien oder Streaming Audio. Benutzereigene Tonfolgen können einfach über ein Textfeld in einem Dokument eingegeben werden, wie z.B. im Player.
  • Einfachheit:
    Die Skripte implementieren eine einfache Wiedergabe und Notenanzeige, die in modernen Browsern ohne spezielle Plugins funktioniert. Die Wiedergabe basiert auf der Web Audio API und verwendet einen Kanal. Die Notenanzeige verwendet die Ekmelos Schriftart.

Ekmelib enthält vorgefertigte Skripte für die üblichen Anwendungsfälle – nur Player, nur Notenanzeige, oder beide kombiniert – jeweils in Englisch und Deutsch. Sie befinden sich im Verzeichnis pre des ekmelib-Pakets und sind mit JSMin minimiert (für schnellen Download). Daneben können andere Wiedergabe- und Notensatz-Engines implementiert werden, z.B. für ein anderes Tonsystem oder andere Notennamen, unter Verwendung der Skripte im Verzeichnis dev.

Siehe auch die Seiten Hörbeispiele von Tonfolgen, Stimmungen einiger Werke, Einführung und Ekmelische Reihen, welche ekmelib verwenden, sowie den separaten Ekmelik-Player (ist jetzt Teil von ekmelib).

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

Player

Der Player enthält folgende Elemente:

  • Ein Schalter - / + links außen zum Minimieren / Öffnen des Players. Im minimierten Player ist nur die "Abspielen" oder "Stopp" Taste sichtbar.
  • Transporttasten für "Abspielen", "Stopp", "Pause / Fortsetzen", "Halten / Fortsetzen", "Vorherige Markierung", "Nächste Markierung", und "Wiederholung (Schleife)".
  • Ein Schalter zum Ein / Ausblenden der Audio-Parameter:
    • Lautstä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.
    Die Audio-Parameter werden von allen Playern und Notenanzeigen (zum Anspielen einzelner Noten) im selben Dokument gemeinsam verwendet.
  • Ein Schalter + zum Erweitern aller Variablen in der Tonfolge.
  • Ein Schalter V zum Ein / Ausblenden der Liste der Variablen. Sie enthält alle geladenen und optional alle online verfügbaren Variablen, sowie zwei spezielle Listenpunkte:
    • Laden einer Variable aus einer lokalen Datei. Dies ist auch durch Ziehen und Ablegen in die Liste möglich.
    • Speichern der aktuellen Tonfolge aus dem Textfeld in eine lokale Datei.
    Eine ausgewählte Variable wird mit \ in die Tonfolge eingefügt.
    Diese Liste wird von allen Playern im selben Dokument gemeinsam verwendet.
  • Ein Schalter F zum Ein / Ausblenden der Fehlermeldungen. Durch Auswahl einer Meldung wird im Textfeld zu jener Stelle (Note) gesprungen, an welcher der Fehler aufgetreten ist.
  • Ein Schalter zur Anzeige der Noten. Siehe Player mit Notenanzeige. Dieser isr nur verfügbar, wenn das Notenanzeige-Skript im Dokument inkludiert ist.
  • Ein Schalter ? zum Öffnen der Seite Syntax von Tonfolgen in einem eigenen Browser-Fenster.
  • Eine Anzeige der verstrichenen Zeit in Schritten der gespielten Töne, numerisch und als Balken, und eine Anzeige der Gesamtdauer.
  • Ein Textfeld zur Eingabe der Tonfolge.
    Beachten Sie, dass Änderungen des Textes während der Wiedergabe keine Auswirkung haben. Sie werden erst bei der nächsten Wiedergabe berücksichtigt.

HTML ekmaudio Element

Zur Einbettung 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, unter Verwendung der folgenden Attribute im jeweiligen ekmaudio Element, um den Player zu initialisieren.

Die ersten sechs Attribute – seq, relative, pitch, tempo, time, und supplement – werden sowohl vom Player als auch von der Notenanzeige verwendet. Sie bilden gemeinsam die tatsächliche Tonfolge (im Textfeld des Players), d.h. der Wert des seq Attributs wird ergänzt durch vorangestellte Befehle entsprechend den anderen fünf Attributen.

Siehe die englische Dokumentation zum ekmaudio Element für eine genaue Beschreibung der Attribute.

seq="TONFOLGE"
seq="?"
Tonfolge für das Textfeld.
relative="NOTE"
Oktavmodus. Siehe den relative Befehl.
pitch="FREQUENZ"
Kammerton / Grundton. Siehe den pitch Befehl.
tempo="NOTENWERT=RATE"
tempo="DAUER"
Tempo der Notenwerte. Siehe den tempo Befehl.
time="ZÄHLER/NENNER"
Taktart (Metrum). Siehe den time Befehl.
supplement="NAME …"
Zusätzliche Daten.
volume="PEGEL"
Lautstärkepegel (Gesamtlautstärke).
detune="CENTWERT"
Verstimmung.
type="OSZILLATOR"
Oszillatortyp (Wellenform).
loop
Wiederholung (Schleife). Boolesches Attribut.
autoplay
Automatische Wiedergabe. Boolesches Attribut.
mini
Minimierter Player. Boolesches Attribut.
var="PFAD"
Pfad-Komponente der URI zu online verfügbaren Variablen.
score="NOTEN_ID"
score="+"
ID des assoziierten ekmscore Elements. Siehe Player mit Notenanzeige.

Notenanzeige

Die Notenanzeige enthält folgende Elemente:

  • Eine Notenzeile für jede Stimme in der Tonfolge. Die Notenzeilen können horizontal gescrollt werden, wenn sie nicht in das ekmscore Element passen, während die Notenschlüssel (d.h. die Notenzeilen-Präfixe) fixiert bleiben. Während der Wiedergabe des assoziierten Players wird automatisch gescrollt.
    Bei jedem vierten Taktstrich wird die Taktnummer angezeigt, ausgenommen die mit dem bar Befehl gesetzten Taktstriche.
  • Ein Schalter zum Ein / Ausblenden der Stil-Parameter:
    • Notenschlüssel: Violin-, Bass-, Altschlüssel.
    • Notationsstil: Hängt vom Tonsystem ab; z.B. für 72-EDO: Pfeil-, Richter Herf / Maedel-, Sims-, Sagittal-, Wyschnegradsky-Notation u.a..
    • Versetzungszeichenstil: Bestimmt die Regeln der Notation von Versetzungs­zeichen: immer (vergessend), traditionell, modern, neo-modern, dodekafonisch u.a.. 1
    • Wiedergabedauer einer angeklickten Note / Akkord: 1 bis 4 Sekunden oder Dauerton.
    Die Stil-Parameter gelten für alle Notenzeilen, außer der Notenschlüssel.
  • 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).
  • Töne die als Frequenz oder Proportion in der Tonfolge angegeben sind, werden durch spezielle Notenköpfe für die nächstgelegene Tonstufe dargestellt.
  • Eine optionale Beschriftung (z.B. Notenname) unter jeder Note / Akkord, und ein zugehöriges Label unter jedem Notenschlüssel.

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, unter Verwendung der folgenden Attribute im jeweiligen ekmscore Element, um die Notenanzeige zu initialisieren.

Die ersten sechs Attribute – seq, relative, pitch, tempo, time, und supplement – werden sowohl von der Notenanzeige als auch vom Player verwendet. Sie sind in der Notenanzeige meist nicht notwendig, wenn diese mit einem Player assoziiert ist.

Siehe die englische Dokumentation zum ekmscore Element für eine genaue Beschreibung der Attribute.

seq="TONFOLGE"
seq="?"
Die anzuzeigende Tonfolge.
relative="NOTE"
Oktavmodus. Siehe den relative Befehl.
pitch="FREQUENZ"
Kammerton / Grundton. Siehe den pitch Befehl.
tempo="NOTENWERT=RATE"
tempo="DAUER"
Tempo der Notenwerte. Siehe den tempo Befehl.
time="ZÄHLER/NENNER"
Taktart (Metrum). Siehe den time Befehl.
supplement="NAME …"
Zusätzliche Daten.
ledger="HILFSLINIEN"
Maximale Anzahl Hilfslinien.
spacing="ABSTAND"
Mindestabstand zwischen Noten / Akkorden.
clef="NOTENSCHLÜSSEL …"
Notenschlüssel.
notation="NOTATION"
Notationsstil.
accidental="VERSETZUNGSZEICHEN"
Versetzungszeichenstil.1
duration="DAUER"
Wiedergabedauer einer angeklickten Note / Akkord.
caption="LABEL|BESCHRIFTUNG|…"
Label und Beschriftung.

Player mit Notenanzeige

Ein Player kann mit einer Notenanzeige assoziiert sein zur Anzeige 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 des Schalters 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 an das ekmscore Element:

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

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

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