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.