SVA: self iteration nerv
Moderator: herw
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
SVA: self iteration nerv
das SVA bietet ja die praktische lösung des self iteration: bei jedem init, snapwechsel, etc. werden die einzelnen idx-zellen der arrays ausgelesen/ausgegeben. so gut so fein. nur leider hat das dingens die angewohnheit, einmal stur durchzulesen und dann zu stoppen, anstelle den aktuellen idx noch "hintendran" erneut auszugeben.
das fatale ist, das die self-itze "gleichzeitig" stattfindet, wenn der wert, der an den idx-port gesendet wird, eintrifft.
der idx-port braucht also einen erneuten trigger, damit auch nutella rauskommt.
es ist nicht trivial das sauber hinzubiegen. unsauber gehts mit nem 1ms delay vorm idx.
die frage aber bleibt: muss das so sein? können nich alle slef-itzes und andere "abhängigkeits-inits" nicht einfach VOR dem rest stattfinden und gut ist?
das fatale ist, das die self-itze "gleichzeitig" stattfindet, wenn der wert, der an den idx-port gesendet wird, eintrifft.
der idx-port braucht also einen erneuten trigger, damit auch nutella rauskommt.
es ist nicht trivial das sauber hinzubiegen. unsauber gehts mit nem 1ms delay vorm idx.
die frage aber bleibt: muss das so sein? können nich alle slef-itzes und andere "abhängigkeits-inits" nicht einfach VOR dem rest stattfinden und gut ist?
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: SVA: self iteration nerv
das ist zu allgemein, lade mal ein Beispiel hier hoch, dann kann man konkret den Ablauf sehen.helmsklamm hat geschrieben:das SVA bietet ja die praktische lösung des self iteration: bei jedem init, snapwechsel, etc. werden die einzelnen idx-zellen der arrays ausgelesen/ausgegeben. so gut so fein. nur leider hat das dingens die angewohnheit, einmal stur durchzulesen und dann zu stoppen, anstelle den aktuellen idx noch "hintendran" erneut auszugeben.
das fatale ist, das die self-itze "gleichzeitig" stattfindet, wenn der wert, der an den idx-port gesendet wird, eintrifft.
der idx-port braucht also einen erneuten trigger, damit auch nutella rauskommt.
es ist nicht trivial das sauber hinzubiegen. unsauber gehts mit nem 1ms delay vorm idx.
die frage aber bleibt: muss das so sein? können nich alle slef-itzes und andere "abhängigkeits-inits" nicht einfach VOR dem rest stattfinden und gut ist?
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
kannste dir ganz schnell selber machen:
das SVA hat vorne und hinten nen idx-port. mach dir schnell eins, mit sagen wir 5 "zellen" (speicherplätze pro array). häng ans bugteil ne konstnate >5 und ans heckteil n numeric. jetzt "inite" irgendwie.
hinten liegt immer 5 an unabhängig davon welche konstante vorne anliegt. das heisst, das auch diese zelle aktuell hinten rauskommt und NICHT die durchs idx gewünschte. kannst ja beides auch eventwatchen.
als fix kannst dir jetzt das delay hinter die konstante hängen, dann gehts. anstelle delay kannste auch n hold (H = unbeschaltet) und dahinter das trig/value nehmen (verzögert, glaub ich, nur ein event und dürfte ressourcenfreundlicher sein).
wenn mans weiss, is es schnell zu fixen, uU sucht man sich aber esrt n wolf. das gewünschte verhalten entspricht der intuitiven erwartung, und gehört ins modul oder zumindest in die beschreibung dazu.
das SVA hat vorne und hinten nen idx-port. mach dir schnell eins, mit sagen wir 5 "zellen" (speicherplätze pro array). häng ans bugteil ne konstnate >5 und ans heckteil n numeric. jetzt "inite" irgendwie.
hinten liegt immer 5 an unabhängig davon welche konstante vorne anliegt. das heisst, das auch diese zelle aktuell hinten rauskommt und NICHT die durchs idx gewünschte. kannst ja beides auch eventwatchen.
als fix kannst dir jetzt das delay hinter die konstante hängen, dann gehts. anstelle delay kannste auch n hold (H = unbeschaltet) und dahinter das trig/value nehmen (verzögert, glaub ich, nur ein event und dürfte ressourcenfreundlicher sein).
wenn mans weiss, is es schnell zu fixen, uU sucht man sich aber esrt n wolf. das gewünschte verhalten entspricht der intuitiven erwartung, und gehört ins modul oder zumindest in die beschreibung dazu.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
hä? die bastel-anleitung sind 3 kurze sätze:
"das SVA hat vorne und hinten nen idx-port. mach dir schnell eins, mit sagen wir 5 "zellen" (speicherplätze pro array). häng ans bugteil ne konstnate >5 und ans heckteil n numeric."
das geht mit nem screeni niemals schneller, da du auch da erklärungen hinzufügen musst.
"das SVA hat vorne und hinten nen idx-port. mach dir schnell eins, mit sagen wir 5 "zellen" (speicherplätze pro array). häng ans bugteil ne konstnate >5 und ans heckteil n numeric."
das geht mit nem screeni niemals schneller, da du auch da erklärungen hinzufügen musst.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
ich meinte auch kein screeny sondern ein ensemble. Ich bastele mich hier nämlich noch wund, wenn ich alles nachbaue.helmsklamm hat geschrieben:hä? die bastel-anleitung sind 3 kurze sätze:
"das SVA hat vorne und hinten nen idx-port. mach dir schnell eins, mit sagen wir 5 "zellen" (speicherplätze pro array). häng ans bugteil ne konstnate >5 und ans heckteil n numeric."
das geht mit nem screeni niemals schneller, da du auch da erklärungen hinzufügen musst.
Laden ist viel angenehmer.
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
- toxonic
- synth professor
- Beiträge: 322
- Registriert: 2. Januar 2007, 20:46
- Wohnort: Stuttgart
- Kontaktdaten:
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
wie du siehst liegt hinten bei idx als letztes 5 an. ich sehe also das du 5 zellen definiert hast und für zelle 5 (aber auch alle anderen) ist in diesem snap der wert 0.5 gespeichert.
leider hast du vorne ne konstante die höher als mögliche idxiez ist.
- mein fehler ich meinte natürlich <5 - sorry.
in diesem falle, nehmen wir 3, würdest du hinten trotzdem idx # 5 als letzter wert ausgelesen und gehalten, obwohl du vorne 3 spezifiziert hättest. und nehmen wir an, dein gespeicherter wert für idx #3 wäre ungleich 0.5, wie diener für # 5 ist, hättest du hinten am out nen "falschen" wert.
das ist (war) "mein" problem.
wie gesagt, es lässt sich ja mit ner event-verzögerung leicht beheben, aber bis ich die ursache gefunden und gefixt hatte, war wieder ne stunde lebenszeit UNNÖTIG weg.
@tox: kommste wirklich nicht drauf, wozu man das brauchen könnte?
leider hast du vorne ne konstante die höher als mögliche idxiez ist.
- mein fehler ich meinte natürlich <5 - sorry.
in diesem falle, nehmen wir 3, würdest du hinten trotzdem idx # 5 als letzter wert ausgelesen und gehalten, obwohl du vorne 3 spezifiziert hättest. und nehmen wir an, dein gespeicherter wert für idx #3 wäre ungleich 0.5, wie diener für # 5 ist, hättest du hinten am out nen "falschen" wert.
das ist (war) "mein" problem.
wie gesagt, es lässt sich ja mit ner event-verzögerung leicht beheben, aber bis ich die ursache gefunden und gefixt hatte, war wieder ne stunde lebenszeit UNNÖTIG weg.
@tox: kommste wirklich nicht drauf, wozu man das brauchen könnte?
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: SVA: self iteration nerv
Was ist daran schlimm; das Modul gibt seinen kompletten Inhalt bei einer Initialisierung aus, dafür ist es gedacht und genau so funktioniert die Self-Iteration. Wenn Du zusätzlich einen bestimmten Wert auslesen möchtest, dann ist das Deine Aufgabe, das zu organisieren. Nicht alle möglichen Anwendungen lassen sich vorhersehen. Ich will nur mal als mögliche andere Aufgabe angeben, dass vielleicht jemand anderer nur jede zweiten Wert benötigt oder gar die Werte unbedingt rückwärts ausgegeben haben möchte. Das muss der User selbst regeln.helmsklamm hat geschrieben:das SVA bietet ja die praktische lösung des self iteration: bei jedem init, snapwechsel, etc. werden die einzelnen idx-zellen der arrays ausgelesen/ausgegeben. so gut so fein. nur leider hat das dingens die angewohnheit, einmal stur durchzulesen und dann zu stoppen, anstelle den aktuellen idx noch "hintendran" erneut auszugeben.
das mit nutella verstehe ich nicht. Ich weiß auch nicht, wieso das nicht einfach hinzubiegen ist, du musst doch nur mit einem Compare und ein oder zwei Routern den gewünschten Wert bei der self interation herausfiltern und dann hast Du es; das sind drei triviale Module und sechs Kabelverbindungen ( sorry den Seitenhieb kann ich mir nicht verkneifen).das fatale ist, das die self-itze "gleichzeitig" stattfindet, wenn der wert, der an den idx-port gesendet wird, eintrifft.
der idx-port braucht also einen erneuten trigger, damit auch nutella rauskommt.
es ist nicht trivial das sauber hinzubiegen. unsauber gehts mit nem 1ms delay vorm idx.
ich weiß nicht, was du mit vorher meinst; wenn ich das so herausfiltere wie oben beschrieben und das mit der Ausgabe beim eventwatcher vergleiche, werden doch zunächst der Index und dann der passende Wert ausgegeben.die frage aber bleibt: muss das so sein? können nich alle slef-itzes und andere "abhängigkeits-inits" nicht einfach VOR dem rest stattfinden und gut ist?
Also alles funktioniert so, wie es gut ist, und völlig ordentlich. Ich kann keinen Makel finden.
- toxonic
- synth professor
- Beiträge: 322
- Registriert: 2. Januar 2007, 20:46
- Wohnort: Stuttgart
- Kontaktdaten:
nee, ehrlich gesagt, es leuchtet mir nicht ein.... evtl. um bei der initialisierung gleich die gespeicherten werte in nen table zu schreiben? das wäre ne möglichkeit, aber da fällt mir jetzt keine praktische anwendung für ein... oder doch? meinst du sowas?@tox: kommste wirklich nicht drauf, wozu man das brauchen könnte?
also, wenn es den zweck erfüllen soll, ist ja wohl auch klar, warum das sva array diesen auslesevorgang WÄHREND der initialisierung machen muss und nicht VORHER! demnach is die lösung mit dem delay doch auch ganz ok!
btw: habs noch net ausprobiert.... geht das auch mit nem unit delay? wahrscheinlich nicht, oder?
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
@helmsklammtoxonic hat geschrieben:nee, ehrlich gesagt, es leuchtet mir nicht ein.... evtl. um bei der initialisierung gleich die gespeicherten werte in nen table zu schreiben? das wäre ne möglichkeit, aber da fällt mir jetzt keine praktische anwendung für ein... oder doch? meinst du sowas?@tox: kommste wirklich nicht drauf, wozu man das brauchen könnte?
also, wenn es den zweck erfüllen soll, ist ja wohl auch klar, warum das sva array diesen auslesevorgang WÄHREND der initialisierung machen muss und nicht VORHER! demnach is die lösung mit dem delay doch auch ganz ok!
btw: habs noch net ausprobiert.... geht das auch mit nem unit delay? wahrscheinlich nicht, oder?
ich versteh auch nicht die Sache mit dem Delay. Willst Du nun einen bestimmten Wert bei der Intialisierung haben oder was? Mit Raterei kommen wir hier nicht weiter.
Zuletzt geändert von herw am 9. September 2007, 19:35, insgesamt 1-mal geändert.
- toxonic
- synth professor
- Beiträge: 322
- Registriert: 2. Januar 2007, 20:46
- Wohnort: Stuttgart
- Kontaktdaten:
nun, so wie ich das verstehe, will er wohl, das, wie bei self-iteration vorgesehen, die werte bei init alle ausgelesen werden (um z.b. damit einen eventtable oder was weis ich auch immer zu beschreiben...) und anschliessend die per index angewählte zelle ausgelesen wird!
da das snap value array aber, wie der name schon sagt, zum abspeichern von werten innerhalb eines snapshots dient, brauchst du ja im prinzip nur die ganze sache mit dem gewünschten index input wert als snap zu speichern und fertig, dann wird beim nächsten aufruf des snaps und der damit verbundenen initialisierung am schluss der self-iteration der im snap gespeicherte wert ausgegeben? oder?
wenn dir das so nicht gefällt, musst du wahrscheinlich auf die delay version zurückgreifen, das funktioniert ja so, wie du's willst! eine andere möglichkeit sehe ich da erstmal nicht, ich habe die modulproperties soweit alle durchgecheckt, im modul selber wirst du da keine lösung finden, denke ich!
da das snap value array aber, wie der name schon sagt, zum abspeichern von werten innerhalb eines snapshots dient, brauchst du ja im prinzip nur die ganze sache mit dem gewünschten index input wert als snap zu speichern und fertig, dann wird beim nächsten aufruf des snaps und der damit verbundenen initialisierung am schluss der self-iteration der im snap gespeicherte wert ausgegeben? oder?
wenn dir das so nicht gefällt, musst du wahrscheinlich auf die delay version zurückgreifen, das funktioniert ja so, wie du's willst! eine andere möglichkeit sehe ich da erstmal nicht, ich habe die modulproperties soweit alle durchgecheckt, im modul selber wirst du da keine lösung finden, denke ich!
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
ich verstehe immer noch nicht wozu das delay sein soll. Ich kann doch den Wert, den ich haben möchte zusätzlich herausfiltern und mit dem abschließenden GateOff-Befehl des SVA ausgeben; da braucht man kein delay. Das SVA bietet doch diesen Luxus und die Speicherung des Indexwertes durch ein normales snap ist doch absolut ok und im Sinne des Erfinders.toxonic hat geschrieben:nun, so wie ich das verstehe, will er wohl, das, wie bei self-iteration vorgesehen, die werte bei init alle ausgelesen werden (um z.b. damit einen eventtable oder was weis ich auch immer zu beschreiben...) und anschliessend die per index angewählte zelle ausgelesen wird!
da das snap value array aber, wie der name schon sagt, zum abspeichern von werten innerhalb eines snapshots dient, brauchst du ja im prinzip nur die ganze sache mit dem gewünschten index input wert als snap zu speichern und fertig, dann wird beim nächsten aufruf des snaps und der damit verbundenen initialisierung am schluss der self-iteration der im snap gespeicherte wert ausgegeben? oder?
wenn dir das so nicht gefällt, musst du wahrscheinlich auf die delay version zurückgreifen, das funktioniert ja so, wie du's willst! eine andere möglichkeit sehe ich da erstmal nicht, ich habe die modulproperties soweit alle durchgecheckt, im modul selber wirst du da keine lösung finden, denke ich!