Library: Stacked Macro
Reaktor bietet die Möglichkeit, Elemente der BenutzeroberflÀche ein- und auszublenden. Die Idee dahinter ist einfach, die Umsetzung aufgrund bis heute nicht ausgerÀumter Limitierungen aber voller Stolpersteine.
[01]
Um was wird es gehen?
Es gibt verschiedene GrĂŒnde, Teile der BenutzeroberflĂ€che ein und/oder auszublenden. Zum einen können das PlatzgrĂŒnde sein, oder anderen das BedĂŒrfnis, die Bedienung ĂŒbersichtlich zu halten und nur die Elemente zu zeigen, die gerade Sinn ergeben. Ich habe euch ein kleines Beispielszenario erstellt:
Angenommen, ihr wollt fĂŒr einen Oszillator drei verschiedenen HĂŒllkurven zur Auswahl stellen und findet es auch reichlich albern, alle drei HĂŒllkurven gleichzeitig einzublenden. Zum einen, weil das drei mal soviel Platz braucht wie nötig und zum anderen, weil es von der gewĂ€hlten Option ablenkt. Das wĂ€re dann also ein klassisches Einsatzgebiet fĂŒr ein „Stacked Macro“.
Abb. 1: A) ohne Stacked Macro, B) und C) mit Stacked Macro
[02]
Die Idee
Die Idee hinter den Stacked Macros ist eigentlich ziemlich schlau: Die Elemente, die man ein- und ausblenden möchte, verpackt man in Macros. Diese Macros packt man dann in das Stacked Macro, dass die FĂ€higkeit hat, die in ihm gelagerten Macros ein- und auszublenden. Das passiert mit einem „Panel Index“-Modul, das ebenfalls im Stacked Macro zu liegen kommt. Ferner kann ein Stacked Macro, wie sein Vorbild (das „normale“ Macro), ĂŒber Ein- und AusgĂ€nge verfĂŒgen. Klingt bestechend einfach und funktioniert auch genau so – bis auf ein paar TĂŒcken:
- Die Reihenfolge, in der das Stacked Macro die in ihm befindlichen Macros durchnummeriert, hĂ€ngt davon ab, in welcher Reihenfolge die Macros in das Stacked Macro gelangen. Dabei ist es völlig unerheblich, wie (un)ordentlich die Macros im Stacked Macro verteilt sind: Das zuerst angelegte Macro ist die Nummer 1, das folgende dann Nummer 2, usw. Habt ihr um Laufe der Arbeit den Eindruck, dass eine andere Reihenfolge sinnvoller wĂ€re â mĂŒsst ihr von vorne beginnen. Wobei ich euch nicht sagen kann, ob ein rausnehmen der Macros und ein Wiedereinbauen ausreicht, oder ob ihr das Stacked Macro neu anlegen mĂŒsst. bislang hatte ein solches Problem noch nicht. Wer das herausfindet, darf sich gerne melden :-).
- Das Anordnen/Verschieben von Elementen in einem Macro innerhalb eines Stacked Macro kann schnell mal zu grauen Haaren fĂŒhren, weil dabei das Layout ziemlich eigenwillig verrutschen kann. Das Problem besteht in der fehlenden Kontrolle ĂŒber die Grenzen eines Macros, weil dessen RĂ€nder (Solid oder Line) innerhalb des Stacked Macros schlicht und ergreifend nicht mehr angezeigt werden. Wenn man hier klug vorausplant, erspart man sich eine Menge StreĂ
- Bewegt man ein Macro, in dem sich ein Stacked Macro befindet (das geht ja auch), ist die Chance groĂ, dass sich das Stacked Macro mit seinem Inhalt nicht mitbewegen will. Hier hilft es, wenn man fĂŒr das zu verschiebenden Macro die Rahmen-Option aktiviert und das Macro am Rahmen verschiebt.
 In den folgenden Schritten zeige ich euch, wie man trotzdem zu einem stressfreien Ergebnis kommen kann. Es wird ganz wunderbar!
