mathe: xy zu eindimensional "konvertieren"

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

Moderator: herw

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

mathe: xy zu eindimensional "konvertieren"

Beitrag von helmsklamm »

wenn X das mischverhältniss A zu B =E1 bestimmt und Y das mischverhältniss C zu D = E2, wie lässt sich dann (hintendran?) mittels derselben XY koordinate das mischverhältniss E1 zu E2 bestimmen? (sowohl X als Y hat bis zur ermittlung der zwischenergebnisse keinen einfluss auf sein geschwisterlein).
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: mathe: xy zu eindimensional "konvertieren"

Beitrag von herw »

helmsklamm hat geschrieben:wenn X das mischverhältniss A zu B =E1 bestimmt und Y das mischverhältniss C zu D = E2, wie lässt sich dann (hintendran?) mittels derselben XY koordinate das mischverhältniss E1 zu E2 bestimmen? (sowohl X als Y hat bis zur ermittlung der zwischenergebnisse keinen einfluss auf sein geschwisterlein).
misch = E1:E2
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

: steht für divison? nee, ganz so einfach isses wohl nicht.

ich bin grad noch am experimentieren mit mit "größer als die hälfte triggerd +1" oder so funktionen, das is zwar nich ganz sauber, doch zumindest parktisch verwertbar.
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:: steht für divison? nee, ganz so einfach isses wohl nicht.

ich bin grad noch am experimentieren mit mit "größer als die hälfte triggerd +1" oder so funktionen, das is zwar nich ganz sauber, doch zumindest parktisch verwertbar.
der Quotient ist genau die Definition eines Mischverhältnisses.
Aber mal vorweg eine grundsätzliche Frage: was wird mit dem Mischverhältnis gemischt? Audio- oder Event-Signale?
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

event, aber das is nebensächlich, der quotient scheidet schon aus dem grunde aus, das er oftmals mathematisch einfach nicht zulässig ist.

nehmen wir an, ich definiere für X und X jeweils ne range von 0-1, dann habe ich doch ziemlich oft mit ner divison durch null, bzw. dem "umgekehrten fall" ne divison von null durch irgendwas zu tun, was meines realschul-wissens erstmal grundsätzlich unzulässig ist (im "durchfall" ;)) resp. in der anderen variante peramaent null ergibt. doch selbst wenn die range "zulässig" definiert wird, komme ich ständig auf konstellationen wie 2/2 oder 4,1/4,1 etc., was jedesmal 1 ergibt. ganz zu schweigen von den "interpolationswerten" die allesamt "schwachsinn" sind. (ich erhalte bei 1,4 / 1,2 exakt das gleiche wie bei 2,8 /2,4 was beide werte exakt verdoppelt aber im ergebniss sich eben doch dasgleuche ausgibt).

aber so wie ich die aufgabe definiert habe ist das villeicht doch richtig??? - ich hab grad ne idee, ich probier das morgen mal aus, bis denne.
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:event, aber das is nebensächlich, der quotient scheidet schon aus dem grunde aus, das er oftmals mathematisch einfach nicht zulässig ist....
nicht ganz, denn wenn man dB-Werte mischt, muss man anders rechnen.

ciao herw

PS: ich bin mal gespannt, was dabei herauskommt.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

aber grundsätzlich hattest du schon verstnaden, was ich eigentlich wollte?

