Erste Schritte in Core: Zähler-Makro
Moderator: herw
-
- synthesist
- Beiträge: 58
- Registriert: 26. Februar 2018, 12:23
Erste Schritte in Core: Zähler-Makro
Hi,
ich wollte hier mal meinen eigenen Zähler vorstellen. Wer mag, kann mal drüber schauen und Anregungen zur Implementierung geben
Derzeit beherrscht er nur die Addition. Er nutzt intern eine Feedback-Schleife. Diesem Bereich habe ich mich in der Anleitung zwar noch nicht gewidmet, aber es scheint alles fehlerfrei zu funktionieren
Der Aufbau ist sehr übersichtlich. Die Quick-Busse gefallen mir sehr gut. Das ist ein ganz anderes arbeiten als auf der Primary-Ebene, wo überall Kabel umherfliegen. Auch die Möglichkeit Core-Makros mit eigenen Bildern zu versehen wird von mir gerne genutzt. Zwanzig Prozent meiner Zeit verbringe ich derzeit in GIMP um mir meine eigenen Grafiken zu erstellen. Diese entsprechen zwar keiner Norm, aber mir helfen sie sehr dabei einen schnellen, guten Überblick zu bekommen.
ich wollte hier mal meinen eigenen Zähler vorstellen. Wer mag, kann mal drüber schauen und Anregungen zur Implementierung geben
Derzeit beherrscht er nur die Addition. Er nutzt intern eine Feedback-Schleife. Diesem Bereich habe ich mich in der Anleitung zwar noch nicht gewidmet, aber es scheint alles fehlerfrei zu funktionieren
Der Aufbau ist sehr übersichtlich. Die Quick-Busse gefallen mir sehr gut. Das ist ein ganz anderes arbeiten als auf der Primary-Ebene, wo überall Kabel umherfliegen. Auch die Möglichkeit Core-Makros mit eigenen Bildern zu versehen wird von mir gerne genutzt. Zwanzig Prozent meiner Zeit verbringe ich derzeit in GIMP um mir meine eigenen Grafiken zu erstellen. Diese entsprechen zwar keiner Norm, aber mir helfen sie sehr dabei einen schnellen, guten Überblick zu bekommen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- synthesist
- Beiträge: 58
- Registriert: 26. Februar 2018, 12:23
Re: Erste Schritte in Core: Zähler-Makro
Hier noch die Beschreibung, hab ich ganz vergessen
Dieser Zähler fügt immer dann den Wert 1 zu dem Wert in seinem Speicher hinzu, wenn ein am mittleren Eingang eintreffendes Event größer als 0 ist.
Über den oberen Reset-Eingang lässt sich der Zähler auf Null zurück setzen. Zum triggern werden nur Events berücksichtigt welche größer als 0 sind.
Über den unten liegenden Maximal-Wert-Eingang wird bestimmt ab welchem Wert der Zähler zurück auf 1 springen soll. Ist der Eingang nicht verbunden so liegt der Wert 10^9 an.
Der obere Ausgang gibt den Zählerwert aus. Der untere Ausgang gibt den Wert 1 aus, wenn der Zähler den Maximalwert überschritten hat und somit zurück auf 1 springt, ansonsten liegt ein nicht verbundener Ausgang eines Routers an.
Über den unteren Ausgang kann man bspw. weitere Zähler ansteuern.
Dieser Zähler fügt immer dann den Wert 1 zu dem Wert in seinem Speicher hinzu, wenn ein am mittleren Eingang eintreffendes Event größer als 0 ist.
Über den oberen Reset-Eingang lässt sich der Zähler auf Null zurück setzen. Zum triggern werden nur Events berücksichtigt welche größer als 0 sind.
Über den unten liegenden Maximal-Wert-Eingang wird bestimmt ab welchem Wert der Zähler zurück auf 1 springen soll. Ist der Eingang nicht verbunden so liegt der Wert 10^9 an.
Der obere Ausgang gibt den Zählerwert aus. Der untere Ausgang gibt den Wert 1 aus, wenn der Zähler den Maximalwert überschritten hat und somit zurück auf 1 springt, ansonsten liegt ein nicht verbundener Ausgang eines Routers an.
Über den unteren Ausgang kann man bspw. weitere Zähler ansteuern.
-
- synthesist
- Beiträge: 58
- Registriert: 26. Februar 2018, 12:23
Re: Erste Schritte in Core: Zähler-Makro
Oh je... die Struktur ist doch noch ganz schön verbuggt
Ich arbeite daran und jetzt wird endlich auch mal ACEW ausgiebig getestet. Dieses kleine Tool ist wirklich eine Bereicherung!
Sobald der Zähler bugfrei ist lade ich ihn nochmal hoch.
Ich arbeite daran und jetzt wird endlich auch mal ACEW ausgiebig getestet. Dieses kleine Tool ist wirklich eine Bereicherung!
Sobald der Zähler bugfrei ist lade ich ihn nochmal hoch.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Erste Schritte in Core: Zähler-Makro
Ich habe deine Lösung in ein anderes Unterforum Module und Makros (core) verschoben; wenn deine Lösung fehlerfrei und allgemeingültig ist, dann kannst du dein Makro in die Fundgrube neu hochladen.128bpm hat geschrieben:Oh je... die Struktur ist doch noch ganz schön verbuggt
Ich arbeite daran und jetzt wird endlich auch mal ACEW ausgiebig getestet. Dieses kleine Tool ist wirklich eine Bereicherung!
Sobald der Zähler bugfrei ist lade ich ihn nochmal hoch.
-
- synthesist
- Beiträge: 58
- Registriert: 26. Februar 2018, 12:23
Re: Erste Schritte in Core: Zähler-Makro
Ok. Mittlerweile habe ich auch alle Bugs beseitig. Die Schaltung funktioniert nun astrein
Ich werde die neue Version später hoch laden. Jetzt brauche ich aber erst einmal eine Pause
Ich werde die neue Version später hoch laden. Jetzt brauche ich aber erst einmal eine Pause
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Erste Schritte in Core: Zähler-Makro
Bevor du das Rad neu erfindest, schaue in die R6- und R5-Library hinein.128bpm hat geschrieben:Ok. Mittlerweile habe ich auch alle Bugs beseitig. Die Schaltung funktioniert nun astrein
Ich werde die neue Version später hoch laden. Jetzt brauche ich aber erst einmal eine Pause
-
- synthesist
- Beiträge: 58
- Registriert: 26. Februar 2018, 12:23
Re: Erste Schritte in Core: Zähler-Makro
Das Rad will ich natürlich nicht neu erfinden, ich sehe das aktuell eher als Übung an.herw hat geschrieben:Bevor du das Rad neu erfindest, schaue in die R6- und R5-Library hinein.128bpm hat geschrieben:Ok. Mittlerweile habe ich auch alle Bugs beseitig. Die Schaltung funktioniert nun astrein
Ich werde die neue Version später hoch laden. Jetzt brauche ich aber erst einmal eine Pause
Allein durch die Bugs dieser Schaltung habe ich einiges gelernt
Hier ist nun die bugfreie Version und noch einmal die finale Beschreibung:
Dieser Zähler fügt immer dann den Wert 1 zu dem Wert in seinem Speicher hinzu, wenn ein am mittleren Eingang eintreffendes Event größer als 0 ist.
Über den oberen Reset-Eingang lässt sich der Zähler auf Null zurück setzen. Zum triggern werden nur Events berücksichtig welche größer als 0 sind.
Über den unten liegenden Maximal-Wert-Eingang wird bestimmt ab welchem Wert der Zähler zurück auf 1 springen soll. Ist der Eingang nicht verbunden so liegt der Wert 10^9 an.
Der obere Ausgang gibt den Zählerwert aus. Der untere Ausgang gibt den Wert 1 aus, wenn der Zähler gleich 1 ist, ansonten liegt ein nicht verbundener Ausgang eines Routers an.
Über den unteren Ausgang kann man bspw. weitere Zähler ansteuern.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- synth doctor
- Beiträge: 218
- Registriert: 6. April 2011, 20:31
- Wohnort: Wiesbaden
Re: Erste Schritte in Core: Zähler-Makro
Ich mag zwar Orange, allerdings nicht als Linienfarbe in Core
Spätestens, wenn du mit Eventrate (z.B. aus einer Primary-Iteration) den Schwellwert "max" erreichst und überschreitest, dürftest du ein Problem haben.
Ich geb dir noch nen Kaffee aus.
Spätestens, wenn du mit Eventrate (z.B. aus einer Primary-Iteration) den Schwellwert "max" erreichst und überschreitest, dürftest du ein Problem haben.
Ich geb dir noch nen Kaffee aus.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Erste Schritte in Core: Zähler-Makro
Genau das ist auch mein Argwohn. Eine Feedback-Schleife, die nicht gänzlich unter Kontrolle des Entwicklers steht: Deine Lösung hat ein Problem mit Initialisierungen, was für einen Neueinsteiger ein richtiges Kreuz ist.Quietschboy hat geschrieben:Ich mag zwar Orange, allerdings nicht als Linienfarbe in Core
Spätestens, wenn du mit Eventrate (z.B. aus einer Primary-Iteration) den Schwellwert "max" erreichst und überschreitest, dürftest du ein Problem haben.
Ich geb dir noch nen Kaffee aus.
Ich rate dringend, sich die Initialisierungstabelle von Mark herunter zu laden und genau anzuschauen. Man muss wirklich mal alle Eventualitäten durchtesten.
Es gibt hier im Wesentlichen zwei wichtige Initialisierungen:
- hard init
er tritt z.B. beim Starten des Programm und beim Betätigen des Reaktor Hauptschalter (rechts oben in der Menuleiste) auf. - soft init
tritt z.B. bei einem primary switch auf.
Erst wenn beide erkannt werden lassen sich Fehlinterpreationen durch die core Struktur unterdrücken.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- synthesist
- Beiträge: 58
- Registriert: 26. Februar 2018, 12:23
Re: Erste Schritte in Core: Zähler-Makro
Ok, danke fürs drüber schauen!
Ich werde die Struktur nochmals prüfen. Wer hätte gedacht, dass solch eine kleine Aufgabenstellung derart kompliziert werden kann?
Trotzdem bin ich mit den derzeitigen Ergebnissen schon ganz zufrieden, immerhin beschäftige ich mich mit Reaktor-Strukturen erst seit zwei Monaten. Der Einstig ist wirklich nicht leicht, aber es ist ja auch noch kein Meister vom Himmel gefallen
Ich werde die Struktur nochmals prüfen. Wer hätte gedacht, dass solch eine kleine Aufgabenstellung derart kompliziert werden kann?
Trotzdem bin ich mit den derzeitigen Ergebnissen schon ganz zufrieden, immerhin beschäftige ich mich mit Reaktor-Strukturen erst seit zwei Monaten. Der Einstig ist wirklich nicht leicht, aber es ist ja auch noch kein Meister vom Himmel gefallen
Ja, danke. Die Tabelle habe ich mir vorhin schon runter geladen.herw hat geschrieben: Ich rate dringend, sich die Initialisierungstabelle von Mark herunter zu laden und genau anzuschauen. Man muss wirklich mal alle Eventualitäten durchtesten.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Erste Schritte in Core: Zähler-Makro
Initialisierungen sind bei allgemeinen Lösungen wie in deinem Fall unbedingt zu beachten, sonst kann man sie nicht universell benutzen.
Ich habe mal ein kleines Testensemble (kommt am Ende einer Ausführungen) gebaut, mit dem man die wichtigsten Fälle vergleichen kann:
Ich habe mal ein kleines Testensemble (kommt am Ende einer Ausführungen) gebaut, mit dem man die wichtigsten Fälle vergleichen kann:
- Überblick (die Bilddarstellung aufklappen!)
Die Zeilen 1 und 2 geben 128bpms Lösung aus, die Zählevents und den Reset, die Zeilen 3 und 4 die entsprechenden Ausgänge aus meinem core-Makro.
Mit dem Trigger Button set wird der Zähler auf 0 zurückgesetzt, mit dem Switch kann man einen soft init auslösen. Die Triggertaste Iteration löst eine Iteration von 1 bis 7 aus. Der Zähler soll bis 4 zählen und sich selbst beim Überschreiten resetten. Die Iteration ist im Bild nicht angeschlossen.
Da es sich um isolierte Events mit großem zeitlichen Abstand handelt kann ich hier im ACEW die Shrink-Taste aktivieren gleichzeitige (im Sinne von „im selben Sampletick”) events werden dann in derselben Spalte dargestellt. Das muss man zum Verständnis bei der Iteration deaktivieren.
Ich untersuche zunächst single events, die in diesem Fall durch Midi/NotePitch erzeugt werden. Ich drücke mehrfach die Taste Q auf der Computertastatur. - Start des Programms : hard init
Nach dem Programmstart drücke ich mehrfach die Taste Q (Midi/NotePitch = 60) auf dem Keyboard. In der 5. Zeile werden alle ausgegebenen Events dargestellt. Wir erkenne unmittelbar, dass beide Strukturen den hardInit-Event unterdrücken.
Betätigt man allerdings nun die Taste Q mehrfach, so hinkt die 128bpm-Struktur hinterher. Die Umschaltung bei Überschreiten von Maximalwert 4 funktioniert aber richtig.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Erste Schritte in Core: Zähler-Makro
- reset des Zählers Nach dreimaligem Drücken der Taste Q habe ich den Reset-Trigger ausgelöst, der Zähler wurde zurückgesetzt. Wir sehen, dass in der ersten Zeile bei Entry 15 der Wert 0 ausgegeben wird. Das sollte nicht sein. Danach arbeiten aber beiden Zähle-Varianten gleich und richtig, wenn man davon absieht, dass in der oberen Variante beim rst-Ausgang noch Nullen ausgegeben werde (Absicht?)
- soft init
Ich betätige den switch und löse von primary ausgehend einen soft init aus: Auch hier wird in der ersten Variante der Wert 0 ausgegeben. Danach arbeiten beide wie oben.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Erste Schritte in Core: Zähler-Makro
Wie Mark es oben schon angedeutet hat, gibt eine Iteration massive Probleme.
Daher ändere ich nun die Struktur, indem ich auf den Event-Eingang eine Iteration gebe (Iteration von 1 bis 7): Wir sehen, dass die erste Variante massive Schwierigkeiten hat dadurch, dass der Hard Init nicht unterdrückt werden kann. Alle Werte werden ohne Rücksetzen weiter gegeben. Auch die Originaliteration (Zeile 6) beginnt nicht beim Startwert 1 sondern 0 und gibt auch nur 6 Werte aus. D.h. man ist gezwungen, den Hard Init zu unterdrücken. Die zweite Variante leistet dies.
Damit wir das Verhalten genauer untersuchen können, schalte ich die Zeilen 3 und 4 aus und dekativiere den Taster Shrink. Damit können wir auch die Reihenflge der Verarbeitung innerhalb eines Sampleticks beobachten, ohne die Übersicht zu verlieren. Wir sehen jetzt sehr schön, wie innerhalb des Sampleticks 0, also beim hard init, die Werte an den ACEW, also Primary übergeben werden.
Ich setze den Zähler (Entry 10 wird leider wieder ausgegeben) zurück und löse nun eine weiter Iteration durch den Trigger rechts aus: Nun werden zwar die Anzahl der eintreffenden Events richtig gezählt, es fehlt aber das automatische resetten nach dem Zählerstand 4.
Die zweite variante unterdrückt den Hard Init komplett und gibt nur wie gewünscht sieben Werte aus mit dem wrap beim Wert 4. Je nachdem, ob man den Zähler zurücksetzt oder nicht, zählt diese version brav von vorne oder einfach weiter.
Daher ändere ich nun die Struktur, indem ich auf den Event-Eingang eine Iteration gebe (Iteration von 1 bis 7): Wir sehen, dass die erste Variante massive Schwierigkeiten hat dadurch, dass der Hard Init nicht unterdrückt werden kann. Alle Werte werden ohne Rücksetzen weiter gegeben. Auch die Originaliteration (Zeile 6) beginnt nicht beim Startwert 1 sondern 0 und gibt auch nur 6 Werte aus. D.h. man ist gezwungen, den Hard Init zu unterdrücken. Die zweite Variante leistet dies.
Damit wir das Verhalten genauer untersuchen können, schalte ich die Zeilen 3 und 4 aus und dekativiere den Taster Shrink. Damit können wir auch die Reihenflge der Verarbeitung innerhalb eines Sampleticks beobachten, ohne die Übersicht zu verlieren. Wir sehen jetzt sehr schön, wie innerhalb des Sampleticks 0, also beim hard init, die Werte an den ACEW, also Primary übergeben werden.
Ich setze den Zähler (Entry 10 wird leider wieder ausgegeben) zurück und löse nun eine weiter Iteration durch den Trigger rechts aus: Nun werden zwar die Anzahl der eintreffenden Events richtig gezählt, es fehlt aber das automatische resetten nach dem Zählerstand 4.
Die zweite variante unterdrückt den Hard Init komplett und gibt nur wie gewünscht sieben Werte aus mit dem wrap beim Wert 4. Je nachdem, ob man den Zähler zurücksetzt oder nicht, zählt diese version brav von vorne oder einfach weiter.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Erste Schritte in Core: Zähler-Makro
nun noch der Soft Init:
D.h. die Struktur funktioniert überhaupt nicht.
Variante 2 hat keine Schwierigkeiten. Lediglich der Zähler wird beim Soft Init zurückgesetzt, was aber wohl auch meistens erwünscht sein wird.
Durch die falsche Initialisierung des Zählers beginnt dieser wiederum bei 0, gibt allerdings wiederum nur sechs Werte aus, auch ohne zu wrappen.D.h. die Struktur funktioniert überhaupt nicht.
Variante 2 hat keine Schwierigkeiten. Lediglich der Zähler wird beim Soft Init zurückgesetzt, was aber wohl auch meistens erwünscht sein wird.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: Erste Schritte in Core: Zähler-Makro
Was ist des Rätsels Lösung: Nun die Initialisierungen werden durch ein kleines Makro unterdrückt.
Die zweite Variante sieht überraschend einfach aus.
Ich habe einen counter aus der R5-core-Library etwas abgewandelt (Ergänzung eines wrappers). Entscheidend für das Funktionieren dieses Zählers ist aber das Beherrschen der Initialisierungen. Mein Dank gilt Dietrich Pank, einem Mitglied des REAKTOR-Teams, dass er uns dieses Makro zur Verfügung gestellt hat. Man vergleiche mit der Tabelle von Mark.
Ich werde ein entsprechendes Ensemble, das die einzelnen Initialisierungen vorführt, in der Fundgrube hoch laden.
Und hier nun mein Testensemble; viel Spaß beim Ausprobieren: Damit es keine Verwechslungen mit dem No-Init-Makro aus der REAKTOR-core-Library gibt, hier das Makro von Dietrich Pank:
Die zweite Variante sieht überraschend einfach aus.
Ich habe einen counter aus der R5-core-Library etwas abgewandelt (Ergänzung eines wrappers). Entscheidend für das Funktionieren dieses Zählers ist aber das Beherrschen der Initialisierungen. Mein Dank gilt Dietrich Pank, einem Mitglied des REAKTOR-Teams, dass er uns dieses Makro zur Verfügung gestellt hat. Man vergleiche mit der Tabelle von Mark.
Ich werde ein entsprechendes Ensemble, das die einzelnen Initialisierungen vorführt, in der Fundgrube hoch laden.
Und hier nun mein Testensemble; viel Spaß beim Ausprobieren: Damit es keine Verwechslungen mit dem No-Init-Makro aus der REAKTOR-core-Library gibt, hier das Makro von Dietrich Pank:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.