erstes simpel macro (gescheitert)
Moderator: herw
-
- synth doctor
- Beiträge: 273
- Registriert: 25. Juni 2013, 15:26
erstes simpel macro (gescheitert)
Was soll das Teil leisten?
Im Prinzip soll es simple Signale clippen, die Besonderheit: sobald der Treshold unterschritten ist, soll es auf 0 springen.
Aber irgendwas begreife ich grundsätzlich nicht, bspw. ist es dem Compair-Ausgang verboten sich direkt "zu outen" resp. wird er intern gelb verdrahtet????
Beim Router gehe ich mal davon aus, das er analog zu Prim arbeitet, also bei 0 am Relais 0 ausgibt und bei WAHR den (einzigen!!!) Eingang durchschleift.
Im Prinzip soll es simple Signale clippen, die Besonderheit: sobald der Treshold unterschritten ist, soll es auf 0 springen.
Aber irgendwas begreife ich grundsätzlich nicht, bspw. ist es dem Compair-Ausgang verboten sich direkt "zu outen" resp. wird er intern gelb verdrahtet????
Beim Router gehe ich mal davon aus, das er analog zu Prim arbeitet, also bei 0 am Relais 0 ausgibt und bei WAHR den (einzigen!!!) Eingang durchschleift.
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: erstes simpel macro (gescheitert)
Die gelbe Verbindung ist ein Logik-Signal und dient nur zur Steuerung von Routern. Das Signal selbst ist nicht wirklich sichtbar (ein Wunsch für zukünftige REAKTOR-Versionen) und bewirkt im Gegensatz zur primary-Ebene keinen Event, das heißt es schaltet einfach nur; das erscheint auch viel sinnvoller!Eventmanager hat geschrieben:Was soll das Teil leisten?
Im Prinzip soll es simple Signale clippen, die Besonderheit: sobald der Treshold unterschritten ist, soll es auf 0 springen.
Aber irgendwas begreife ich grundsätzlich nicht, bspw. ist es dem Compair-Ausgang verboten sich direkt "zu outen" resp. wird er intern gelb verdrahtet????
Beim Router gehe ich mal davon aus, das er analog zu Prim arbeitet, also bei 0 am Relais 0 ausgibt und bei WAHR den (einzigen!!!) Eingang durchschleift.
Das clip-Makro macht übrigens schon alles, was du wünschst: ciao herw
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- synth doctor
- Beiträge: 273
- Registriert: 25. Juni 2013, 15:26
Re: erstes simpel macro (gescheitert)
Ich hab mich wohl missverständlich ausgedrückt: Es soll bei unterschreitens jedes beliebigem Tresholdes auf Null springen. Das macht der Clipper per se nicht. Er bleibt am TS-Wert stehen.herw hat geschrieben: Die gelbe Verbindung ist ein Logik-Signal und dient nur zur Steuerung von Routern. Das Signal selbst ist nicht wirklich sichtbar (ein Wunsch für zukünftige REAKTOR-Versionen) und bewirkt im Gegensatz zur primary-Ebene keinen Event, das heißt es schaltet einfach nur; das erscheint auch viel sinnvoller!
Das clip-Makro macht übrigens schon alles, was du wünschst:
In Prim erledigt Schalte im Bild das zuverlässig - nur bin ich an dieser simplen Core_umsetzung eben schon gescheitert;-)
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: erstes simpel macro (gescheitert)
Was verbirgt sich im angezeigten screenshot in der corecell? Vielleicht lädst du besser das ensemble hier hoch (eventuell musst du es zippen). Ich bin sicher, dass sich deine Idee sehr einfach realisieren lässt. Mit einem hochgeladenen Beispiel ersparen wir uns viele unnötige Nachfragen; zum Beispiel: soll die Änderung des Tresholds auch eine Eventausgabe bewirken oder soll diese erst erfolgen, wenn ein Event am „Haupteingang” erscheint; hier reagieren nämlich primary und core-Router völlig verschieden. Core ist dort viel flexibler.Eventmanager hat geschrieben:Ich hab mich wohl missverständlich ausgedrückt: Es soll bei unterschreitens jedes beliebigem Tresholdes auf Null springen. Das macht der Clipper per se nicht. Er bleibt am TS-Wert stehen.herw hat geschrieben: Die gelbe Verbindung ist ein Logik-Signal und dient nur zur Steuerung von Routern. Das Signal selbst ist nicht wirklich sichtbar (ein Wunsch für zukünftige REAKTOR-Versionen) und bewirkt im Gegensatz zur primary-Ebene keinen Event, das heißt es schaltet einfach nur; das erscheint auch viel sinnvoller!
Das clip-Makro macht übrigens schon alles, was du wünschst:
In Prim erledigt Schalte im Bild das zuverlässig - nur bin ich an dieser simplen Core_umsetzung eben schon gescheitert;-)
ciao herw
-
- synth doctor
- Beiträge: 273
- Registriert: 25. Juni 2013, 15:26
Re: erstes simpel macro (gescheitert)
IN der Corecell ist lediglich der Clipper aus den Screenies von oben, nix weiter.
Nein, eine TS-Änderung soll KEIN Event erzeugen.
Aber lass mich erstmal selbst probieren, gibt mir bitte nur mal nen Tip, wo ich falsch . Wieso funzt meine Core_schalte nicht, ist doch das gleiche wie in Prim. Ist beim Relais noch irgendwas zu beachten?
Andere Frage: wieso ist es beim Compair sinnvoller, das es kein Event ausgibt? Wenn ich nur den Wahr/Unwahr-Wert brauche, ist es doch ökonomischer das es das Teil auch gleich sendet, statt noch ein extra Modul zu bemühen?
Ein integrierter Stepfilter wäre noch schön.
Nein, eine TS-Änderung soll KEIN Event erzeugen.
Aber lass mich erstmal selbst probieren, gibt mir bitte nur mal nen Tip, wo ich falsch . Wieso funzt meine Core_schalte nicht, ist doch das gleiche wie in Prim. Ist beim Relais noch irgendwas zu beachten?
Andere Frage: wieso ist es beim Compair sinnvoller, das es kein Event ausgibt? Wenn ich nur den Wahr/Unwahr-Wert brauche, ist es doch ökonomischer das es das Teil auch gleich sendet, statt noch ein extra Modul zu bemühen?
Ein integrierter Stepfilter wäre noch schön.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: erstes simpel macro (gescheitert)
warum es sinnvoller ist, dass kein event gesendet wird, da müsste ich jetzt passende Beispiele heraussuchen, aber ich stelle mal die provokante Gegenfrage warum ein routing automatisch einen event senden sollte? Ich denke mal das ist das normale Verhalten. Man darf nicht in den Fehler verfallen, die Einschränkungen, die primary hat als Maßstab nehmen zu wollen.Eventmanager hat geschrieben:IN der Corecell ist lediglich der Clipper aus den Screenies von oben, nix weiter.
Nein, eine TS-Änderung soll KEIN Event erzeugen.
Aber lass mich erstmal selbst probieren, gibt mir bitte nur mal nen Tip, wo ich falsch . Wieso funzt meine Core_schalte nicht, ist doch das gleiche wie in Prim. Ist beim Relais noch irgendwas zu beachten?
Andere Frage: wieso ist es beim Compair sinnvoller, das es kein Event ausgibt? Wenn ich nur den Wahr/Unwahr-Wert brauche, ist es doch ökonomischer das es das Teil auch gleich sendet, statt noch ein extra Modul zu bemühen?
Ein integrierter Stepfilter wäre noch schön.
Für deine Lösung: ich habe eine fertige Schaltung (sogar zwei Lösungen). Aber da du ja selbst forschen willst hier der Tipp:
Nimm anstelle des compare Moduls (das keinen Event sendet) das Logikmakro GT (greater than): es sendet tatsächlich einen event (0/1). Mit einer weiteren Grundrechenart hast du das entsprechende Problem gelöst. In dieser Version sendet es auch, wenn TS geändert wird. Du kannst es aber relativ leicht ändern, wenn du dich mal mit dem Inneren des GT-Makros beschäftigst. Dort wirst du die core-event-logic verstehen.
Ein stepfilter ist das makro dup flt (event processing)
Viel Spaß
herw
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- synth doctor
- Beiträge: 273
- Registriert: 25. Juni 2013, 15:26
Re: erstes simpel macro (gescheitert)
Aja! Dank deiner Schützenhilfe war es tatsächlich simpel. Merci.
Mit TS-Änderung ist übrigens auch interessant: ein Ein-Wert-Seperator! Kann ich auch gebrauchen:)
Missverständnissvorbeugend befinden sich im Screenie noch 2 weitere Module, nur damit wir (eher wohl ich;) nicht Rubens mit Rembrandt verwechseln.
Hier meine Beobachtungen und Vermutungen:
Das (>) Compair ist also anders als sein Pseudo-Pendant in Prim. Das GT entspricht dem Prim-Compare.
Das GT lässt sich nicht mit dem Router-Schalter verbinden, das "compare" hingegen schon (aha, es gibt kleine gelbe Dreiecke als Indikatoren, löblich).
Ich schlussfolger mal, das die Gelben sich nur core-intern bestöpseln lassen und Non-Trigger-"Events" darstellen, die den Schaltzustand VOR der
eigentlichen Werteänderung sicherstellen sollen, richtig?
Ja, mir fallen einige Szenarien, wo das tatsächlich sinnig ist.
Ins GT rein? Ick weeß nich! Ich denke ich bleib erstmal auf der "Instrumenten"-Ebene. In Prim hab ich mich auch so sukzessive vorgewagt, entspricht wohl eher meinem Lernstil.
Ich denke als erstes werd ich die Event- und Logic-Macros VON AUSSEN abklappern. Gute Idee, oder sollte ich vorzugsweise mit was anderem beginnen?
Mit TS-Änderung ist übrigens auch interessant: ein Ein-Wert-Seperator! Kann ich auch gebrauchen:)
Missverständnissvorbeugend befinden sich im Screenie noch 2 weitere Module, nur damit wir (eher wohl ich;) nicht Rubens mit Rembrandt verwechseln.
Hier meine Beobachtungen und Vermutungen:
Das (>) Compair ist also anders als sein Pseudo-Pendant in Prim. Das GT entspricht dem Prim-Compare.
Das GT lässt sich nicht mit dem Router-Schalter verbinden, das "compare" hingegen schon (aha, es gibt kleine gelbe Dreiecke als Indikatoren, löblich).
Ich schlussfolger mal, das die Gelben sich nur core-intern bestöpseln lassen und Non-Trigger-"Events" darstellen, die den Schaltzustand VOR der
eigentlichen Werteänderung sicherstellen sollen, richtig?
Ja, mir fallen einige Szenarien, wo das tatsächlich sinnig ist.
Ins GT rein? Ick weeß nich! Ich denke ich bleib erstmal auf der "Instrumenten"-Ebene. In Prim hab ich mich auch so sukzessive vorgewagt, entspricht wohl eher meinem Lernstil.
Ich denke als erstes werd ich die Event- und Logic-Macros VON AUSSEN abklappern. Gute Idee, oder sollte ich vorzugsweise mit was anderem beginnen?
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: erstes simpel macro (gescheitert)
richtigEventmanager hat geschrieben:Aja! Dank deiner Schützenhilfe war es tatsächlich simpel. Merci.
Mit TS-Änderung ist übrigens auch interessant: ein Ein-Wert-Seperator! Kann ich auch gebrauchen:)
Missverständnissvorbeugend befinden sich im Screenie noch 2 weitere Module, nur damit wir (eher wohl ich;) nicht Rubens mit Rembrandt verwechseln.
Hier meine Beobachtungen und Vermutungen:
Das (>) Compair ist also anders als sein Pseudo-Pendant in Prim. Das GT entspricht dem Prim-Compare.
Das GT lässt sich nicht mit dem Router-Schalter verbinden, das "compare" hingegen schon (aha, es gibt kleine gelbe Dreiecke als Indikatoren, löblich).
Ich schlussfolger mal, das die Gelben sich nur core-intern bestöpseln lassen
falsch; es gilt auch immer die Gleichzeitigkeit!und Non-Trigger-"Events" darstellen, die den Schaltzustand VOR
ganz falsch! diese Logik Makros sind fundamental einfach und erläutern sehr gut die core Denkweiseder
eigentlichen Werteänderung sicherstellen sollen, richtig?
Ja, mir fallen einige Szenarien, wo das tatsächlich sinnig ist.
Ins GT rein? Ick weeß nich! Ich denke ich bleib erstmal auf der "Instrumenten"-Ebene. In Prim hab ich mich auch so sukzessive vorgewagt, entspricht wohl eher meinem Lernstil.
Ich denke als erstes werd ich die Event- und Logic-Macros VON AUSSEN abklappern.
gute Idee and RTFcoreM it's one of the bestGute Idee, oder sollte ich vorzugsweise mit was anderem beginnen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- synth doctor
- Beiträge: 273
- Registriert: 25. Juni 2013, 15:26
Re: erstes simpel macro (gescheitert)
Gleichzeitigkeit ist ein theoretisches konstrukt, in der Praxis gibts das nicht mal auf der Quantenebene. Sofern mich nicht alles täuscht ist die Planck-Zeit das letzte Interval kontinuierlicher Zeit, darunter findet Zeit quantisiert, gewissermassen als kosmologische Samplerate statt, mit dem Ergebniss das 2 kohärente Ereignisse unterhalb der Planck-Einheit (nach heutigem Wissen) nie simultan, sondern stets sukzessive auftreten. Für die kontinuierliche Zeit gilt das ohnehin.
In der Praxis irrelevant, ich wollt nur mal auf die Kacke hauen;) Betrachten wir alles, innerhalb eines Sampletrate-Taktes Stattfindendes als "gleichzeitig", dann hab ich das so verstanden, das in einer Corecell, vom moment eines "Trigger-Events" alle darin befindlichen (non-Trigger) Events ihre "Sub-Event-Aktionen" durchführen, also quasi gleichzeitig, ein Ergebniss aber erst beim nächsten "Trigger" an die Aussenwelt geliefert wird. Ist das so ungefähr richtig?
-----------------
Ja, deine Lösung 3 ist natürlich viel effizienter - typischer Fall von Wald vor Bäumen;-)
_________________
Ich hab mir mal das Flipflop gefittichet und wollte es mit nem Reset versehen, der sicherstellt, das (falls) resetet hinten auf jeden Fall das Reset-Value anliegt (egal ob da nun gerade 0 oder 1 anlag).
in meinem kurzen Praxistext funzt es, aber wirf mal sicherheitshalber bitte ein Blick drauf.
BTW: Das türkise Draht zwischen dem read/write, ist doch ein bidirektionaler Strang, also HIn-und Rückverkabelung in einem, etwas das "gleichzeitig" stattfindet?
In der Praxis irrelevant, ich wollt nur mal auf die Kacke hauen;) Betrachten wir alles, innerhalb eines Sampletrate-Taktes Stattfindendes als "gleichzeitig", dann hab ich das so verstanden, das in einer Corecell, vom moment eines "Trigger-Events" alle darin befindlichen (non-Trigger) Events ihre "Sub-Event-Aktionen" durchführen, also quasi gleichzeitig, ein Ergebniss aber erst beim nächsten "Trigger" an die Aussenwelt geliefert wird. Ist das so ungefähr richtig?
-----------------
Ja, deine Lösung 3 ist natürlich viel effizienter - typischer Fall von Wald vor Bäumen;-)
_________________
Ich hab mir mal das Flipflop gefittichet und wollte es mit nem Reset versehen, der sicherstellt, das (falls) resetet hinten auf jeden Fall das Reset-Value anliegt (egal ob da nun gerade 0 oder 1 anlag).
in meinem kurzen Praxistext funzt es, aber wirf mal sicherheitshalber bitte ein Blick drauf.
BTW: Das türkise Draht zwischen dem read/write, ist doch ein bidirektionaler Strang, also HIn-und Rückverkabelung in einem, etwas das "gleichzeitig" stattfindet?
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: erstes simpel macro (gescheitert)
es gibt dann noch die QuantenverschränkungGleichzeitigkeit ist ein theoretisches konstrukt, in der Praxis gibts das nicht mal auf der Quantenebene. Sofern mich nicht alles täuscht ist die Planck-Zeit das letzte Interval kontinuierlicher Zeit, darunter findet Zeit quantisiert, gewissermassen als kosmologische Samplerate statt, mit dem Ergebniss das 2 kohärente Ereignisse unterhalb der Planck-Einheit (nach heutigem Wissen) nie simultan, sondern stets sukzessive auftreten.
falsch, da zwischen zwei samplerate-Ticks noch jede Menge zusätzlicher Events stattfinden können und auch wirken. Dafür ist es wichtig, den Gleichzeitigkeitsgrundsatz zu kennen. Alles, was durch dieselbe Quelle erzeugt wurde, wird als logisch gleichzeitig angesehen, d.h. jeder berechnete Wert im Anschluss findet formal gleichzeitig statt. Beachte, dass Audiocorecells sowohl event- wie auch audio-Eingänge haben. Abgesehen davon, dass die event-Eingänge nur auf einzelne events reagiern, können die audioeingänge zusätzlich zu den audio-getakteten audio-events auch noch die normalen events verarbeiten. Lediglich der Ausgang einer audio-core-cell ist durch die sample-rate getaktet. Trotzdem kann man die zusätzlichen events herausfiltern. Gerald List hat ein solches Makro entwickelt und dann gibt's ja noch den ACEW (audiocoreeventwatcher), der auf Geralds Idee aufbaut.Für die kontinuierliche Zeit gilt das ohnehin.
In der Praxis irrelevant, ich wollt nur mal auf die Kacke hauen;) Betrachten wir alles, innerhalb eines Sampletrate-Taktes Stattfindendes als "gleichzeitig", dann hab ich das so verstanden, das in einer Corecell, vom moment eines "Trigger-Events" alle darin befindlichen (non-Trigger) Events ihre "Sub-Event-Aktionen" durchführen, also quasi gleichzeitig, ein Ergebniss aber erst beim nächsten "Trigger" an die Aussenwelt geliefert wird. Ist das so ungefähr richtig?
hab ich jetzt gerade keine Lust zu, da ich Freitag und Samstag durchgearbeitet habe und eigentlich völlig platt bin.-----------------
Ja, deine Lösung 3 ist natürlich viel effizienter - typischer Fall von Wald vor Bäumen;-)
_________________
Ich hab mir mal das Flipflop gefittichet und wollte es mit nem Reset versehen, der sicherstellt, das (falls) resetet hinten auf jeden Fall das Reset-Value anliegt (egal ob da nun gerade 0 oder 1 anlag).
in meinem kurzen Praxistext funzt es, aber wirf mal sicherheitshalber bitte ein Blick drauf.
BTW: Das türkise Draht zwischen dem read/write, ist doch ein bidirektionaler Strang, also HIn-und Rückverkabelung in einem, etwas das "gleichzeitig" stattfindet?|/quote] bidirektional ist nicht ganz richtig, da schon die Anordnung der write und read-Module wichtig ist. Du musst hierzu das Core Manual unbedingt lesen. Es kann hier durch ungünstige Verkabelungen auch zu Widersprüchen kommen. Da arbeitet NI dran; ist aber für sehr vertrackte Rückkoppelungen äußerst schwierig. Die meisten Benutzer bemerken dies aber gar nicht, da die Strukturen viele einfacher sind.
Zum Thema Nicht-Gleichzeitigkeit gibt einen immer wieder frischen Thread und mit leidenschaftlicher Diskussion zwischen meinem Freund Gerald List (Krümelmonster, cookiemonster) und mir. Ich weiß nicht wie viele Wochen wir darüber uns schon bei viel Kaffee und gutem Essen die Köpfe heiß geredet haben.
Manchmal glaubten wir die Geichzeitigkeit überlistet zu haben, doch dann war REAKTOR mal wieder bockig. Das, was hier angesprochen wird, ist aber völlig klar und unproblematisch.
ciao herw
-
- synth doctor
- Beiträge: 273
- Registriert: 25. Juni 2013, 15:26
Re: erstes simpel macro (gescheitert)
Ok, zwischen 2 Samplerate-Takten, passen noch ein paar CPU-Schleifen, da hast du natürlich Gott sei Dank Recht.
FORMAL gleichzeitig klingt sehr gut. Schön Gesprochen!
Andere Frage: Das Read/Write-Gespann - wenn ich das Value-Modul öffnen könnte, würde es doch genau lediglich aus diesen beiden Elementen bestehen, oder?
Jedenfalls hab ich es so gebaut und es hat (zumindest nach ersten Versuchen) genau die Value-Modul Funktionalität.
PS: Ja, ja, ich schreite ganz gemächlich vorran;)
FORMAL gleichzeitig klingt sehr gut. Schön Gesprochen!
Andere Frage: Das Read/Write-Gespann - wenn ich das Value-Modul öffnen könnte, würde es doch genau lediglich aus diesen beiden Elementen bestehen, oder?
Jedenfalls hab ich es so gebaut und es hat (zumindest nach ersten Versuchen) genau die Value-Modul Funktionalität.
PS: Ja, ja, ich schreite ganz gemächlich vorran;)
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: erstes simpel macro (gescheitert)
es heißt nicht formal gleichzeitig, sondern logisch gleichzeitig D.h. die Schaltung wird, egal wie kompliziert sie ist, nur in Abhängigkeit des erzeugenden events berechnet.Eventmanager hat geschrieben:Ok, zwischen 2 Samplerate-Takten, passen noch ein paar CPU-Schleifen, da hast du natürlich Gott sei Dank Recht.
FORMAL gleichzeitig klingt sehr gut. Schön Gesprochen!
Andere Frage: Das Read/Write-Gespann - wenn ich das Value-Modul öffnen könnte, würde es doch genau lediglich aus diesen beiden Elementen bestehen, oder?
Jedenfalls hab ich es so gebaut und es hat (zumindest nach ersten Versuchen) genau die Value-Modul Funktionalität.
PS: Ja, ja, ich schreite ganz gemächlich vorran;)
Aber egal, hier noch zwei wichtige Zusätze:
- Die Speicher müssen von der gleichen Art (integer oder float) sein, damit man die OBC-Verbindung aufbauen kann.
- Möchtest du den Speicher initialisieren, dann baut man als erstes Glied noch ein write-Modul mit einer Konstanten ein, ansonsten wird der Speicher immer auf 0 initialisiert. ciao herw
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- synth doctor
- Beiträge: 273
- Registriert: 25. Juni 2013, 15:26
Re: erstes simpel macro (gescheitert)
Danke. Jo, die Init-Funktion kann ich wohl demnächst gebrauchen, siehe hier: http://www.reaktor-forum.de/viewtopic.php?f=9&t=984
Das Integer schlecht "aufwärtskompatibel" ist leuchtet ein, aber Float nicht "abwärtskompatibel"?
Egal, guter Tip, ich werde sorgsam drauf achten.
Das Integer schlecht "aufwärtskompatibel" ist leuchtet ein, aber Float nicht "abwärtskompatibel"?
Egal, guter Tip, ich werde sorgsam drauf achten.