das zweidimensionale xy feld als referenz für ne "positionsangabe" für bspw. nen selctor mit 4 konstanten. hier stösst man unweigerlich auf nen problem, denn egal mit welchem (simplen) mathematischen verfahren ich X und Y zusmammenführe, ich erhalte mindestens jeweils 2mal an unterschiedlichen punkten dasgleiche "ergebniss", das zwar methematisch richtig, aber aufgabenlogisch falsch ist.
wenn du das XY feld in 4 kleinere quadrate segmentierst, wobei bspw. oben rechts die erste konstante, oben links die 2te uswusf. ansperechen soll, wirst du mir zusatimmen, das das so nicht geht: wenn X=0,7 und Y=0,3 erhalte ich (bei addition) 1, exakt also dasgleiche wie wenn X=0,3 und Y=0,7. im ersten fall befindet sich der cursor im planquadrat 1 im 2ten fall im planquadrat 4, was ganz offensichtlich nicht das gewünschte endergebniss bringt. (bei multiplikation ist das noch fataler: ein entlangschlittern an den aussenkanten links oder unten erzeugt lediglich nullen auf der gesamten linie - ok ich könnte die range ändern, aber das grunddilemma bliebe).
also dachte ich mit obiger krücke dem problem beizukommen, aber acuh das ist ein trugschluss. mit realschul-mathe ist dieses prob wohl nicht wirklich zu lösen.
also hab ich einfach getrickst: XundY werden ordinär adiiert und am Y hängt ein zusatzliches compair, das ebenfalls in den addierer geht und bei werten größer 0,5 (also immer wenn ich mich oben befinde) ne plus1 genereiert. womit sich die therotsische werteanzahl effiktiv verdoppelt. problem gelöst? nun, das primärziel, keine gleichen werte in unterschiedlichen planquadraten erfüllt es zwar, allerdings kommt es, wie du dir vorstellen kannst, an den obenunten schnittpunkten zu sprüngen, bzw. skaliert das generell nicht sauber (im unteren linken feld werden mathematisch richtig nur kleine werte addiert, wohingegen oben rechts ausschliesslich große werte berechnet werden).
für bessere vorschläge wär ich nachwievor dankbar, obzwar ich glaube, das dem selbst mit höhrer mathematik nicht so einfach beizukommen ist..
ne simple lösung wären 4 seperate mausereas mit unterschiedlichen ranges (eihgentlich reichen sogar 2) denen irgendwie beigebracht werden müsste, das man sich beim "überfaheren" von einer zu anderen wir uns jetzt woanders befinden und kollege von nun ab die pos auswertet. aber wie? selbst bei incrementell off wird erst ein andres objekt gewählt, wenn der masubutton retriggert wird?? hm,hm.
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:aber grundsätzlich hattest du schon verstnaden, was ich eigentlich wollte?
nein; auch wenn ich deine Beiträge mehrmals lese, kann ich mir keinen Reim darauf machen, da eine reine Wort-Beschreibung völlig unanschaulich für den Leser ist; und ich möchte wirklich kapieren, was Du vorhast.
das zweidimensionale xy feld als referenz für ne "positionsangabe" für bspw. nen selctor mit 4 konstanten.
was heißt "Referenz für eine Positionsangabe für ... Konstanten"?
hier stösst man unweigerlich auf nen problem, denn egal mit welchem (simplen) mathematischen verfahren ich X und Y zusmammenführe, ich erhalte mindestens jeweils 2mal an unterschiedlichen punkten dasgleiche "ergebniss", das zwar methematisch richtig, aber aufgabenlogisch falsch ist.
wenn du das XY feld in 4 kleinere quadrate segmentierst, wobei bspw. oben rechts die erste konstante, oben links die 2te uswusf. ansperechen soll, wirst du mir zusatimmen, das das so nicht geht: wenn X=0,7 und Y=0,3 erhalte ich (bei addition) 1, exakt also dasgleiche wie wenn X=0,3 und Y=0,7. im ersten fall befindet sich der cursor im planquadrat 1 im 2ten fall im planquadrat 4, was ganz offensichtlich nicht das gewünschte endergebniss bringt. (bei multiplikation ist das noch fataler: ein entlangschlittern an den aussenkanten links oder unten erzeugt lediglich nullen auf der gesamten linie - ok ich könnte die range ändern, aber das grunddilemma bliebe).
also dachte ich mit obiger krücke dem problem beizukommen, aber acuh das ist ein trugschluss. mit realschul-mathe ist dieses prob wohl nicht wirklich zu lösen.
also hab ich einfach getrickst: XundY werden ordinär adiiert und am Y hängt ein zusatzliches compair, das ebenfalls in den addierer geht und bei werten größer 0,5 (also immer wenn ich mich oben befinde) ne plus1 genereiert. womit sich die therotsische werteanzahl effiktiv verdoppelt. problem gelöst? nun, das primärziel, keine gleichen werte in unterschiedlichen planquadraten erfüllt es zwar, allerdings kommt es, wie du dir vorstellen kannst, an den obenunten schnittpunkten zu sprüngen, bzw. skaliert das generell nicht sauber (im unteren linken feld werden mathematisch richtig nur kleine werte addiert, wohingegen oben rechts ausschliesslich große werte berechnet werden).
für bessere vorschläge wär ich nachwievor dankbar, obzwar ich glaube, das dem selbst mit höhrer mathematik nicht so einfach beizukommen ist..
ne simple lösung wären 4 seperate mausereas mit unterschiedlichen ranges (eihgentlich reichen sogar 2) denen irgendwie beigebracht werden müsste, das man sich beim "überfaheren" von einer zu anderen wir uns jetzt woanders befinden und kollege von nun ab die pos auswertet. aber wie? selbst bei incrementell off wird erst ein andres objekt gewählt, wenn der masubutton retriggert wird?? hm,hm.
das ist richtig, du musst mit einem mousearea-Modul auskommen; das wird auch gehen. Ich hatte dasselbe Problem mit den virtual keys. Dort musste ich ein Glissando erzeugen, was ebenso nur durch Ziehen über die "Tasten" funktioniert, also ohne zusätzlichen Maustrigger.
Also nochmal von vorne: Du willst mit einem mousearea-Modul, das in vier Quadranten eingeteilt ist, etwas steuern, und zwar so, dass bei den Übergängen von einem Quadrant zum nächsten es "Sprünge" gibt.
Fragen:
  • Was soll mit einem Quadrant gesteuert werden?
  • Haben die gesteuerten Elemente, Module, Variable etc. etwas miteinander zu tun oder sind sie völlig unabhängig?
  • Geht's noch etwas konkreter, ich weiß nicht was du mit der "positionsangabe" für bspw. nen selctor mit 4 konstanten" meinst.
