Der EsAC,
der Essener Assoziativ Code

In den 1980ern entwickelte Prof. Dr. Helmut Schaffrath an der Universität/Gesamthochschule Essen (UGE) den EsAC, den Essener Assoziativ Code. Der EsAC ist eine Methode zur Erfassung einstimmiger Melodien. Im EsAC liegen mehrere tausend Lieder und Melodien vor. Zum EsAC gibt es aber auch eine Vielzahl von Programmen zur Verwaltung, Verarbeitung, Analyse, Repräsentation und Übersetzung der Daten. Die meisten dieser Programme sind für das Betriebssystem MS-DOS mit Turbo-Pascal geschrieben worden, einige liegen in Java vor.

Als neues Projekt (seit Januar 2019, aktuelle Änderungen sind hier zu finden) sollen diese alten Algorithmen nun als JavaScript zur Verfügung gestellt werden. Dadurch können sie unabhängig vom Betriebssystem in den meisten und gängigen Browsern benutzt und ausgeführt werden. Diese Seite erklärt, wie die JavaScript-Algorithmen verwendet werden können.

Musiknoten in html-Seiten anzeigen und diese Noten auch noch ausdrucken zu können, das ist etwas sehr Wertvolles:



Auf dieser Internet-Seite wird gezeigt, wie schnell und einfach die graphische Notenrepräsentation mit dem EsAC möglich ist und welch mächtiges Werkzeug der EsAC darstellt.

Ein kostenfreier Download der aktuellen JavaScript-Datei EsAC.js (im Moment in der Version vom ) und die damit verbundene Ablage auf dem eigenen Server ist möglich und gewünscht, sofern diese (gerade angezeigte) html-Seite und der Autor referenziert werden. Eine Benutzung der EsAC-Algorithmen auf den eigenen Seiten ist unter gleichen Bedingungen genauso erlaubt. Eine Veränderung des Codes bedarf der Zustimmung des Autors, zu einer Verbesserung wird er diese natürlich sofort geben, allerdings sollen Änderungen immer zentral verwaltet werden!

Zum Aufbau des EsAC gibt es eine alte und sehr kurze Seite, die demnächst mal neu geschrieben werden muss.

Anleitung

Um die Algorithmen nutzen zu können, müssen diese zuerst in die html-Seite geladen und ein Canvas zur Verfügung gestellt werden:
<script src="http://jmp100.franzke-bochum.de/EsAC/EsAC.js" charset="UTF-8"></script>
<center>
  <canvas id="tlcanvas"></canvas>
</center>
In der Datei EsAC.js werden alle für die EsAC-Verarbeitung relevanten Dateien und Algorithmen zusammen getragen. Es gibt die Möglichkeit abzufragen, welche Dateiversion verwendet wird und wann die letzten Änderungen stattgefunden haben mit den Script-Aufrufen von: getEsACVersion() und getEsACDate().
Nachdem die Algorithmen geladen worden sind, kann die EsAC-Melodie definiert werden, in diesem Beispiel soll es eine einfache C-Dur Tonleiter sein:
<script>
  var tlt;
  tlt="CUT[Tonleiter]\n"
     +"KEY[T0001  04  C 4/4]\n"
     +"MEL[1234  567+1 //]\n";
</script>
Die Tonleiter wird als EsAC-Melodie mit den Paragraphen CUT[ für den Titel, KEY[ für die Signatur, die kleinste metrische Einheit (hier 04 für eine Viertelnote), die Tonart und die Taktangabe und dem Paragraphen MEL[ für die eigentliche Melodie geschrieben. Danach kommt das eigentliche Script, das eine Instanz von EsACgraph erzeugt, darin die Melodie setzt und bestimmt, in welchem Canvas die Ausgabe erfolgen soll. Weiterhin wird hier gesagt, welche Breite und Hintergrundfarbe die Notenrepräsentation habe soll. Mit dem Aufruf es.graphIt(); wird dann die eigentliche Ausgabe erzeugt.
<script>
  var es = new EsACgraph();
  es.setMel(tlt);
  es.setCanvasID("tlcanvas");
  es.setBackgroundColor('#f0f0f0');
  es.setWidth(350);
  es.graphIt();
</script>
Als Ergebnis erscheint in der html-Seite auf dem Bildschirm die graphische Darstellung der C-Dur Tonleiter:

Der gesamte Aufbau einer html-Seite, die nur eine Tonleiter ausgibt, kann dann so aussehen (probieren Sie es doch einfach mal aus, kopieren Sie das Nachfolgende in einer Datei auf Ihren Web-Server):
<html>
  <head>
    <title >
      EsAC-Demoseite
    </title>
  </head>
  <body>
    <script src="http://jmp100.franzke-bochum.de/EsAC/EsAC.js" charset="UTF-8"></script>
    <center>
      <canvas id="tlcanvas"></canvas>
    </center>
    <script>
      var tlt;
      tlt="CUT[Tonleiter]\n"
         +"KEY[T0001  04  C 4/4]\n"
         +"MEL[1234  567+1 //]\n";
      var es = new EsACgraph();
      es.setMel(tlt);
      es.setCanvasID("tlcanvas");
      es.setBackgroundColor('#f0f0f0');
      es.setWidth(350);
      es.graphIt();
    </script>
  </body>
</html>


Weiteres Beispiel

Für das Notenbeispiel des Liedes „Ich hab die Nacht geträmet“ ganz oben auf dieser Seite wurde folgende EsAC-Codierung und folgender JavaScript-Code verwendet:
<script src="http://jmp100.franzke-bochum.de/EsAC/EsAC.js" charset="UTF-8"></script>
<center>
  <canvas id="nt1"></canvas>
</center>
<script>
  var mel;
  mel="CUT[Ich hab die Nacht geträumet]\n"
     +"KEY[G0249  16  E 6/8]\n"
     +"MEL[-5_  1__2_{3b_.2}1_  5__.2__\n"
     +"    4_  {3b_.2}1_-7__1_  2__.0__\n"
     +"    -5_  5__5_{3b_.2}1_  +1__.6b__\n"
     +"    4_  {3b_.2}1_{2_.1}-7_  1__.0__ //]\n"
     +"TXT[Ich {1m}hab' die Nacht  ge- {5}träu- met,\n"
     +"    wohl {1m}ei - nen {5}schwe- {1m}ren {5}Traum.\n"
     +"    Es {1m}stand in ei - nem {4m}Gar- ten,\n"
     +"    ein {1m}Ros - ma- {5}rie - nen- {1m}baum. ]\n";
  var esac1 = new EsACgraph();
  esac1.setMel(mel);
  esac1.setCanvasID("nt1");
  esac1.setBackgroundColor('#f0f0f0');
  esac1.setWidth(550);
  esac1.transpose("G");
  esac1.graphIt();
</script>
Ansprechpartner:
Wenn Sie sich am EsAC-Projekt beteiligen wollen, wenn Sie schon eigene Melodiedateien erstellt haben oder an Melodiedateien arbeiten wollen, wenn Sie Programmverbesserungen oder sonst einen Wunsch haben oder Ihre Hilfe zur Verfügung stellen wollen, wenden Sie sich bitte an Dr. Ewa Dahlig-Turek, die seit 1992 im EsAC-Projekt arbeitet oder an den Autoren des EsAC.js, an Ulrich Franzke.


Zur Hauptseite
Zurück zur vorigen Seite

e-mail:

Ulrich Franzke <sinus@ulrich-franzke.de>