ntcell.jpg
die Container werden also im Bild links mit folgenden Kriterien versehen:
V?: [0...1]
gibt an ob der Container für jede Voice einzeln angezeigt und im SVA gespeichert wird (true) , oder ob es sich um einen Mastercontainer handelt der auf alle Voices gleichermaßen Einfluss nimmt (false). Bei einem normal polyphonen Synth wär hier das meisste false. Bei meinem 6fach multitimbralen Monosynth ist das meisste true, also für jede Voice individuell einstellbar und nur die monophonen Bereiche (globale Modulatoren, Post-mixer Bereich und Effektwege) false. Die Indexierung des SVAs wird im Analysevorgang der Initialisierung (siehe später) automatisch errechnet.
n:
region. Nummer der mouse area unter der sich der Container befindet.
ftp:
Adresse des Containerfunktionstypen. Im Beispiel haben die 3 container "Module 1-3" den gleichen Funtionstypen (2:module) ein Multifunktionscontainer welcher Osc, Sampler oder Input sein kann
_X/_Y: [1...1024]
größe des Conatainers in Pixel
i#:
Anzahl der Ausführungseinheiten. Hier kann man angeben wie oft dieser Container angezeigt wird. (Noch) nicht implementiert auf Containerebene aus verschiedenen Praktikabilitätsgründen

allerdings funktioniert das wunderbar auf Cellenebene (siehe später)
X+/Y- [0...1023]
Abstand zum Nachbar definiert durch ->X/->Y
->X/->Y [0...1023]
hier kann man den Container an den Nachbarn "anschließen" ->X: rechts daneben. ->Y drunter
[st]: Setup array
[nt]: Container-koordinaten zwischenspeicher der in den Containerzellen die Dimensionen des containers speichert (Macro [nt] rechts unten) um sie den Cellen (eine Ebene drunter) zur Verfügung zu stellen.
Wie schon angesprochen muss hier der Speicher seriell erfolgen damit den Cellen (im Setuparray flussabwärts) zur Initialisierung den Wert haben.
nun zum Datensatz des Containers:
ntcelltable.jpg
noch nicht erwähnt sind hier:
[]+:
Size of dataset. dies steuert den Increment der Containerebene der genesteten Iteration

Darf nicht null sein. Dadurch wird sichergestellet, dass der Wert der Iteration gleich der Basisindex des Datensatzes ist.
View:
hier kann man für 24 mögliche "Views" angeben ob der Container angezeigt wird oder nicht.
Die nächsten paar Einträge haben mit den Koordinaten und dem Verhalten bei "vermehrung" des Contaners zu tun. Da es wie gesagt auf Containerebene nicht Implementiert ist beschreib ich das erst auf Zellenebene.
lbl/sym/col 0-3: index 9-20 im Datensatz
Label-, Symbol- und Farbadressen des Containers. Entspricht dem länglichen Macro in der mitte oben. der eintrag fwd? bezieht sich auch auf die "vermehrung" und gibt an ob der Index pro Ausführungeinheit um eins erhöht wird oder nicht. so kann entweder jede Ausführungeinheit die gleichen Namen, Farben und Symbole (false) oder jeweils fortlaufende Namen, Farben und Symbole (true) lesen. Hier wird also nicht direkt eine Eigenschaft spezifiziert, sondern auf eine Zentrale Sammlung von Eigenschaften hingewiesen. so kann ich im Zentralen Farbspeicher leicht die Farbe von vielen verschiedenen Containern und Cellen bestimmen. Was bei Auswahl von Standartfarben zB praktisch ist.
ab index 21 kommt der "body" der mit "subcellen" siehe bild macro "grad X/Y" gefüllt wird. Von solchen Macros kann man beliebig viele einfügen. Durch die fortlaufende Indexierung über []+ wird sichergestellt, dass alles gut wird.
pro Container haben wir nun im Beispiel eine Subcelle. Sie beschreibt den Balken am Kopf der Container.
modules.jpg
So eine Subcelle stellt den Verweis auf eine Subroutine mit charakteristischem Datensatz dar. In diesem Fall eine Subroutine die nur auf displayebene eine Rolle spielt und sehr einfach ist. Es können zwei Farben und alphawerte beschrieben werden.
weiterhin:
Layer n+:
Id des Multidisplays. Pro region (mouse area) stehen bis zu 16 layer zur Verfügung. Das system hätte zwar kein Problem damit alles auf einem Multidisplay darzustellen, will man jedoch verschiedene Zeichensätze der Multidisplays ansprechen, so müssen mehrere Layer verwendet werden. Im Beispiel sind es 4 verschiedene Zeichensätze.
- Knob big
- Knob small
- fonts
- symbols
die beiden oberen einträge beschreiben den Stil der Gradiation und die Richtung.
s=0.1
gradiation erfolgt von Farbe/Alpha 0 zu 1
s=0.1.0
gradiation erfolgt von Farbe/Alpha 0 zu 1 zu 0
auswirkung siehe Display screenshot.
jetzt sind eigentlich schon recht viele Aspekte und Möglichkeiten angesprochen worden. Demnächst werd ich dann noch ein paar andere Subcellen beschreiben sowie deren Header (dieser steuert die komplette funktionalität des systems). Aber dann auf den Initialisierungsvorgang und das Koordinatensystem eingehen.
prost!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.