Warum klingt 24 bit int besser als 32 bit float ?

  • Ersteller CharlyBeck
  • Erstellt am

Ich kann mir vorstellen dass leute den unterschied hören zwischen....


  • Umfrageteilnehmer
    36
Man könnte ein Skript bauen, das den Dateien 24bit.wav und 32bit.wav zufällig generierte Namen gibt. Den Output des Skripts in eine Textdatei schreiben, die man vor dem Blindtest nicht öffnet.

Dann macht man den Blindtest und entscheidet sich für eine Datei. Nach der Entscheidung kann man in der Textdatei nachkucken, ob man richtig lag. Wenn man bei so einem Blindtest 5 mal richtig liegt, ist die Wahrscheinlichkeit hoch, dass man den Unterschied hört.

Hat der TE sowas gemacht?

GEnau darüber habe ich gerade nachgedacht. ich würde gleich noch die ergebnise mitzählen und eine statistik ausgeben. für den kompfort.

wie ich geschrieben habe, ich habe 20-30 mal die maus/space taste zum umschalten der klangquelle gedrückt und ein liedchen geträllert, bevor ich den test angefangen habe.... moment... welcher test war das als ich das zum ersten mal gemachte habe........ hmmm weiss nimmer.

und wie gesagt, ich weiss bis heute nicht, wie rum das ene.-mene-muh spiel geht mit dem man mich schon im kindergarten verarscht hat. aber ich denke, dieser zufallsgenerator ist ausreichend sicher....

letztlich könnte ja selbst bei einem herkömmlichen c-std-lib-random funktion der esoterische schwingäther angeregt die gehirnströme beeinflusst und so das ergebnis verfälscht werden... ;) (wofür man dann einen aluhut aufsetzen müsste, damit es keine verfälschung der studie verursacht)
 
wie du das nachher auch ausführst.

Was meinst du damit?

Eh hört sich so an, wie wenn du auch etwas ahnung hättest. Naja, die basis ist ja oftmals höchst "ungerade" zb. weiss nicht 15 bei irgendeinem der in dem ieee definierten standards. von daher hab ichs nicht ganz im griff, wie der exponent da rumeiert.

wenn ich 1.0 sage, dann meine ich ganz konkret das was max for live ausgibt, wenn man das objekt/Funktion sig_to_number oder wie das heisst verwendet. dann bekommt man den string formatierten float wert eines signal pegels raus. und der läuft - soweit ich beobachten konnte - immer zwischen - und + 1.0. (Habs nicht ordentlich getestet, aber ich denke aufgrund der stichproben darf man davon ausgehen)

ausserdem denke ich, es liegt nahe, dass das tatsächlich die physischen float werte sind, mit denen die daw rechnet und nicht irgendeine skalierte "view" der tatsächlichen float werte. das ist ja aber alles zweitrangig. jedenfalls wird der verwendete wertebereich nicht float,max /float.min sein sondern deutlich drunter. und zwar so, wie du sagst, dass der exponent 0 und die basis 10, da aber versch. ieee steandards eine andere basis verwenden, ist auch der exponent anders.... könnte aber durchaus sein, jetzt weiss ich was du vermutlich meintest. das war mir nicht so klar. auf dem weg findet man den wertebereich, wo der float am besten "performed"... oder?!

Ich habe jedenfalls begriffen, dass der float im oberen wertebereich, mit hohen exponenten viel grob granularer ist als im kleinen wertebereich, das sieht man ja auf der grafik mit den grünen strichen. Daher (bilde ich mir ein verstanden zu haben) bekommt man schon irgendwann einen qualitätsverlust, wenn man jenseitsmässig erst hochgained und dannach wieder runtergained. (obwohl das unter verdopplung der samplegrösse gar nicht -in solchem ausmass - passieren müsste (?)) im ableton 9 passierte das , das kannn man mit etwa 20-30 gain utilities deutlich ausprobieren, das hab ich damals auch gemacht. konkret z.b.

ein experiment das jeder in ableton mal machen kann:

input signal: 0db fs dannach utilities mit

20 x gain + 30db dannach 20 x gain - 30 db

bei 20x hört man schon einen unterschied, bei 10x deutlich weniger, bei 2x "keinen". (Da geht dann der streit los, wer ab wievielen gains einen unterschied hört )

Wir haben jetzt 2 themen: Die "besserkling" Geschmacks- und Hörvermögensdiskussion und die technische float diskussion. Letzteres wollte ich eig. eher wissen, ersteres ist aber zur belustigung durchaus tauglich ^^

