1 seperator, 1000 fragen

Diskussionsforum für Fragen zur Struktur und Implementation in REAKTOR, auch DSP, Literatur und begleitende Software

Moderator: herw

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

1 seperator, 1000 fragen

Beitrag von helmsklamm »

ok, vielleicht nich ganz soviel, dafür aber grundsätzliche, denn irgendwie is der seperaotor (in folge seppel) alles andere als intuitiv.

hier 2 probs

#1:
ich versuche mithilfe eines seppels ein signal auf 2 ziele zu routen. das signal hat ne range von -1 bis 1; am seppel ne 0-konstante als grenzwert-markierung. es funzt auch: signale <0 gehen ans low und höhere ans hi. allerdings "nullt" sich der seperator immer nur am lo-ausgang. im klartext: ich hab nen seqeunzstep der bspw. 0,4 ausspukt, der nächste step geht aber wieder auf 0 zurück. nun erwarte ich eigentlich, das der wert am seppel ebenfalls auf 0 zurückspringt, tut er aber nicht. im "negativen" bereich und somit am anderen ausgang macht er es, wie gewünscht.
wenn ich nun den treshold ändere bspw. auf -0.09 ist es umgedreht, dann bekommt zwar der hi-ausgang die "default" werte, der "negativ" ausgang aber nicht.
bei wohlwollender betrachtung kann man dieses verhalten auch als "erwartet" bezeichnen, da der schwellwert als solcher undefiniert ist und demzu das signal auch nur zugunsten einer richtung interpretiert wird. <- aber dann dürfte zumindest nachfolgendes prob überhaupt nich auftreten:

#2:
um zu verhindern, das ein signal einen maximalwert überschreitet, sollte man eigentlich annehmen, das der seppel das "in sich" löst. tur er aber auch nur umwegig.
bsp: resonance soll nie >0.98 sein, also sollte man glauben, ne demenstprechende konstante am seppel rangeklemmt und gut. aber auch hier "defaultet" sich das teil nich, oder noch verwirrender: die modulation wird überhaupt nich weitergeleitet, wenn das grundsignal und das addierte mod-seppel-signal insgesamt größer als der schwellwert ist. bsp:
grundsignal =70, mod = +30, das entspricht 0.02 mehr als dem erlaubten 0.98. in diesem fall passiert schlichtweg garnichts, bzw. wird einfach 0 hinzuaddiert anstatt bis zum erlaubten zu gehen und nur werte drüber zu cutten.
erst ne ziemlich umwegige lösung (mit nem value und nem merge dahinter) bringt das gewünschte ergebniss.

ich galube ich verstehe irgendwas grundlegend am seppel falsch, aber was?
vielleicht könnte das mal jemand erhellen? danke.
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: 1 seperator, 1000 fragen

Beitrag von herw »

helmsklamm hat geschrieben:ok, vielleicht nich ganz soviel, dafür aber grundsätzliche, denn irgendwie is der seperaotor (in folge seppel) alles andere als intuitiv.

hier 2 probs

#1:
ich versuche mithilfe eines seppels ein signal auf 2 ziele zu routen. das signal hat ne range von -1 bis 1; am seppel ne 0-konstante als grenzwert-markierung. es funzt auch: signale <0 gehen ans low und höhere ans hi. allerdings "nullt" sich der seperator immer nur am lo-ausgang. im klartext: ich hab nen seqeunzstep der bspw. 0,4 ausspukt, der nächste step geht aber wieder auf 0 zurück. nun erwarte ich eigentlich, das der wert am seppel ebenfalls auf 0 zurückspringt, tut er aber nicht. im "negativen" bereich und somit am anderen ausgang macht er es, wie gewünscht.
wenn ich nun den treshold ändere bspw. auf -0.09 ist es umgedreht, dann bekommt zwar der hi-ausgang die "default" werte, der "negativ" ausgang aber nicht.
bei wohlwollender betrachtung kann man dieses verhalten auch als "erwartet" bezeichnen, da der schwellwert als solcher undefiniert ist und demzu das signal auch nur zugunsten einer richtung interpretiert wird. <- aber dann dürfte zumindest nachfolgendes prob überhaupt nich auftreten:

#2:
um zu verhindern, das ein signal einen maximalwert überschreitet, sollte man eigentlich annehmen, das der seppel das "in sich" löst. tur er aber auch nur umwegig.
bsp: resonance soll nie >0.98 sein, also sollte man glauben, ne demenstprechende konstante am seppel rangeklemmt und gut. aber auch hier "defaultet" sich das teil nich, oder noch verwirrender: die modulation wird überhaupt nich weitergeleitet, wenn das grundsignal und das addierte mod-seppel-signal insgesamt größer als der schwellwert ist. bsp:
grundsignal =70, mod = +30, das entspricht 0.02 mehr als dem erlaubten 0.98. in diesem fall passiert schlichtweg garnichts, bzw. wird einfach 0 hinzuaddiert anstatt bis zum erlaubten zu gehen und nur werte drüber zu cutten.
erst ne ziemlich umwegige lösung (mit nem value und nem merge dahinter) bringt das gewünschte ergebniss.

