SVA: self iteration nerv

Warum funktioniert ein bestimmtes Modul nicht so, wie man es sich vorstellt? Hier kann man Dampf ablassen.

Moderator: herw

helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

SVA: self iteration nerv

Beitrag von helmsklamm »

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?
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Re: SVA: self iteration nerv

Beitrag von herw »

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?
das ist zu allgemein, lade mal ein Beispiel hier hoch, dann kann man konkret den Ablauf sehen.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

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.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

also nee, da ist die Beschreibung ja länger als das fixe "Selbermachen"
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

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.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

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.
ich meinte auch kein screeny sondern ein ensemble. Ich bastele mich hier nämlich noch wund, wenn ich alles nachbaue.
Laden ist viel angenehmer.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

aber auch hier wieder: das ganze ist schneller gebaut als gedownt, entzippt, verschoben und geladen.

aber in zukunft, wenns mehr als 3 strippen sind, mach ichs.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

mhh, ja - haste recht..... aber welchen zweck erfüllt die self-iteration eigentlich? wozu alle werte im array beim init lesen und ausgeben?
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

und was ist jetzt dein Problem?
SVA.gif
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

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?
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Re: SVA: self iteration nerv

Beitrag von herw »

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.
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.
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.
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).
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?
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.
Also alles funktioniert so, wie es gut ist, und völlig ordentlich. Ich kann keinen Makel finden.
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

@tox: kommste wirklich nicht drauf, wozu man das brauchen könnte?
:? 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?
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?
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

toxonic hat geschrieben:
@tox: kommste wirklich nicht drauf, wozu man das brauchen könnte?
:? 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?
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?
@helmsklamm

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.
Benutzeravatar
toxonic
synth professor
Beiträge: 322
Registriert: 2. Januar 2007, 20:46
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von toxonic »

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!
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

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!
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.
Antworten