ausserdem habe ich den eindruck, dass die akkustischen auswirkungen was den float typ angeht nicht so von den mixern und hobby beatbastlern erfasst sind... bei mir zumindest. float ist auch ziemlich tricky und da passieren auch höchst ekelhafte bugs im umgang mit floats. von daher ist es viel schwieriger zu verstehen, was da abgeht als bei 24 bit-ganzzahl-systemen. Dennoch innteresant das mal auszurollen.
 
Zuletzt bearbeitet:
- Bei floats ist der wertebereich für gewöhnlich +/- 1.0. (nachfolgend Normalbereich genannt)
Du meinst damit den Bereich, wo der Exponent 0 ist. Das ist ja nicht der Wertebereich wie du das nachher auch ausführst.

Ich würde auch gerne wissen, ob und wann da mal jemand einen Blindtest zwischen den beiden Varianten bestanden hat wenn nix klippt.
Der Wertebereich +/- 1.0 aber das ist Quatsch. Der Wertebereich +/- 1.9999.... entspricht der Fließkommazahl mit Exponente 0 weil 1.99×10^0 ist 1.99 mit 10er Basis.

Is aber auch nicht so wichtig.
 
- Bei floats ist der wertebereich für gewöhnlich +/- 1.0. (nachfolgend Normalbereich genannt)
Du meinst damit den Bereich, wo der Exponent 0 ist. Das ist ja nicht der Wertebereich wie du das nachher auch ausführst.

Ich würde auch gerne wissen, ob und wann da mal jemand einen Blindtest zwischen den beiden Varianten bestanden hat wenn nix klippt.
Der Wertebereich +/- 1.0 aber das ist Quatsch. Der Wertebereich +/- 1.9999.... entspricht der Fließkommazahl mit Exponente 0 weil 1.99×10^0 ist 1.99 mit 10er Basis.

Is aber auch nicht so wichtig.

Ja ist nicht so wichtig... Abgesehen davon gilt aber x * 10^0 = x, von daher ist deine beweisführung nicht ganz so stichhaltig wie sie vl sein sollte ;)

Ich habe aber echt schon öfters im max gedebugt und immer waren meine erwarteten werte etwa -1 bis +1, aber welcher wertebereich denn nun der ideale ist und welcher verwendet wird ist eig. zweitrangig zumindest für meine betrachtung im ET.

ich hab übrigens die frage gerade in einem anderen forum gestellt und da waren sich etwa 10/10 leuten sicher, dass sie den unterschied zwischen 320kb mp3 und cd qualität hören. wobei keiner drauf einging, wie/ob er sichergestellt hat dass das ergebnis unvoreingenommen ermittelt wurde, einer sagte auf nem ipod ohrstöpsel hörst dus nicht aber auf gscheiten monitoren schon. fazit: Der ein oder andere hier sollte vielleicht mal eine grosse packung wattestäbchen kaufen, BEVOR er den geposteten test macht :)

EDIT: Für einen solchen test ist aber auch ausschlaggebend, wie schnell und wie sauber man zwischen den hörquellen als getesteter hin und herschalten kann. je schneller und sauberer desto eher und einfacher findet man den unterschied raus. das ist das hauptproblem, wenn man sich ein tool schreiben will, weil irgendwelche "free-mp3-player-web-class-libraries" nunmal etwas träger sind als eine gscheite daw... deshalb hab ich das immer in audacity oder ableton gemacht.... ein max device könnte man bauen :rolleyes:
 
Zuletzt bearbeitet:
Der Vorteil bei 32bit-FP ist, dass man Transienten, die bei 24bit abgeschnitten wurden, wieder "zurückholen" kann.
Wenn man es richtig macht.
 
Der Vorteil bei 32bit-FP ist, dass man Transienten, die bei 24bit abgeschnitten wurden
ufff..... das mutet mir jetzt wieder esoterisch an.... aber das video werd ich mir vormerken
 
da gibts sonen blind test fertig... wobei es wesentlich einfacher ist, wenn man direkt zwischen den files umschalten kann, bei kleinem loop. das geht da glaub nicht.

https://www.npr.org/sections/therec...L9LY_L1-Y9RXSDNYOkQDzlNG0u1fw&t=1617444343899

Also bin jetzt extra nochmal zu den gescheiten monitoren gegangen aber ich muss gestehen, ich tue mir da sehr schwer in meinem Übernächtigten zustand mich überhaupt für eines zu entscheiden. Aber wie gesagt:

- Je schneller man als tester hin und her wechseln umso einfacher
- Je besser man den song kennt umso einfacher
- Je "transparenter und klarer" der song gemischt ist umso einfacher
- Je repititiver die musik umso einfacher

Wenn du also ambient/lounge hörer einen madig gemixten und recordeten uralten rocksong hast, den du noch nie gehört hast und der vor komischen distortion effkten, phasern und quantizern zugemüllt ist, umso schwieriger wirst du entscheiden können welche qualität besser ist.