ich galube ich verstehe irgendwas grundlegend am seppel falsch, aber was?
vielleicht könnte das mal jemand erhellen? danke.
Es ist durch deine Beschreibung schwer nachzuvollziehen, wo genau der Denkfehler liegt, denn ich glaube, dass das vermeintlich fehlerhafte Verhalten in der Denkweise liegt. Meistens wird nicht beachtet, dass Events und deren Berechnung (hier die Addition von 70%+30%=100%>0,98 ), ja intern zu zwei events führen können. Also poste doch mal hier ein super einfaches Beispiel, das deine Beobachtung nachvollziehbar macht. Dann lässt sich viel konkreter und praktisch verwertbarer antworten.

ciao herw
magneton
synth doctor
Beiträge: 263
Registriert: 17. April 2006, 13:00
Wohnort: mannheim

Beitrag von magneton »

eine gute idee ist es auf jeden fall probeweise den event watcher überall anzusetzen um zu sehen ob es sich wirklich um einzelne events, einen event stream (takt = control rate) oder um mehrfach getriggerte events handelt.
ich kann nur aus erfahrung berichten, dass manche konstruktionen einen massiven einsatz von seperatoren, stepfiltern u.ä. erzwingen um die operation zu erhalten, die man sich vorstellt.

vor augen halten sollte man sich immer, dass reaktor unablässig zahlen produziert; x-fach; und man diesen strom für bestimmte anwendungen eingrenzen und umleiten muss.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

@magnet:
jup, schonklar, sobald irgentwas nich funzt, is der eventwatcher der erste schritt.

@herw:
das verhalten, das ich meine is vielleicht am einfachsten mit folgender versuchsanordnung erklärbar:

nimm nen seppel, lass treshold frei (ergo 0) und nen knob 1/-1. wenn du nun den knob ins porsitive drehst, erhälst du am hi-out den korrespondierenden, positiven wert. drehst du den knob ins negative erhäslt du schlussendlich den letzmöglich kleinsten wert über null, den der knob ausgegeben hat (ist stepsize bspw. auf 100 gesetzt, erhälst du auch tatsächlich 0). soweit sogut.
nun das verhalten, das ich oben meinte, der einfachheit halber so erklärt:
ersetze den knob mit nem button (1/-1). beim einschalten des buttons erhälst du wie erwartet ne 1 am hi-out. beim ausschalteten aber (also n trigger definitiv unterhalb des treshold 0), bleibt der wert 1 trotzdem am hi-out erhalten.
logisch und wünschenswert wäre für mich aber wenn die IN-werte die per sprung zu einem tieferen wert als der treshold führen (in diesem fall -1), dabei auf jeden fall den "gedacht-bewegten" tresh-wert setzen würden (in diesem fall 0).

unter intuitiv verstehe ich: wenn ich von 1 zu -1 drehe oder springe, in jedem fall setze ich "gleichzeitig" auch automatisch alle zwischenschritte. nur der seppel versteht das aber, bspw. im falle eines buttons eben anders.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
magneton
synth doctor
Beiträge: 263
Registriert: 17. April 2006, 13:00
Wohnort: mannheim

Beitrag von magneton »

helmsklamm hat geschrieben:(...) beim ausschalteten aber (...), bleibt der wert 1 trotzdem am hi-out erhalten.
da sieht man aber sehr schön wie die eventverarbeitung in reaktor funktioniert. der wert bleibt aber nicht "erhalten"; es wird der letzte event der durch diesen port ging angezeigt. das ist richtig und gut so, denn ansonsten würden mehr oder minder komplexe logikschaltungen unnötig kompliziert.
wenn man den button betätigt wird genau ein event gesendet. dieses eine event geht durch den seperator - eben durch hi oder lo. der seperator selbst erzeugt keine events, gottseidank.
wenn Du aber ein event mit dem wert "0" unbedingt brauchst, kannst Du Dir behelfen, indem Du ein "logic NOT" modul, evtl. zusammen mit einem "merge" modul einsetzt.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

magneton hat geschrieben: da sieht man aber sehr schön wie die eventverarbeitung in reaktor funktioniert. der wert bleibt aber nicht "erhalten"; es wird der letzte event der durch diesen port ging angezeigt.
nee, da sieht man sehr schön wie die eventverabreitung in reaktor NICHT funktioniert: bei jedem (?) anderen modul, das ne art "treshold" als quasi "relais-trigger" nutzt ist es anders. n logic-modul sendet bei ALLEN werten =/<0 den entgegengesetzten wert, völlig egal ob da -32,7 oder exakt 0 anliegt. dasgleiche beim relais, beim multipic (mit 2 zuständen), etc. - sobald n bestimmter wert unter(über)schritten is, wird der jeweils andere zustand gesendet, unabhängig davon ob der "treshold" mit dem exakten value anliegt oder darunter (darüber) liegt.

andrerseits hast du bzw. NI nich ganz unrecht, denn hin und wieder gibts auch situationen, wo der seppel genau so arbeiten sollte. nur ne properties-option, die ihn zwingt sich so verhalten wäre eben schön.

