"harter" qauntizirer

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

"harter" qauntizirer

Beitrag von helmsklamm »

bei audio wahrscheinlich garnich SOOO wichtich, bei events aber umsomehr:

ein "echter" quantizierer, der auch bei 0.5* ne klare entscheidung trifft. besser noch: alles unter (nächster) Ganzzahl wird rigoros abgerundet, erst bei tatschlich neuer Ganzzahl ( = EXAKTE Zahl, oder höher) wird tatsächlich JEDESMAL "aufgerundet".
dieser oftmals benötigte stack mit 0.5000001 oder 0.499999 macht mach wahnsinnig.


* bezieht sich auf raster=1. hier nur nervig, aber zu schaffen. doch was ist, wenn dein raster bspw. 0.1428571... ist (die zahl ist nicht beliebig = es ist der 1/7 kehrwert, oder die größe der zwischenrüme bei 8 latten am zaun (wenn der gesamte zaun 1 ist), weil ja der null-wert leider nicht mitgezählt wird....) wie is hier die korrekte add-konstante????

aber lassen wir das hier unten mal aussen vor: ein HARTER (verlässlicher) qauntizierer - ist das machbar?
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: "harter" qauntizirer

Beitrag von herw »

helmsklamm hat geschrieben:...

aber lassen wir das hier unten mal aussen vor: ein HARTER (verlässlicher) qauntizierer - ist das machbar?
ich denke zunächst erstmal nein, was heißt: kein universeller harter quantisierer, der alle Eventualitäten berücksichtigt.
Man schielt unbewusst zu sehr auf die Dezimaldarstellung von Zahlen; das harte Quantisieren geschieht ja nicht durch Vergleich mit den Nachkommastellen der Dezimaldarstellung, sondern in den Binärzahlen; allein schon dadurch gibt es Unterschiede in Rundungen. Dann hat man zu beachten, dass ein Computer exakte Vergleiche (Gleichheit) nur im Sinne der Rechengenauigkeit vornehmen kann. Insofern muss man NEIN sagen.
ABER wenn die Datenmenge, insbesondere ihre Auflösung (1/8, 1/127/, 1/1000 etc) bekannt ist, dann kann man zunächst mit den entsprechenden ganzzahligen Vielfachen arbeiten, dort mit der Modulo-Funktion eine Aufsplittung vornehmen (harte Quantisierung hieße dort, dass die Ganzzahldivision den Rest 0 ergibt (dies ist exakt!)) und erst dann wieder entsprechend die beiden Zweige weiterverarbeitet.

ciao herw
krümelmonster
synthesist
Beiträge: 90
Registriert: 6. März 2010, 18:18

Beitrag von krümelmonster »

Oops, wo ist das attachment geblieben ?
Das Bildchen ist vielleicht zu klein :-)
Na, dann eben ein zip.
Viele Grüße, Gerald.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

krümelmonster hat geschrieben:Oops, wo ist das attachment geblieben ?
Das Bildchen ist vielleicht zu klein :-)
Na, dann eben ein zip.
Viele Grüße, Gerald.
ich hab das Bildchen mal ergänzt.
Bild
Es funktioniert tadelos - schöne eindeutige Lösung; worauf sich helmsklamms Frage bezieht, ist allerdings das im Handbuch beschriebene Rundungsproblem, bei dem man nicht sicher sein kann, dass bei einer Quantisierung auf Bruchteile (Siebtel, Hundertsiebenundzwanzigstel etc.) richtig und immer eindeutig quantisiert wird.
Vielleicht kann ja helmsklamm mal das konkrete Makro, bei dem das Problem auftritt, hier hochladen.
Ich denke aber, dass man für jede spezielle Quantisierung eine eigene Routine schreiben muss, vor allem dann, wenn man so kleine Abweichungen wie in der fünften Nachkommstelle hat. Unabhängig davon kommt man aber eben immer an irgendwelche CPU-bedingten Rundungen nicht vorbei. Das ist eben der Fluch der Digitalisierung.

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 »

hey süpi, danke -gleich mal austesten.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
krümelmonster
synthesist
Beiträge: 90
Registriert: 6. März 2010, 18:18

Beitrag von krümelmonster »

Hallihallo !
Freut mich , daß es gefällt !
Ist übrigens eins meiner allerersten CoreMacros überhaupt.
Hatte auch schon mal daran gedacht, das hochzuladen, da ich mir schon dachte, daß das noch nicht jeder kennt.
Aber dann interessiert es ja doch keinen.
Egal, ich finde ihn klasse, den Integerator; er findet sich ja auch immer mal wieder ein.

Tjaja, die Sache mit dem Rundungsproblem ist schon ein ...
Man denke nur an sämtliche Timer.
Ich denke mir dazu, daß eine vernünftige Erwartungshaltung hinsichtlich der Wertemenge am besten weiterhilft.
Ansonsten ?
Irgendwann kommt man halt entweder um das .49/.5-Problem nicht herum, oder man akzeptiert einen Fehler, der wiederum in Absprache mit der Wertemenge ziemlich o.k. sein kann, oder: ....oh, ....oh, .....
Au wacker, ich bin einfach zu müde, um noch meinen Senf zu den anderen Themen geben zu können.
Ciao, Gerald.
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Beitrag von herw »

krümelmonster hat geschrieben:Hallihallo !
Freut mich , daß es gefällt !
Ist übrigens eins meiner allerersten CoreMacros überhaupt.
...
Ich denke mir dazu, daß eine vernünftige Erwartungshaltung hinsichtlich der Wertemenge am besten weiterhilft.
...
Ciao, Gerald.
ja, da sagst Du was Wahres. Es gibt bei Analog-Digitalen Problemen keine Universallösungen; insbesondere der Übergang von Floating-Zahlen zu Integer-Zahlen muss man genau aufpassen.

ciao herw

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

Beitrag von helmsklamm »

@krümel:

ähm, wozu is deun macro eigentlich gedacht? -"rundfehlerfrei" quantizen tuts jedenfalls nicht verlässlich. -> allerdings is schon so, das es abhängig von der ganzzahl vorneweg (gerade/ungerade) verlässlich rundet: bei 1,3,5... immer bei n.50 und bei 2,4,6 immer bei n.51.

achja, integrator is bislang auch wikifrei.

ich bitte auch in dieser hinsicht doch um aufklärung.
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 »

krümelmonster hat geschrieben:@helmsklamm:
Vorausgesetzt, es bleibt zunächst bei raster=1 - würde da folgender "Integerator" helfen ?
"... helfen!"

heißt: Du könntest seinen Integerator dazu benutzen. Der Integerator schneidet zuverlässig alle Nachkommstellen ab.
Daraus kann man eine zuverlässige Rundungsfunktion erstellen.

Krümelmonster meint mit dem Integerator die so genannte Gaußklammerfunktion f(x)=[x]. In Programmiersprachen heißt die Funktion INT(x) bzw. TRUNC(x).
helmsklamm
synth gott
Beiträge: 1011
Registriert: 10. Mai 2006, 16:21
Wohnort: 030

Beitrag von helmsklamm »

aha.
bitte vor jeder frage erstmal überprüfen, ob das kapitel "mein erster synth" S. 76 im hnadbuch, schon gelesen wurde.
Antworten