zudem ging es mir nicht um die bessere quali sondern primär erstmal den unterschied zu hören und sagen "bässe voller", "höhen seidiger" usw. wenn da keine bässe sind und die hören schon im mix total kratzig sind, dann wirds halt schwierig....

will sagen, da könnten einige wesentlich mehr unterschiede hören, wenn sie in der richtigen verfassung den richtigen song mit der richtigen technik und methodik vergleichen...
 
Ok mit Monitoren statt BD 880 gehts doch besser:

Hier meine ergebnise des online quiz. Meine Punktevergabe lief so:

0 Punkte: mp3-128 ausgewählt
1 Punkte: mp3-320 ausgewählt
2 Punkte: wav ausgewählt

Frage 1: 1 Punkt... 320mp statt wav gewählt
Frage 2: 2 Punkte..Ich glaub jetzt weiss ich wie man hinhören muss...
Frage 3: 1 Punkt... Wieder auf die vermeintlich präsenteren Höhen reingefallen, der ist aber auch fies mit dem disto/Bitchrushed synth sound
Frage 4: 1 Punkt...Damn ich hätte schwören können, die bässe sind runder :D
Frage 5: 1 Punkt...Wieder hat mir das mp3-320 besser gefallen. Ich glaub ich hör zuviele mp3s :(
Frage 6: 2 Punkte mit acapella isses einfacher... Da hör ich die geschmeidigen oberen mitten deutlich.

Fazit: 128 hör ich deutlich, Unterschied zwischen wav und mp3 hör ich auch, wobei meine wahl welches die bessere quali hat oft falsch ist.

PS: Hab die Bilder extra wieder rausgemacht, weil die songs immer gleich sind wie es scheint.

Und jetzt Ihr? Ich glaube es ist einfacher als manche vermuten.

Aber ja, ich denke mein bekannter hat beim vergleich 24/32 das dithering gehört. das hört man nämlich auch sehr deutlich im vergleich 24 mit/ohne dithering hab ich auch schon bestanden...
 
- Bei floats ist der wertebereich für gewöhnlich +/- 1.0. (nachfolgend Normalbereich genannt)
Du meinst damit den Bereich, wo der Exponent 0 ist. Das ist ja nicht der Wertebereich wie du das nachher auch ausführst.

Ich würde auch gerne wissen, ob und wann da mal jemand einen Blindtest zwischen den beiden Varianten bestanden hat wenn nix klippt.
Der Wertebereich +/- 1.0 aber das ist Quatsch. Der Wertebereich +/- 1.9999.... entspricht der Fließkommazahl mit Exponente 0 weil 1.99×10^0 ist 1.99 mit 10er Basis.

Is aber auch nicht so wichtig.
Das ist sehr wohl korrekt. Bei float32 ist die Zahl vor dem Komma auf 1 normiert. Damit ist +/- 1.111111.... ×2^0 mit 23 1en nach dem Komma der Wertebereich zum Exponent 0. Wenn ich mich nicht irre ;) Die Zahl vor dem "×" ist im Binärsystem zu lesen. Müsste also etwas mit +/- 1.999... rauskommen.....
 
"zurückholen" kann. Wenn man es richtig macht.
Gutes Video!

haha Zurückholen.... man sollte die "" beachten

Einen winzig kleinen Qualitätsverlust gibt das aber schon... siehe grüne balkengraphic im ET. Aber der ist dann glaub wirklich vernachlässigbar...

Hab ja dieses kleine ableton experiment gepostet. damit sollte sich das hörbar machen lassen, was passiert, wenn mans ganz wild treibt. Ein float kann ja durchaus auch richtig clippen. Aber das passiert wohl kaum versehentlich ;)
 
Mit erwähnter und von dir "fein" ignorierter Begründung ;)
Habe ich schon zur Kenntnis genommen.

Aber die Standards bei solchen Tests gibt es aus guten Gründen. Wir alle können/sollten uns da nicht so ganz trauen. Egal, wie gut die Ohren sind.

Bei derlei braucht es Sorgfalt, im Prozedere und bei der Formulierung der Ergebnisse und Gedanken dazu.
 
  • Danke
Reaktionen: sts
Warum empfinden viele 24 Bit Integer-Wavs als angenehmer klingend als 32 Bit Float wavs?

Hab ich tatsächlich noch nie gehört und stufe ich spontan gleich unter den Hifi-Esoterik-Fritzen ein.
Laut einem grösser angelegten Doppelblindtest vor glaube ich ca. 10 Jahren war das (ich erinnere mich leider nicht mehr an Details) hört man nicht mal ein 320kbs MP3 gegenüber CD (16bit) raus. :schulterzuck: Ich kanns auch nicht. bei 256kbs fang ichs an zu merken, alles drunter wird dann ziemlich offensichtlich.