Im Moment stelle ich mir vor, dass du einen Wertebereich hast, der in vier Teile eingeteilt ist (die Konstanten?). Mit dem Anklicken auf das Mausearea soll erstens erkannt werden, welcher Bereich angesprochen und zweitens mit den x-y-Koordinaten in diesem Bereich gearbeitet (was immer das ist) werden soll. korrekt?

ciao herw
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

Der Selector ist für mich ein nach wie vor komisches Modul, aber Du schwärmst ja davon. Daher ist es für mich wahnsinnig schwierig nachzuvollziehen, was da passieren soll:
also du willst anhand der xy-Koordinaten den Quadranten erkennen;
gleichzeitig möchtest Du mit den jeweiligen x-y-Koordinaten irgendwetwas ansteuern

das muss doch möglich sein;
lass noch mal ein paar Informationen rüberkommen
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

am selektor liegen 4 werte an. zu testzwecken simple konstanten 1,2,3,4 und zur erläuterung ABCD genannt..
stelle ich den selector bei curve auf "line", kann ich mittels dem wert, der bei pos anliegt (range: 0-3) zwischen den einzelnen konstanten blenden. voll aufgereht erhalte ich hinten 4 und bei minimalstellung 1, sowie sämtliche interpolationen dazwischen.

nehme ich nur den X oder nur den Y meines xy-moduls könnte ich bei entsprechender range problemlos jede postion ansteuern und hätte bei exakt 0,1,2,3 immer den genauen wert der konstante, bzw. bei nachkommastellen immer die korrekte interpolation zwischen 2 konstanten. soweit so klar, aber dann könnte ich auch gleich nen simplen fader nehmen.

worum es mir geht: ich möchte aber mittels x UND y die entsprechende pos EINDEUTIG ansteuern, was so erstmal grundlegend nicht geht. wie oben beschreiben macht es mathematisch, bei adition oder multiplikation keinen unterschied ob X=0,7 und Y=0,3 oder X=0,3 und Y=0,7. in beiden fällen erhalte ich mathematisch das gleiche ergebniss (wie ubrigens noch bei unendlich vielen anderen konstellationen). da also unednlich viele wertepaare bspw. das ergebniss 1 produzieren, kann allein über diese 2 variablen keine eindeutige positionsbestimmung erfolgen. oder anders: die summe 1 leigt an unednlich vielen punkten im gesamtquadrat an. mit dem zusätzlichen compare kann ich dieses eingrenzen: dann leigt die summe 1 zwar auch unednlich oft an, aber nur in einem bestimmten planqaudrat, NIEMALS ausserhalb dessen.
trotzdem ist diese "lösung" aufgrund der sprünge suboptimal.
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:am selektor liegen 4 werte an. zu testzwecken simple konstanten 1,2,3,4 und zur erläuterung ABCD genannt..
stelle ich den selector bei curve auf "line", kann ich mittels dem wert, der bei pos anliegt (range: 0-3) zwischen den einzelnen konstanten blenden. voll aufgereht erhalte ich hinten 4 und bei minimalstellung 1, sowie sämtliche interpolationen dazwischen.

nehme ich nur den X oder nur den Y meines xy-moduls könnte ich bei entsprechender range problemlos jede postion ansteuern und hätte bei exakt 0,1,2,3 immer den genauen wert der konstante, bzw. bei nachkommastellen immer die korrekte interpolation zwischen 2 konstanten. soweit so klar, aber dann könnte ich auch gleich nen simplen fader nehmen.

