next up previous contents
Next: Syntax und Semantik der Up: Die Sprache PPP Previous: Die Sprache PPP

Aufbau einer PPP-Datei

Das erste, was in einer PPP-Datei stehen muß, (von Kommentaren abgesehen) ist der Partiturkopf. Das letzte, was in einer PPP-Datei stehen muß, (von Kommentaren abgesehen) ist das reservierte Wort end. Dazwischen steht mindestens eine, gewöhnlich aber mehrere Parameterbeschreibungen.

Formal (in erweitertem Backus-Naur Formalismus:

Partitur ::= Partiturkopf Parameterbeschreibung{Parameterbeschreibung} end

Der Partiturkopf beginnt mit dem reservierten Wort score gefolgt von einem frei definierbaren Bezeichner, gefolgt von einer Zahl, die angibt, wieviel Ereignisse der Benutzer erzeugen lassen möchte, gefolgt von einem Semikolon. Es kann dann noch der Startwert für den Zufallsgenerator folgen.

Hierzu muß man wissen, das viele der Algorithmen im Endeffekt eine nach bestimmten Kriterien gesteuerte Zufallsauswahl darstellen, die auf einen Pseudozufallsgenerator zurückgreifen. Dessen Zufallssequenz ist immer gleich, aber entsprechend lang, bevor sie sich wiederholt. Durch die Angabe des Startwerts kann man nun die Position in dieser Sequenz bestimmen, an der der Zufallsgenerator beginnen soll; durch verändern des Startwertes kann man demnach verschiedene Ausgabevarianten ein und derselben Eingabedatei erzeugen.

Partiturkopf ::= score Bezeichner Zahl ; [ Startwert ]
Startwert ::= start Zahl

Jede Parameterbeschreibung besteht aus einer Parameterdeklaration und einem Parameterverlauf. In der Parameterdeklaration wird der Name des Parameters und sein Wertebereich, symbolisch wie numerisch, definiert. Der Parameterverlauf beschreibt die Algorithmen, nach denen dieser Parameter gestaltet werden soll. Jeder Algorithmus besteht aus einem Verfahren und einer Zahl, die Angibt, für wieviele Ereignisse dieses Verfahren angewendet werden soll.

Parameter ::= Parameterdeklaration Parameterverlauf
Parameterdeklaration ::= parameter Bezeichner = Werteliste
Werteliste ::= Wert {Wert}
Wert ::= Bezeichner [ Zahl]
Parameterverlauf ::= Algorithmus {Algorithmus}
Algorithmus ::= Verfahren : Zahl

Ein Wort zur Werteliste bzw. zu den Werten: Werte eines Parameters sind 2-tupel; sie bestehen aus einem symbolischen und einem numerischen Teil. Der numerische Teil kann bei der Eingabe weggelassen werden, er wird dann automatisch von PPP ergänzt. Ein solcher ergänzter numerischer Wert entspricht der Position in der Aufzählung.

Eine einfache (aber vollständige) Eingabedatei:

score Beispiel1 36;


parameter pitch =  c c_sharp d d_sharp e f f_sharp g g_sharp a a_sharp b

pattern  f f_sharp e g d_sharp g_sharp d a c_sharp a_sharp c b : 36

end

Diese Partitur trägt den Namen Beispiel1. Es sollen 36 Ereignisse erzeugt werden. Der einzige Parameter dieser Partitur heißt pitch und besteht aus den Wertepaaren (c 0) (c_sharp 1) (d 2) usw. Der Parameterverlauf besteht aus einem einzigen Algorithmus: Nach dem Verfahren pattern f f_sharp e g d_sharp g_sharp d a c_sharp a_sharp c sollen alle 36 Ereignisse gestaltet werden. Werden die Parameterwerte als Tonhöhen interpretiert (was die Namensgebung nahelegt) werden hier also 3 Kopien der angegebenen 12-tonreihe erzeugt.


next up previous contents
Next: Syntax und Semantik der Up: Die Sprache PPP Previous: Die Sprache PPP

Example user SuSE Linux 6.1
Tue Oct 19 23:39:11 MEST 1999