Also, ich hör 320kbp vs. 16bit schon raus, aber es ist ein wirklich schmaler Grad, man braucht sehr gute Ohren, und im Doppelblindtest würde ich ggf. auch das ein oder andere Mal daneben liegen. Das hängt u.a. auch von der Musik ab. Ich höre das vor allem bei den hohen Frequenzen, daß da was nicht ganz so sauber auflöst. Zumindest bei meinen eigenen Produktionen konnte ich das feststellen. Wenn jedoch eines der Files ggf. 0,5db lauter ist, klingt das schon besser.

Ich nehme nur noch mit 48bit auf, das klingt doppelt so gut wie 24bit :girlp: Frohe Ostern !:love:
 
- Bei floats ist der wertebereich für gewöhnlich +/- 1.0. (nachfolgend Normalbereich genannt)
Du meinst damit den Bereich, wo der Exponent 0 ist. Das ist ja nicht der Wertebereich wie du das nachher auch ausführst.

Ich würde auch gerne wissen, ob und wann da mal jemand einen Blindtest zwischen den beiden Varianten bestanden hat wenn nix klippt.
Der Wertebereich +/- 1.0 aber das ist Quatsch. Der Wertebereich +/- 1.9999.... entspricht der Fließkommazahl mit Exponente 0 weil 1.99×10^0 ist 1.99 mit 10er Basis.

Is aber auch nicht so wichtig.
Das ist sehr wohl korrekt. Bei float32 ist die Zahl vor dem Komma auf 1 normiert. Damit ist +/- 1.111111.... ×2^0 mit 23 1en nach dem Komma der Wertebereich zum Exponent 0. Wenn ich mich nicht irre ;) Die Zahl vor dem "×" ist im Binärsystem zu lesen. Müsste also etwas mit +/- 1.999... rauskommen.....

Ok, zwar auch keine beweisführung ;) aber wenn alle bits der mantise/coefficent/significant auf 1 stehen, dann hast du die maximale performance rausgeholt, oder? (Beweisführung auch unbekannt)... aber das kauf ich dir das glatt ab...ich habs im urin dass das sinn ergibt...

ich will nur kurz schauen, was max nach konvertieriung signal->number draus macht:
upload_2021-4-3_14-24-34.png

Ok auf jedenfall > 1.0 aber deutlich kleiner als 1.9999 - zu deutlich will ich meinen.
Ausserdem bin ich ja auch 0.01 db FS.
Scheint wohl so, wie wenn er da skaliert.

Wie kommst du auf die 1.9999... ?

Weiss nicht, das ist jetzt bzgl float arithmetik etwas neuland ich würd rechnen:

du hast 24 bits für die mantise
minus 1 bit für sign = 23 bit
bin(1111 1111 1111 1111 1111 111) =
dec(2^23) = dec(8388608)
du hast basis 2, aber is ja egal
mit exponent 0 hast du dann (immer noch - egal wie die basis ist)
dec(8388608)
denn x^0 = 1 gilt für x die menge aller reelen ? oder rationalen ? zahlen // Kein Plan wie man das sagt

und wie passt dann 8388608 mit deiner 1.999 zusammen?
Jetzt bin ich mir doch nicht so sicher, dass du recht hattest..

Is auch echt egal, ich will das musikerforum damit nicht überlasten, suche grad nach ner informatik gruppe dafür...

Jedenfalls wenn man ein etwas über 0dbfs signal per max in einen float umwandelt kommt gut 1 raus.
Das passt dann mit deiner aussage nur zusammen, wenn sie an der stelle "snapshot~" skalieren.


upload_2021-4-3_14-24-34.png
 
Die Frage des TE erübrigt sich eigentlich, da das Audiosignal, das man hört (und letztlich darauf kommt nur es an), immer von einem D/A-Wandler generiert wird. Und diese Wandler verarbeiten m.W. generell Integer-Werte.
Es gab zwar Entwicklungen für Wandler, die Fließkommazahlen verarbeiten, aber ich glaube nicht, dass so etwas in den Massenmarkt eingezogen ist.
Dazu habe ich einen interessanten Aufsatz gefunden:
Floating-Point-Zahlen in digitaler Audioanwendung - Zonque.org (yumpu.com)
upload_2021-4-3_15-31-13.png


Bliebe also als Diskussionsthema offen, ob die Umwandlung des FP-Wertes in den Int-Wert einen Qualitätsverlust mit sich bringt.
Ich wüsste nicht warum.
Man sollte auch bedenken, dass DAWs aus Gründen der gegenüber Integer-Verarbeitung besseren Auflösung, Dynamik usw. intern das FP-Format verwenden.
 

Oft gelesene Themen

Zurück
Oben