REAKTOR-Mathematik
Moderator: herw
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
zu meiner vorletzten (arctan) frage:
ja, ungefähr wie in deinem letzen bild sollte der graph aussehen. aber das erreich ich doch eigentlich viel einfacher, indem ich nen controll-shaper oder nen scanner mit 3 breakpoints nehme, wobei 75% auf 0,6 und 25% auf 0,4 gesetzt werden, oder?
btw: machts nen unterschied ob shaper ("audio") oder scanner ("event") wenn eh nur event durchläuft? (messen kann ich das jedenfalls nich).
ja, ungefähr wie in deinem letzen bild sollte der graph aussehen. aber das erreich ich doch eigentlich viel einfacher, indem ich nen controll-shaper oder nen scanner mit 3 breakpoints nehme, wobei 75% auf 0,6 und 25% auf 0,4 gesetzt werden, oder?
btw: machts nen unterschied ob shaper ("audio") oder scanner ("event") wenn eh nur event durchläuft? (messen kann ich das jedenfalls nich).
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
zu meiner "mix" frage:
(hier stand schon mal was andres, da das aber unnötig verkomplizierte jetzt editierter text)
das gesamte logharithmisch, kohärent, etc. kann man doch problemlos aussen vor lassen, da reaktor ja die entsprechenden konverter mitbringt.
also versuch mal die aufgabenstellung rein mathematisch zu betrachten:
die einzelsignale A1-A4 ergeben summe A, die einzelsignale B1-B4 ergeben summe B und summe A (mixA bzw. croosfade 0) und summe B (mix B bzw crossfade 1) ergeben gesammtsamme C.
wenn (in mittelstellung des crossfades) A 90% (des levels) und B 10% (des levels) dann C 100% gesamtlevel.
verschiebt sich nun das crossfade mehr zu B, dann nimmt das gesamtlevel ab, da B einen entschieden geringeren eigenlevel als A hat. dem ist eigentlich nur beizukommen, indem B1-B4 erhöht würde um somit B als ganzes zu vergrößeren.
der crossfader C müsste also ab einem treshold werterhöhungen an die einzelsignale B senden (vielleicht nich linear sondern exponentiell oder vielleicht auch ganz anders).
soweit schritt 1.
jetzt dürften aber idR die einzelwerte von B1; B2, etc. unterschiedlich "gewichted" sein. (der infachheit halber in 0-1 range wobei 1 = 100%, ergo max ist).
B1 = 0.0
B2 = 0.21
B3 = 1
B4 = 0,78
wenn nun simpel hinzuaddiert würde, stossen wir schnell auf ein neues problem: bei B3 geht garnix mehr und B4 dürfte auch schnell sein max erreciht haben.
wäre es also besser, B2 in relation zu B4 schneller ansteigen zu lassen?
und was is mit B1 (also 0%) - will man bei diesem signal das es überhaupt fx abbekommt (denn idR gibt man ihm 0, wenn es sogar nich klingt?.
(hier stand schon mal was andres, da das aber unnötig verkomplizierte jetzt editierter text)
das gesamte logharithmisch, kohärent, etc. kann man doch problemlos aussen vor lassen, da reaktor ja die entsprechenden konverter mitbringt.
also versuch mal die aufgabenstellung rein mathematisch zu betrachten:
die einzelsignale A1-A4 ergeben summe A, die einzelsignale B1-B4 ergeben summe B und summe A (mixA bzw. croosfade 0) und summe B (mix B bzw crossfade 1) ergeben gesammtsamme C.
wenn (in mittelstellung des crossfades) A 90% (des levels) und B 10% (des levels) dann C 100% gesamtlevel.
verschiebt sich nun das crossfade mehr zu B, dann nimmt das gesamtlevel ab, da B einen entschieden geringeren eigenlevel als A hat. dem ist eigentlich nur beizukommen, indem B1-B4 erhöht würde um somit B als ganzes zu vergrößeren.
der crossfader C müsste also ab einem treshold werterhöhungen an die einzelsignale B senden (vielleicht nich linear sondern exponentiell oder vielleicht auch ganz anders).
soweit schritt 1.
jetzt dürften aber idR die einzelwerte von B1; B2, etc. unterschiedlich "gewichted" sein. (der infachheit halber in 0-1 range wobei 1 = 100%, ergo max ist).
B1 = 0.0
B2 = 0.21
B3 = 1
B4 = 0,78
wenn nun simpel hinzuaddiert würde, stossen wir schnell auf ein neues problem: bei B3 geht garnix mehr und B4 dürfte auch schnell sein max erreciht haben.
wäre es also besser, B2 in relation zu B4 schneller ansteigen zu lassen?
und was is mit B1 (also 0%) - will man bei diesem signal das es überhaupt fx abbekommt (denn idR gibt man ihm 0, wenn es sogar nich klingt?.
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
ne andre frage:
wäre es möglich n unviversal-macro: "seltsame-werte zu 0-1 konverter" zu bauen? simples bsp: ich hab ne range von 0-50, dann würde, wenn vorne 25 anliegt hinten 0.5 rauskommen, was kommt aber bei ner range 28,7 - 113 und und vorne anliegenenden 62,6 hinten raus?
<- also ein macro wo man im idealfall immer nur schnell die konstanten den entsprechenden range min/max anpasst und hinten kommt immer prozentual richtiges 0-1 raus.
als luxus version selbst bei neg/pos range, aber erstmal würde auch die vorzeichengleiche version schon knüllen.
wäre es möglich n unviversal-macro: "seltsame-werte zu 0-1 konverter" zu bauen? simples bsp: ich hab ne range von 0-50, dann würde, wenn vorne 25 anliegt hinten 0.5 rauskommen, was kommt aber bei ner range 28,7 - 113 und und vorne anliegenenden 62,6 hinten raus?
<- also ein macro wo man im idealfall immer nur schnell die konstanten den entsprechenden range min/max anpasst und hinten kommt immer prozentual richtiges 0-1 raus.
als luxus version selbst bei neg/pos range, aber erstmal würde auch die vorzeichengleiche version schon knüllen.
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
komische Wertehelmsklamm hat geschrieben:ne andre frage:
wäre es möglich n unviversal-macro: "seltsame-werte zu 0-1 konverter" zu bauen? simples bsp: ich hab ne range von 0-50, dann würde, wenn vorne 25 anliegt hinten 0.5 rauskommen, was kommt aber bei ner range 28,7 - 113 und und vorne anliegenenden 62,6 hinten raus?
<- also ein macro wo man im idealfall immer nur schnell die konstanten den entsprechenden range min/max anpasst und hinten kommt immer prozentual richtiges 0-1 raus.
als luxus version selbst bei neg/pos range, aber erstmal würde auch die vorzeichengleiche version schon knüllen.

ciao herw
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Range-Konverter
Beispiel
28,7..113 nach 0..1 (komische Werte)
y = (x-28,7)/(113-28,7) ergibt für x=62,6 den Wert y=33,7/84,3=0,39976...
ciao herw
- generelle Lösung für 0..1 nach a..b :
y = (b-a)·x+a - generelle Lösung für a..b nach 0..1 :
z = (x-a)/(b-a) - generelle Lösung für c..d nach a..b :
zunächst c..d nach 0..1 :
z = (x-c)/(d-c)
dann 0..1 nach a..b
y = (b-a)·z+a = (b-a)·(x-c)/(d-c)+a
Beispiel
28,7..113 nach 0..1 (komische Werte)
y = (x-28,7)/(113-28,7) ergibt für x=62,6 den Wert y=33,7/84,3=0,39976...
ciao herw
Zuletzt geändert von herw am 27. Juni 2006, 14:19, insgesamt 1-mal geändert.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Das ist leider nicht richtig, wie du den oben angegebenen links entnehmen kannst. Man kann nicht einfach Prozentzahlen addieren, wenn man eine logaritmische Skala benutzt. Da macht es auch keinen Unterschied, ob Du Konverter benutzt. Lautstärkewerte addieren sich nicht einfach, es gilt eben nicht 50% Lautstärke + 50% Lautstärke = 100% Lautstärke.helmsklamm hat geschrieben:...das gesamte logharithmisch, kohärent, etc. kann man doch problemlos aussen vor lassen, da reaktor ja die entsprechenden konverter mitbringt.
...
ciao herw
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
zu selstame zahlen
usw.
süpi herw!
hab zwar 2,3 minuten gebraucht, die formeln zu schnallen (anhand des ausgeschriebenen bsp. wars dann einfach
<- dank für mühe). aber dafür ging das macrobauen in sekunden. so simpel is das also, tststs.
kann ich auf jeden öfter mal gebrauchen, nochmals dank.
EDIT: übrigens, ich wollt ja testweise das macro erstmal "exakt" nach bsp. bauen, also mit non-integer-konstanten und hatte erstmal ne üble überaschung, als überall 0 rauskam, weil reaktor scheinbar (ausser bei -1 bis 1) keine "kommaziffern" als konstante akzeptiert. <- iss mir noch nie aufgefallen, is das tatsächlich so?
zu "mix"
ja, du hast natürlich recht, das stures prozentaddieren hier nix bringt, aber die %te gehen ja nich direkt irgendwo rein, sondern durchlaufen ja vorher noch pro signal nen lev-exponential, aber wir brauchen das hier nich weiter vertiefen, weil ich mittlerweile die idee als irrweg empfinde - reiner wohlklang is zwar oft mathematisch aber reine mathematik selten wohlklingend.

süpi herw!
hab zwar 2,3 minuten gebraucht, die formeln zu schnallen (anhand des ausgeschriebenen bsp. wars dann einfach

kann ich auf jeden öfter mal gebrauchen, nochmals dank.
EDIT: übrigens, ich wollt ja testweise das macro erstmal "exakt" nach bsp. bauen, also mit non-integer-konstanten und hatte erstmal ne üble überaschung, als überall 0 rauskam, weil reaktor scheinbar (ausser bei -1 bis 1) keine "kommaziffern" als konstante akzeptiert. <- iss mir noch nie aufgefallen, is das tatsächlich so?
zu "mix"
ja, du hast natürlich recht, das stures prozentaddieren hier nix bringt, aber die %te gehen ja nich direkt irgendwo rein, sondern durchlaufen ja vorher noch pro signal nen lev-exponential, aber wir brauchen das hier nich weiter vertiefen, weil ich mittlerweile die idee als irrweg empfinde - reiner wohlklang is zwar oft mathematisch aber reine mathematik selten wohlklingend.
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
?? versteh ich nicht, Reaktor akzeptiert doch Kommazahlen und wandelt diese automatisch in die englische Schreibweise um.helmsklamm hat geschrieben:z... weil reaktor scheinbar (ausser bei -1 bis 1) keine "kommaziffern" als konstante akzeptiert. <- iss mir noch nie aufgefallen, is das tatsächlich so?
...
ciao herw
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
falsch, bei mir wandelt Reaktor Kommazahlen automatisch in Punktzahlen um. Vielleicht ist das ja eine der Errungenschaften von R5.1.1helmsklamm hat geschrieben:ja, du hast recht - an dem tag hatte ich gedankenblinder weise doch tatsächlich nen komma, anstelle eines punktes gehackt und das geht dann tatsächlich nich
ciao herw
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Die Darstellung von Zahlen in Rechnern ist durch die Norm IEEE 754 festgelegt. Eine ausführliche Erklärung mit interessanten Beispielen über die beiden Darstellungsmöglichkeiten findest du bei wikipedia unter den Stichwörtern Gleitkommazahl und Festkommazahl. Beide Zahldarstellungen haben Vor- und Nachteile in der Verarbeitung und werden bei Berechnungen (+ - · / etc) unterschiedlich behandelt. Integerzahlen (Festkommazahlen) sind in den Berechnungen immer exakt, solange sie den Zahlenbereich nicht verlassen. Sie haben also absolute Genauigkeit. Floating-Point-Zahlen (Gleitkommzahlen) haben dagegen ein begrenzte Genauigkeit, d.h. eine bestimmte Anzahl an „gesicherten” Stellen, können aber sowohl sehr kleine Zahlen wie auch sehr große Zahlen durch eine entsprechende Zehnerpotenz erfassen.Reifen Müller hat geschrieben:bin nich sicher, ob das hier reinpasst - egal:
thema: integer vs. fliess
im core-buch steht bspw. das integer nur bis 10 hoch9 und vorzeichenverkehrt berchnet wird, float hingegen bis 10 hoch 40 oder so.
ausserdem stehen da so sachen die darauf schliessen lassen, das integer mehr power verbrät, als float. ---- wie kann ds sein? der GMV (gesunde menschenverstand) vermuted natürlich erstmal gegenteiliges, und bittet demsntsprechend um illuminierung.
Die Verarbeitung im Rechner ist grundsätzlich verschieden. Festkommazahlen kann man auch als Gleitkommzahlen darstellen:
z.B. 12345 (Festkommazahl) = 1,2345·10^4 (Gleitkommazahl); wird der Zahlbereich der einen oder anderen Darstellung überschritten, so kommt es zu Rundungen.
Das heißt, man sollte sich bei der Verwendung in REAKTORim Klaren sein, ob man diese Zahlumwandlung vornehmen will oder nicht. Man findet bewusste Rundungsfehler häufig in den Oszillatormodulen, um eine einfache Rundungsfunktion zur Verfügung zu haben; z.B. findet man in den CoreCell FM-OSCs das Macro Wrapper, mit dem der Nachkommteil einer Zahl berechnet wird (der Name Wrapper gibt an, dass eine Schwingung in der Amplitude berenzt und für Werte ausserhalb des gewünschten Bereichs - meistens -1 .. +1 - nach innen gefaltet wird).
Das Macro ist äußerst einfach realisiert und spielt mit dem Wechsel von Gleit- zu Fest-Kommazahlen:

Das Rundungsmacro round besteht nur aus einer direkten Verbindung von Ein- und Ausgang. Der Eingang ist allerdings durch das Gleichheitszeichen als Festkommazahl gekennzeichnet, der Ausgang durch den Punkt als Gleitkommazahl; diese Einstellungen kann man ändern, indem man das Macro round öffnet und dann auf die Ein- bzw. Ausgänge doppelklickt und die Eigenschaften entsprechend in den properties einstellt.
Wie wirkt der Wrapper? Ist am Eingang beispielsweise die Zahl 1,45 so wandelt die round-Funktion dies in 1,0 um (beachte, dass der Ausgangswert wieder als Gleitkommzahl erscheint). Die Differenz berechnet also 1,45-1,0=0,45.
Diese Rundung ist allerdings für eine Zahl wie beispielsweise 1,5 problematisch, da sie nicht eindeutig ist: sie kann (laut Core-Handbuch) mal 1 oder auch 2 ergeben. Sind also solche Berechnungen wichtig, so sollte man eine eigene Rundungsfunktion erstellen (mit Fallunterscheidungen).
Meist treten Fehler auf, auf die man bei "gesundem" Menschen-Mathematiker-Verstand nicht ohne Weiteres kommt. Z.B. die Abfrage x=0 ist sehr problematisch, da ja in Audiosignalen meist nie exakt der Wert 0 angenommen wird, sondern eher Zahlen wie 1·10^-12 = 0,000000000001 etc.. Dies kann man vermeiden durch die Funktion DNC (Denormalisierung); intern werden dann solche Zahlen als 0 betrachtet.
Die Umwandlung der beiden Zahldarstellungen kostet CPU-Power, daher sollte man bei selbst erstellten und zusammen gestückelten Macros immer einen Blick darauf werfen, ob man nicht versehentlich und unnötig die Zahldarstellungen gewechselt hat.
Die Festkommazahberechnungen kosten mehr Power durch die höhere Genauigkeit.
ciao herw
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von herw am 6. August 2006, 12:49, insgesamt 1-mal geändert.
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Stellengenauigkeit! lies Core-Handbuch S.121-S.124Reifen Müller hat geschrieben:aber wenn man dem core buch glauben schenkt is der zahlenbereich bei integer ja deutlich begrenzt: 10hoch9 sind ja grad mal 10milliarden. wohingegen es bei fließ um die 30 nullen mehr sind.Integerzahlen (Festkommazahlen) sind in den Berechnungen immer exakt, solange sie den Zahlenbereich nicht verlassen. Sie haben also absolute Genauigkeit.
da aber mE fließ schwieriger zu rechnen als integer is, müsste es doch eigentlich umgekehrt sein. (zumal cpus idR sowohl ne integer und ne fließ unit haben, also von dato keine optimierung für fließ besteht).
ich schätze irgendwo hab ich n denkfehler.
ciao herw
Zuletzt geändert von herw am 6. August 2006, 12:49, insgesamt 1-mal geändert.
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
ich galube aus den benannten seiten habe ich mein detailieirtes halbwissen
- aber ich zieh mir die nochmal gaaaanz in ruhe rein.
aber mal n andres thema: (möglicher titel) effizenz der rechenoperationen.
klar, die addition dürfte die anspruchloseste (im sinne von cpu - resourcen) sein.
ab jetzt wirds aber schon fraglich.
- is die subtraktion anspruchsvoller als die multiplikation?
- is die kehrwert-multiplikation in jedem falle anspruchsloser als die division (9:3 scheint einfacher als 9x0.3333333333333....)?
-empfiehlt es sich das (nötigenfalls) das vorzeichen schon bei der rechenoperation zu ändern oder is das nachträglich umwnadeln nich effizenter?
-lohnt es sich >20 event-berechnungen durchzuführen, um eine audioberechnung zu umgehen?
-etc.

aber mal n andres thema: (möglicher titel) effizenz der rechenoperationen.
klar, die addition dürfte die anspruchloseste (im sinne von cpu - resourcen) sein.
ab jetzt wirds aber schon fraglich.
- is die subtraktion anspruchsvoller als die multiplikation?
- is die kehrwert-multiplikation in jedem falle anspruchsloser als die division (9:3 scheint einfacher als 9x0.3333333333333....)?
-empfiehlt es sich das (nötigenfalls) das vorzeichen schon bei der rechenoperation zu ändern oder is das nachträglich umwnadeln nich effizenter?
-lohnt es sich >20 event-berechnungen durchzuführen, um eine audioberechnung zu umgehen?
-etc.
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
gar nicht klar; nicht alles was auf dem Papier "einfach" erscheint, ist auch bei der Konzeption eines Rechners einfach. Bloß weil die Addition in der Schule vor der Multiplikation erklärt wird, ist sie für einen Rechner noch lange nicht einfacher als eine Multiplikation: Beispiel Multiplikation mit 16 ist für einen Rechner, der mit Binärzahlen arbeitet nichts weiter als ein vierfacher bit-shift Befehl und extrem einfach.helmsklamm hat geschrieben:ich galube aus den benannten seiten habe ich mein detailieirtes halbwissen- aber ich zieh mir die nochmal gaaaanz in ruhe rein.
aber mal n andres thema: (möglicher titel) effizenz der rechenoperationen.
klar, die addition dürfte die anspruchloseste (im sinne von cpu - resourcen) sein.
ab jetzt wirds aber schon fraglich.
- is die subtraktion anspruchsvoller als die multiplikation?
- is die kehrwert-multiplikation in jedem falle anspruchsloser als die division (9:3 scheint einfacher als 9x0.3333333333333....)?
-empfiehlt es sich das (nötigenfalls) das vorzeichen schon bei der rechenoperation zu ändern oder is das nachträglich umwnadeln nich effizenter?
-lohnt es sich >20 event-berechnungen durchzuführen, um eine audioberechnung zu umgehen?
-etc.
Als Wochenendlektüre empfehle ich Dir : Arithmetische Kodierung

ciao herw
-
- synth gott
- Beiträge: 1011
- Registriert: 10. Mai 2006, 16:21
- Wohnort: 030
hey, herr reich-rannitzky kein schlechter tip: selbst für total-laien viertelwegs nachvollziehbar. (bin aber noch nich über die einleitung hinaus
wird aber echt zeit für ebook-hw - an der kiste macht lesen doch kein spass).
trotzdem nochmal ne frage: wenn multiplikation mit 8 (und ich nehm mal an, mit vielfachen derselben, ebenso) so effizient is, wieso is dann per default stepnumber und mousresolution auf 127 und nich eins höher gestellt?
zum vergleich (bei range 0-1)
num step: 128
stepsize = 0.0078125 (is eine "geringfache" von
mittel = 0.5 (exakt die hälfte)
num step: 127
stepsize =0.00787402 (is ne "seltene" zahl)
mittel =0.496... (nich exakt die hälfte - bspw. kein reiner ton)
ich kann mir keinen reim drauf machen. prinzipiell hat das "vielfachen-8" doch scheinbar nur vorteile: alle folgeoperationen werden mit der effizenz-optimalzahl berechnet, der mittelwert entspricht dem tatsächlichen x2-wert und is keine näherung, etc.....
die logische frage: warum handelt reaktor so?

trotzdem nochmal ne frage: wenn multiplikation mit 8 (und ich nehm mal an, mit vielfachen derselben, ebenso) so effizient is, wieso is dann per default stepnumber und mousresolution auf 127 und nich eins höher gestellt?
zum vergleich (bei range 0-1)
num step: 128
stepsize = 0.0078125 (is eine "geringfache" von

mittel = 0.5 (exakt die hälfte)
num step: 127
stepsize =0.00787402 (is ne "seltene" zahl)
mittel =0.496... (nich exakt die hälfte - bspw. kein reiner ton)
ich kann mir keinen reim drauf machen. prinzipiell hat das "vielfachen-8" doch scheinbar nur vorteile: alle folgeoperationen werden mit der effizenz-optimalzahl berechnet, der mittelwert entspricht dem tatsächlichen x2-wert und is keine näherung, etc.....
die logische frage: warum handelt reaktor so?
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.