worum es mir geht: ich möchte aber mittels x UND y die entsprechende pos EINDEUTIG ansteuern, was so erstmal grundlegend nicht geht. wie oben beschreiben macht es mathematisch, bei adition oder multiplikation keinen unterschied ob X=0,7 und Y=0,3 oder X=0,3 und Y=0,7. in beiden fällen erhalte ich mathematisch das gleiche ergebniss (wie ubrigens noch bei unendlich vielen anderen konstellationen). da also unednlich viele wertepaare bspw. das ergebniss 1 produzieren, kann allein über diese 2 variablen keine eindeutige positionsbestimmung erfolgen. oder anders: die summe 1 leigt an unednlich vielen punkten im gesamtquadrat an. mit dem zusätzlichen compare kann ich dieses eingrenzen: dann leigt die summe 1 zwar auch unednlich oft an, aber nur in einem bestimmten planqaudrat, NIEMALS ausserhalb dessen.
trotzdem ist diese "lösung" aufgrund der sprünge suboptimal.
Dein Ansatz, dass Du eine ein-eindeutige Zuordnung zwischen den x,y-Koordinaten und dem Intervall 0..3 haben möchtest, ist prinzipiell nicht erfüllbar.
Ein-eindeutig bedeutet: zu jedem x,y-Paar gibt es einen eindeutigen Zahlenwert im Intervall 0..3 und umgekehrt. Dies ist nicht möglich, da es schon eine ein-eindeutige Zuordnung des Intervalls auf etwa einen Halbkreis oder Kreis gibt. Insofern hast Du, wie Du schon selbst bemerktest, mehrfaches Auftreten derselben Werte.
Eine Möglichkeit ist folgende.
Zunächst bereitest Du die MausArea als kartesisches Koordinatensystem vor (jeweils für x und y den Bereich -1 .. +1).
Du benutzt die Beziehung zwischen kartesischen Kordinaten (den normalen x-y-Koordinaten) und den so genannten Polarkoordinaten:
x=r·cos a und y=r·sin a, wobei r=sqrt(x^2+y^2) der Abstand vom Nullpunkt und a der Winkel zwischen der positiven x-Achse und der Verbindungsstrecke zwischen dem Koordinatenursprung und dem Punkt (x,y) sind.
Du bildest nun eine ein-eindeutige Abbildung zwischen dem Winkel a und Deinem Intervall 0 .. 3.
Dazu berechnest Du über a=arccos(x/r) den Winkel a. (Dies gibt einen Wert zwischen 0° und 180°). Das ist noch nicht eindeutig, da dann in der unteren Koordinatenhälfte dieselben Werte angegeben werden. Über das Vorzeichen von y kannst Du für die untere Hälfte die Umformung a=360°-r·arccos(x/r) die Winkel 180°..360°. Somit gibt es einen eindeutigen Wert zwischen 0 und 360. Mit der Funktion a -> 3/360·a bekommst Du den gewünschten Bereich zwischen 0 und 3.
Nun da die Abbidung ja nicht ein-eindeutig ist kannst du den Wert r noch als zusätzliche veränderliche Größe benutzen. Wenn Du diesen Wert auf 1 clippst, dann hast du ein zyklisches Panelelementg, das zwei Parameter liefert. Das Panelelement entspricht dann dem Verhalten der Drehregler in CUBASE mit dem zusätzlichen Parameter r, bzw. auch dem Modulationsfeld in MASSIVE.

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

Beitrag von helmsklamm »

ah süpi, danke herw. ich wusste doch, das du das problem knackst;)

ich muss mir wohl mal n paar büchlein besorgen, so im stil "(etwas) höhre mathe leicht erklärt" oder so - kann da jemand was empfehlen?
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:ah süpi, danke herw. ich wusste doch, das du das problem knackst;)

ich muss mir wohl mal n paar büchlein besorgen, so im stil "(etwas) höhre mathe leicht erklärt" oder so - kann da jemand was empfehlen?
Stöcker: Taschenbuch mathematischer Formeln und moderner Verfahren, Verlag Harri Deutsch
ISBN 3-8171-1573-3 (Buch mit CD-ROM)


steht auch vieles über Schwingungen drin. Sehr gute CD

sonst der Wikipedia.de -Spezial-Teil über Mathematik ist nicht schlecht.
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

klingt schonmal gut - ich hoffe es holt mich auch da ab, wo ich mich befinde;(
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:klingt schonmal gut - ich hoffe es holt mich auch da ab, wo ich mich befinde;(
Die Seiten über trigonometrische Funktionen sind vom musikalischen Standpunkt betrachtet genial; FM- und PM-Modulation werden treffend beschrieben. Interessant ist auch das Kapitel über grundlegende Funktionen (Modulo- , stückweise definierte Funktionen und auch Rundungsfunktionen, also alles was man zur Eventverarbeitung braucht - eine Super-Formelsammlung
Antworten