danke für deinen tip. aber könntest du den etwas näher erläutern? meine lösung brauch leider ein paar mehr module - und ich bin bestrebt nach möglichkeit immer die eleganteste zu finden.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
magneton
synth doctor
Beiträge: 263
Registriert: 17. April 2006, 13:00
Wohnort: mannheim

Beitrag von magneton »

Du siehst das aus der warte von einem speziellen fall, aber beim seperator darf nichts rausgehen, wenn die bedingung nicht erfüllt ist, noch nicht mal ein event mit dem wert 0. ich benutze das bei etlichen logik verzweigungen; würde doch ein event gesendet, müsste ich das herausfiltern.

(habe auf meinem web-rechner kein reaktor)
logicNOT sendet eine 1 oder eine 0, je nachdem der eingangswert positiv oder negativ ist. der zweite outport sendet das genau umgekehrt.
bei den von Dir beschriebenen beispielen sollen auch werte gesendet werden; beim seperator nicht; den muss man sich als weiche vorstellen.

es gibt bei reaktor gewisse rahmenbedingungen innerhalb derer man sich bewegen kann/soll/muss um dann das beste daraus zu machen.
nicht nur bei reaktor.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

magneton hat geschrieben:Du siehst das aus der warte von einem speziellen fall, aber beim seperator darf nichts rausgehen, wenn die bedingung nicht erfüllt ist, noch nicht mal ein event mit dem wert 0.
ja, aber wann is die bedingung erfüllt oder nich? wenn ich nen treshold unterschreite, is für mich die bedingung erfüllt - und die mesieten module sehen das genauso. nur eben der seppel nich.
aber ok, mittlerweile weiß ich, was bei dem teil geht und was nich.

die mE elegenateste lösung is übrigens n relais davorzuklemmen, das (im gegensatz zum seppel) bei tresh-unterschreiten die bedingung als erfüllt betrachtet und umschaltet.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
magneton
synth doctor
Beiträge: 263
Registriert: 17. April 2006, 13:00
Wohnort: mannheim

Beitrag von magneton »

... der seperator ist kein logik-modul, sondern eine einfache weiche.

stelle Dir mal folgendes vor:
input-range: -4 bis 4
threshold: -2

dann würde er nach Deinem wunsch bei einem input von -3 am hi-out eine 0 rausschicken, und das wäre ja nicht gut...
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

nein, nach meiner logik müsste bei treshold -2 und input -3 als ergebniss -2 rauskommen, weil ja der schwellwert unterschritten wäre und demzu der "letzt-mögliche" wert (also das exakte treshold-value: -2) die von mir erwartete logische koneseqeunz wäre.

ich hab mir den seppel halt wie n realis oder besser selector mit sehr vielen, on-the-fly-eingespeisten werte-eingängen (zuständen) vorgestellt. und wie bei nem realais eben erwartet, wenn der input unter schwellwert liegt, es eben auch diesen letztmöglichen zustand (den schwellwert) ausgibt.

dabei fällt mir ein, ich brauch den seppel garnich, das kann ja acuh alles das relais bei input = wahlschalter und value, alleine lösen :D

werd das gleich mal tesetn - gut wenn man sich mal unterhält :wink:
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:nein, nach meiner logik müsste bei treshold -2 und input -3 als ergebniss -2 rauskommen, weil ja der schwellwert unterschritten wäre und demzu der "letzt-mögliche" wert (also das exakte treshold-value: -2) die von mir erwartete logische koneseqeunz wäre.

ich hab mir den seppel halt wie n realis oder besser selector mit sehr vielen, on-the-fly-eingespeisten werte-eingängen (zuständen) vorgestellt. und wie bei nem realais eben erwartet, wenn der input unter schwellwert liegt, es eben auch diesen letztmöglichen zustand (den schwellwert) ausgibt.

dabei fällt mir ein, ich brauch den seppel garnich, das kann ja acuh alles das relais bei input = wahlschalter und value, alleine lösen :D

werd das gleich mal tesetn - gut wenn man sich mal unterhält :wink:
Du kannst dir doch leicht einen entsprechenden Separator mit einer CoreCell basteln.
Bild
Ändere in dem CoreCell-Separator einfach die Properties! Keine Angst vor Core!
Bild

ciao herw
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 »

danke herw.

zwar brauch meine lösung mit dem realais, anstelle des seppels auch nur 1 modul, im falle treshold=0, bei anderem treshwerten allerdings natürlich noch n add/constant gespann. so gesehen werd ich mir dat dingens mal basteln.

übrigens war wahrscheinlich genau dieses fehlende properties-option bei der prim-version der grund des ganzen freds hier.

was die "angst" betrifft: ich kenn mich, wenn erstmal angefixt rutscht man immer tiefer rein - dabei wollt ich doch nur musik machen;)
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
magneton
synth doctor
Beiträge: 263
Registriert: 17. April 2006, 13:00
Wohnort: mannheim

Beitrag von magneton »

helmsklamm hat geschrieben:(...) dabei wollt ich doch nur musik machen;)
so hat es bei mir auch angefangen...
Antworten