Abb. 2: Das Stacked Macro als solches
[03]
Ausgangsszenario & wichtige Vorbereitungen
Zuerst erstellen wir das Ausgangsszenario: Drei Macros mit je einem HĂŒllkurventyp (hier: AD, ADSR und ADBDSR). Alle drei HĂŒllkurvenmakros durchlaufen ein Selektor-Modul, das mit einem Liste-Element umgeschaltet wird. Das List-Element sendet die Werte 0, 1 und 2, entsprechend den EingĂ€ngen des Selectors! Um das Ergebnis ĂŒberprĂŒfen zu können, spendieren wir dem Selector-Ausgang einen SĂ€gezahn-Oszillator, den wir mit den beiden AusgĂ€ngen verbinden.
Abb. 3: Die drei Envelope-Macros
Um einen möglichst reibungslosen Umzug in das Stacked Macro zu gewĂ€hrleisten, werden wir die drei der Envelope-Macros erst einmal ausserhalb des Stacked Macros „herrichten“.
- Es ist enorm hilfreich, wenn alle Macros die selbe GröĂe haben! Damit ist schon mal viel gewonnen.
- Ausserdem ist der der Optik zutrĂ€glich, wenn gerade bei Ă€hnlichen Inhalten, gleiche Elemente an der selben Stelle zu liegen kommen. Hier sind das die Displays und die Buttons fĂŒr Attack und Decay bei der AD- und der ADSR-HĂŒllkurve. Aufgrund der gröĂeren Anzahl Bedienelemente fĂŒr die ADBDSR-HĂŒllkurve fallen die Knöpfe hier kleiner. Hier wurde stattdessen die linke untere Ecke der Anzeige des Attack-Knopfes an die Anzeigen der Attack-Knöpfe der anderen HĂŒllkurven angeglichen.
In Abb. 4 habe ich das verdeutlicht, in dem ich alle Varianten einander gegenĂŒber gestellt habe. (Die transparenten Exemplare dienen also nur der Verdeutlichung der identischen Designs).
Abb. 4: Layout der Macros anpassen
[04]
Umzug
Nun wird es spannend: Wir legen ein Stacked Macro an, das sich unter
- Build-in Modul > Panel > Stacked Macro
befindet. Dort findet sich spĂ€ter auch das zum steuern benötigte Panel Index Modul. Das Stacked Macro wird im Panel â analog zu unseren Envelope-Macros â mit einem Rahmen dargestellt. Jetzt haben wir Gelegenheit, die GröĂe des Stacked Macro festzulegen. Wir dimensionieren es etwas gröĂer, als unsere Envelope-Macros.
Danach öffnen wir es per Doppelklick und versehen es mit
- zwei In-Ports. Einen fĂŒr die Steuerung des Stacked Macro und einen fĂŒr das Gate-Signal an den HĂŒllkurven und …
- drei Out-Ports, um den HĂŒllkurven den Zugriff auf die AuĂenwelt zu ermöglichen.
Abb. 5: Stacked Macro anlegen
Wie unter [2] bereits angekĂŒndigt, kommt es nun darauf an, die Envelope-Macros in der richtigen Reihenfolge in das Stacked Macro zu beförden. Hier erledigen wir das in der Reihenfolge AD, ADSR und ADBDSR. Wie Objekte in ein (Stacked)Macro gelangen, könnt ihr hier noch einmal nachlesen.
AnschlieĂend platzieren wir im Stacked Macro noch das bereits erwĂ€hnte Panel Index Modul und verbinden alle Ein- und AusgĂ€nge wie in Abb. 6:
- Die EingÀnge der Envelope-Macros mit dem In-Port des Stacked Macro, an dessen Aussenseite das Gate-Modul angeschlossen wird.
- Die AusgÀnge der Envelope-Macros mit den entsprechenden Out-Ports des Stacked Macro, deren Aussenseiten mit dem Selector verbunden werden.
- Der Sel-Eingang des Stacked Macro mit dem Pandel Index Modul.
Wie funktioniert das ganze nun?
Sowohl das Selektor- als auch das List- und das Panel Index Modul beginnen ihre ZÀhlung mit der Ziffer 0. Damit schlagen wir mehrere Fliegen mit einer Klappe und verbinden das List Modul, das ja bereits mit dem Pos-Eingang des Selectors verbunden ist, zusÀtzlich mit dem Sel-Eingang des Stacked Macros. Fertig. Das war es auch schon.
- Sendet das List Modul eine 0, wird im Selector der erste Eingang durchschaltet, im Stacked Macro das erste Envelope-Macro ein- und alle anderen Envelope-Macros ausgeblendet.
- Sendet das List Modul eine 1, wird im Selector der zweite Eingang durchschaltet, im Stacked Macro das zweite Envelope-Macro ein- und alle anderen Envelope-Macros ausgeblendet.
- Sendet das List Modul eine 2, … ihr wisst schon đ
Abb. 6: Stacked Macro belegt
[05]
One more Thing!
Euch ist sicher nicht entgangen, dass in Abb. 1C die Buttons zum Umschalten durch Grafiken ersetzt wurden. Und wie es aussieht, können diese Grafiken, je nach Schaltzustand, unterschiedlich aussehen. Wie das funktioniert, zeige ich euch jetzt:
Dreh- und Angelpunkt dieser Navigation ist das extrem flexible einsetzbare Multi Picture Modul. Und wie das funktioniert, erklĂ€rt sich am besten an einem Beispiel. In dem Fall die AD-HĂŒllkurve.
Abb. 7A) Im Gegensatz zum gewöhnlichen Picture Modul, das eine einzelne Grafik aufnehmen kann, kann das Multi Picture Modul mit Grafiken umgehen, die aus mehreren Teilen bestehen, und die sich das Modul selbst ein Einzelteile zerlegt. Wird eine von diesem Modul angezeigte Grafik mit gedrĂŒckter linker Maustaste ĂŒberfahren, geben die AusgĂ€nge MX und MY die Mausposition aus. An MB liegt der Status der linken Maustaste an und an N-1 die Anzahl der gespeicherten Bildteile (dazu unten mehr). Der Sel-Eingang lĂ€sst die Auswahl eines Bildteiles zu und mit BX und BY können die Ausgaben fĂŒr MX und MY mit einem Offsetwert versehen werden. FĂŒr unser Beispiel sind nur der Sel-Eingang und der MB-Ausgang interessant.
Abb. 7B) Der Button zum Umschalten der AD-HĂŒllkurve besteht aus zwei verschiedenen Elementen: Dem Ein- und dem Aus-Zustand. Diese beiden ZustĂ€nde erstelle ich in einer Einzigen Grafik im .png-Format (z.B. in Photoshop). Idealerweise haben beide Buttons die selbe GröĂe. In unserem Beispiel sind die Buttons quadratisch mit einer KantenlĂ€nge von 29px. Die Vorlagen habe ich den HĂŒllkurven-Modulen per Screenshot entnommen đ
Ganz wichtig: Das GUI von Reaktor arbeitet (noch) mit einer Auslösung von 72dpi. Ein Screenshot auf einem zeitgemĂ€Ăen Computer hat aber (z.B. an einem iMac) 144dpi. Vor Gebrauch einer solchen Grafik in Reaktor, mĂŒsst ihr die Auflösung unbedingt auf 72dpi Ă€ndern! Im Fall des AD-Buttons wĂ€re der sonst 4x so groĂ (doppelte Breite und doppelte Höhe).
Abb. 7C) Kommen wir zum Bildimport: Im View-Reiter des Multi Picture Moduls findet ihr den Eintrag „Image“, der euch die Möglichkeit gibt, eine Grafik in das Modul zu laden. Hier ist folgendes anzugeben:
- Direction: Ihr mĂŒsst dem Modul mitteilen, ob die einzelnen Teile eurer Grafik neben- oder untereinander angeordnet sind. In diesem Beispiel wĂ€hlen wir horizontal.
- Number of Frames: Danach teilt ihr dem Modul mit, aus wie vielen Teilen eure Grafik besteht. Hier: 2.
Das Multi Picture Modul ist nun in der Lage, zwei verschiedene Grafiken anzuzeigen. Und zwar abhÀngig davon, welcher Wert am Sel-Eingang anliegt.
Abb. 7: Multi Picture Module
Jetzt muss das Multi Picture Modul nur noch wissen, wann es welchen Bildteil anzeigen soll. In unserem Fall muss das fĂŒr drei Multi Picture Module geklĂ€rt werden, ohne dass die sich dabei in die Quere kommen. Um das zu verstehen, folgen wir einfach den einzelnen SignalflĂŒssen:
- AD
- Der Anwender klickt auf die Grafik fĂŒr die AD-HĂŒllkurve
- Das zugehörige erste Multi Picture Modul sendet am MB-Ausgang eine 1
- Die 1 trifft auf ein Value-Modul, dass daraufhin den voreingestellten Wert 0 zum Zwischenspeichern an das Snap Value Modul schickt.
- Das Snap Value Modul leitet den gespeicherten Wert (0) an den Pos-Eingang des Distributors, der die an dessen Eingang anliegende 1 auf den Weg schickt. Und zwar an den Ausgang 0 und somit zum Sel-Eingang des angeklickten ersten Multi Picture Moduls.
- Das erste Multi Picture Modul blendet die „ON-HĂ€lfte“ seines Buttons ein. Die anderen beiden Distributor-AusgĂ€nge gehen auf 0 und weisen die angeschlossenen Multi Picture Module an, die „OFF-HĂ€lfte“ ihres Buttons anzuzeigen.
- ADSR
- Der Anwender klickt auf die Grafik fĂŒr die ADSR-HĂŒllkurve
- Das zugehörige zweite Multi Picture Modul sendet am MB-Ausgang eine 1
- Die 1 trifft auf ein Value-Modul, dass daraufhin den voreingestellten Wert 1 zum Zwischenspeichern an das Snap Value Modul schickt.
- Das Snap Value Modul leitet den gespeicherten Wert (1) an den Pos-Eingang des Distributors, der die an dessen Eingang anliegende 1 auf den Weg schickt. Und zwar an den Ausgang 1 und somit zum Sel-Eingang des angeklickten zweiten Multi Picture Moduls.
- Das zweite Multi Picture Modul blendet die „ON-HĂ€lfte“ seines Buttons ein. Die anderen beiden Distributor-AusgĂ€nge gehen auf 0 und weisen die angeschlossenen Multi Picture Module an, die „OFF-HĂ€lfte“ ihres Buttons anzuzeigen.
- ADBDSR
- Der Anwender klickt auf die Grafik fĂŒr die ADBDSR-HĂŒllkurve
- Das zugehörige dritte Multi Picture Modul sendet am MB-Ausgang eine 1
- Die 1 trifft auf ein Value-Modul, dass daraufhin den voreingestellten Wert 2 zum Zwischenspeichern an das Snap Value Modul schickt.
- Das Snap Value Modul leitet den gespeicherten Wert (2) an den Pos-Eingang des Distributors, der die an dessen Eingang anliegende 1 auf den Weg schickt. Und zwar an den Ausgang 2 und somit zum Sel-Eingang des angeklickten dritten Multi Picture Moduls.
- Das dritte Multi Picture Modul blendet daraufhin die „ON-HĂ€lfte“ seines Buttons ein. Die anderen beiden Distributor-AusgĂ€nge gehen auf 0 und weisen die angeschlossenen Multi Picture Module an, die „OFF-HĂ€lfte“ ihres Buttons anzuzeigen.
Das ist alles.Â
Bleibt noch die Frage, was die lose herumliegende Konstante „1“, links neben dem ADBDSR-Multi Picture Modul soll. Das ist mein „Notfallwerkzeug“. Es kommt bisweilen vor, dass ein Button ĂŒber keinen expliziten Aus-Zustand verfĂŒgt. Das ist z. B. dann der Fall, wenn der Off-Zustand Bestandteil einer komplexen Hintergrundgrafik ist und fĂŒr den On-Zustand einfach ein Teil dieser Hintergrundgrafik mit einem Overlay (On-Button) ersetzt werden soll. Die Button-Grafik hat dann trotzdem beide ZustĂ€nde (weil sie sonst vom Multi Picture Modul nicht in „On“ und „Off“ zerlegt und genutzt werden könnte). Der Off-Teil des Buttons ist in einem solchen Fall transparent, also „unsichtbar“. Solche Buttons sind im Off-Zustand nicht zu sehen und deshalb extrem schwierig zu finden. In dem Fall klemme ich einfach die lose Konstante „1“ an den Sel-Eingang des entsprechenden Multi Picture Moduls und kann damit den On-Zustand simulieren.
Abb. 6: Stacked Macro belegt
[06]
Softwaretip & Downloads
Bekanntlich ist das User-Interface des Reaktors (noch) nicht responsiv und das Ausrichten von GUI-Elementen gerade bei hochauflösenden Bildschirmen eine Angelegenheit groĂer Geduld.
Ich behelfe mir in solchen FĂ€llen mit der App x-scope (iconfactory). Neben einer Menge anderer praktischer Tools fĂŒr Kreativ-Schaffende, bietet x-scope frei positionierbare Hilfslinien (Guides), die sich prĂ€zise positionieren lassen und an denen man die Elemente der Reaktor-OberflĂ€che ausrichten kann. Mehr dazu findet ihr hier.
Stacked Macro - Buttons
.ens-Datei, (Zip-File, 5KB)
Stacked Macro - Grafik
.ens-Datei, (Zip-File, 16KB)
Kontakt
Bernd Scheurer
MainstraĂe 2
64390 Erzhausen
Fon: 06150 865902
Mobil: 0151 50411034
unterricht@bernd-scheurer.de
Follow Me ...
Freie PlÀtze
- Erzhausen
- MO: 14:00 â 16:30 [anfragen]
- Langen
- DO: 13:30 - 14:00 [anfragen]
Infos
- Aktuelle GebĂŒhrenordnungen
Auch interessant
Newsticker
amazona
tastenwelt
klassik heute
musikexpress

