Subcontrols
|
Datentyp | Anschluss |
float (in blau) | für jede Art von Zahlen |
int (in gelb) | für ganze Zahlen (integer) |
bool (schwarz) | für logische Variablen (true, false) |
text (dunkelrot) | für jede Art von Text |
list (grün) | für Listen, Dropdown-Auswahlen etc. |
Im Gegensatz zum Bereich der Audioverarbeitung: Module der GUI arbeiten mit bidirektionalen Verbindungen (= wird eines verändert, dann wird gleich das gegenüberliegende verständigt) = die GUI-Verbindungen haben zwei Pfeile, während DSP-Verbindungen nur einen Pfeil haben.
Auch
wenn die GUI-Module bidirektional arbeiten gibt es eine Flussrichtung:
Aus-/Eingänge auf der linken Seite = Master
Aus-/Eingänge auf der rechten Seite = Slave
Verschiedene Arten von Modulen:
Parameter-Schnittstelle (Patch Mem)
Patch Mem = Schnittstellen zwischen DSP und GUI. Diese können entweder Fließkommazahlen, Listen oder Text von der einen auf die andere Seite übertragen. Alle anderen Variablenarten (wie Volt, int oder bool) müssen vorher konvertiert werden:
Verschiedene Arten von Patch Mem-Schnittstellen
Über "Patch Mem - Text" lassen sich auch Windows-Dialogfenster öffnen:
Struktur, um Windows-Dialogfenster zu öffnen
dialogfenster.se1
Daten manipulieren
Bools to list und List to Bools
dient dazu, um Listenelemente zusammenzustellen oder um aus schon vorhandenen Listen nur eine Auswahl anzubieten. Typische Verschaltung:
typische Anwendung für Bools to List und List to Bools-Module
bools2list.se1
dB to Animation
dB-Umfang von -20 bis +3 dB wird konvertiert zu einer Animation zwischen den Positionen 0,0 und 1,0. Werte unterhalb von -20 dB und oberhalb von +3 dB werden automatisch abgeschnitten. Gutes Beispiel für einen Einsatz: das VU-Meter von SynthEdit (unter "Controls/VU meter")
interne Struktur des Controls/VU meter
Float Scaler
mit Float Scaler kann man den Bereich von Fließkommazahlen durch Multiplikation mit einem Faktor beliebig vergrößern/verkleinern sowie einen Offset hinzuaddieren (dass z.B. eine Skala nicht bei 0 anfängt, sondern z.B. bei 10).
Value Out = Value in * Multiply by + Add
Float Scaler funktioniert bidirektional: wenn sich an einer Seite der Wert ändert, wird er auf der anderen Seite automatisch angepasst.
Float Scaler innerhalb einer Struktur
floatscaler.se1
Image to Frame
Image to Frame gibt die aktuelle Frame-Nummer einer Animation wieder, wird meistens mit einem Bitmap Image verbunden (Umwandlung der Integers und Ausgabe des Textes geschieht hier über DH_Sub-ControlPak_v2.0.zip)
Image to Frame, um die aktuelle Frame-Position wiederzugeben
image2frame.se1
Increment2
Mit Increment2 kann man eine Liste durchsteppen und jeweils zum nächsten oder vorangegangenen Wert gehen (springt am Ende der Liste automatisch auf den Anfang, bzw. beim Decrement am Anfang der Liste automatisch auf das Ende). Im Prefab Controls/List Entry2 kann man die Funktionsweise und den Einbau des Moduls gut sehen
interne Struktur
des Controls/List Entry2
Spring
Spring setzt einen durch Mausklick veränderten Wert auf einen Default-Wert zurück, sobald die Maus wieder losgelassen wird. Findet besonders bei Modulationsrädern seine Anwendung
interne Struktur
des Controls/Pitch Bender (und Properties für das Modul "Spring")
Daten konvertieren
Float to Bool
Float to Bool wandelt Fließkommazahlen in Boolsche Variablen um, also:
wenn
In > 0, dann Out = True
wenn In <= 0, dann Out =False
und:
wenn
Out = True, dann In = 10
wenn Out = False, dann In = 0
Lässt sich z.B. gut dafür verwenden, Peaks ab einer bestimmten Schwelle anzuzeigen (z.B. für die Frequenz eines LFOs):
Float to Bool in einer Struktur, in der das LED im Rhythmus des LFOs mitschwingt
float2bool.se1
Int to List2
Konvertiert eine Liste in eine Reihe von Zahlen bzw. eine Zahl in eine Auswahl aus einer Liste. Dabei gibt es zwei Modi für die Auswahl: Index und Value:
Index: es wird nach der Reihenfolge in der Liste ausgewählt (also 0 für den ersten Eintrag der Liste, 1 für den zweiten usw.)
Value: es wird nach dem internen Wert der Liste ausgewählt (also 1 für den ersten Eintrag der Liste, 2 für den zweiten usw. Wenn jedoch z.B. zwischendurch ein Eintrag in der Liste gelöscht wurde (z.B. mit dem internen Wert 4), so kann dieser nicht mehr erreicht werden, sondern nur noch die drum herum liegenden Werte (z.B. 3 und 5)).
Int to List2 in einer Struktur, um z.B. die Wellenform über einen
Schieberegler auswählen zu können
int2list.se1
Text to Float
Text to Float verwandelt Text in Fließkommazahlen und umgekehrt Fließkommazahlen in Text
Text to Float innerhalb einer Struktur mit Float Scaler
floatscaler.se1
GUI Input/Output
Bitmap Image
Bitmap Image ermöglicht, statische oder animierte Bilder hinzuzufügen (bmp oder png; bei statischen Bildern einfach in den Properties das Bild hinzuladen).
Bei animierten Bildern: erst die einzelnen Bilder erstellen und untereinander in einem statischen Bild zusammengefasst abspeichern, z.B.:
Bilderfolge von 7 Bildern, untereinander angeordnet als ein Bild abgespeichert
Dann in den gleichen Ordner eine Textdatei mit dem gleichen Namen wie das Bild legen (Endung .txt) und in diese Textdatei Anweisungen für die Animation schreiben. In diesem Fall:
type animated
mouse_response horizontal
frame_size 94, 94
; Dies ist ein Kommentar
Zeile 1: Es handelt sich um ein animiertes Bild
Zeile 2: das Bild reagiert bei gedrückter Maustaste auf eine horizontale Mausbewegung (alternativen: rotary, vert, stepped, click)
Zeile 3: Größe eines einzelnen Frames (Höhe, Breite)
Zeile 4: Kommentar
Zusätzlich ginge auch eine Zeile wie
padding 5, 2, 5, 3
also Platz lassen an den Kanten (top, bottom, left, right)
oder, wenn es sich um eine Hintergrundgrafik handelt:
tiled true
also, ob die Grafik gekachelt wiederholt wird (true) oder nicht (false). Danach kann die Grafik via "Image to Frame"-Modul mit den steuernden Variablen verbunden werden:
Bitmap Image innerhalb einer Struktur, um eine Wellenform auszuwählen
bitmapimage.se1
Joystick Image
Joystick Image bietet die Möglichkeit beliebig aussehende Schieberegler (bei Bewegungen in eine Richtung (Position x oder y)) und Joysticks (bei Bewegungen in zwei Richtungen (Position x und y)) zu erzeugen (mit bmp oder png)
Joystick Image zur Erzeugung eines Theremin-Instruments
joystickimage.se1
Tintet Bitmap Image
Über Tintet Bitmap Image kann man Farbton (Hue), Sättigung (Saturation) und Helligkeit (Brightness) eines Bildes in Abhängigkeit von den daran angeschlossenen Parametern/Modulen verändern; z.B. als im Rhythmus eines LFOs blinkendes Bild:
Tintet Bitmap Image in einer Struktur mit einem LFO
tintetbitmapimage.se1
Dropdown list
Ersatz
für List Entry unter Controls. Hier können (wie bei Text Entry2)
Textformat, -farbe etc verändert werden unter
C:\Programme\SynthEdit\skins\default\global.txt
unter den Einstellungen
FONT_CATEGORY "Normal"
font-family "MS Sans Serif"
font-size 12
font-color #000000
background-color #ffffff
text-align centerFONT_CATEGORY "Heading 1"
font-family Arial, Verdana
font-size 28
font-color #fff7f7
text-align center
text-decoration underline
;font-style italic
font-weight 900FONT_CATEGORY "Heading 2"
text-align center
font-family Arial
font-size 18FONT_CATEGORY "Heading 3"
text-align center
font-family Arial
font-size 14FONT_CATEGORY "User 1"
font-family Arial, "sans-serif"
font-size 14
font-color #000000
background-color #ffffff
text-align leftFONT_CATEGORY "User 2"
font-family CourierFONT_CATEGORY "User 3"
font-family Fixedsys
Dropdown List mit veränderbaren Texteigenschaften
dropdownlist.se1
Text Entry2
Textein-
und -ausgabefeld. Hier können (wie bei Dropdown List) Textformat,
-farbe etc verändert werden unter
C:\Programme\SynthEdit\skins\default\global.txt
unter den Einstellungen
FONT_CATEGORY "Normal"
font-family "MS Sans Serif"
font-size 12
font-color #000000
background-color #ffffff
text-align centerFONT_CATEGORY "Heading 1"
font-family Arial, Verdana
font-size 28
font-color #fff7f7
text-align center
text-decoration underline
;font-style italic
font-weight 900FONT_CATEGORY "Heading 2"
text-align center
font-family Arial
font-size 18FONT_CATEGORY "Heading 3"
text-align center
font-family Arial
font-size 14FONT_CATEGORY "User 1"
font-family Arial, "sans-serif"
font-size 14
font-color #000000
background-color #ffffff
text-align leftFONT_CATEGORY "User 2"
font-family CourierFONT_CATEGORY "User 3"
font-family Fixedsys
Text Entry2 innerhalb einer Struktur mit Float Scaler
floatscaler.se1
Mit dem Modul DH_TextIO gelingt die Textformatierung um einiges einfacher, z.B.:
DH-TextIO mit verschiedenen Veränderungsmöglichkeiten
DH_TextIO.se1
Datenfluß (routing)
Bool Splitter
Über Bool Splitter kann eine Entscheidung (True/False) auf beliebig viele Kanäle weitergegeben werden
Boolsplitter in einer Struktur, um beliebig viele LEDs anzusteuern
boolsplitter.se1
Von David Haupt gibt es für die anderen Variablen-Arten ebenfalls Splitter:
System Command
Über das "System Command2"-Modul lassen sich verschiedene Windows-Befehle ausführen, wie
Über Open "http//www.beliebige-adresse.at" lassen sich auch beliebige Internet-Adressen mit dem systemeigenen Browser öffnen
Button, mit dem man eine Webseite öffnen kann
systemcommand.se1