od Sukovec » stř 06. led 2016 15:11:18
pavlii: dekuji, prave jsi me donutil to pochopit na 100%
Integer ma presne dane hranice datoveho typu - tedy <0, (2^n - 1)> pro unsigned n-bitovy int (pro signed tam je urcity bias).
Floating point (ktery pouziva asi vetsina DAW) ma ty hranice na + a - nekonecnu, dalsi dostupne cislo je neco hrozne obrovskyho. Do single (32bit) floatu se vleze kazde jednotlive cislo, ktere lze vyjadrit 24 bity, cokoliv dalsiho uz bude trpet nepresnostmi (tedy existuje cislo n, pro ktere plati ze n == n+1 == n+2 ... n + m). Je to proto, ze mantisa 32bit floatu ma 23bit mantissu (float je -1^(znamenko)*mantisa^exponent)
Coz bude asi presne ten problem, proc neprekracovat 0dBFS v floating pointu
Jinymi slovy: 24bit integer (s kterym se spatne pocita, protoze bezne procesory radeji pocitaji s 32bitovymi adresami, nektere ARMy dokonce nezarovnane adresy nedokazi zpracovat) pouziva pro 0dBFS uplne stejna cisla, jako 32bit integer a 32bit float s tim rozdilem, ze narozdil od 24bit intu lze jit i do plusovych hodnot. U 32bit integeru snad 24dBFS a u floatu do nehoraznych cisel za cenu ztraty presnosti. (cisla jsou mozna spatna, nejsem na tohle zadny odbornik, ale nejdriv ze sebe nekdo musi udelat vola, aby to mohl nekdo osvetlit odborneji a poucit se vsichni
)
pavlii: dekuji, prave jsi me donutil to pochopit na 100% :)
Integer ma presne dane hranice datoveho typu - tedy <0, (2^n - 1)> pro unsigned n-bitovy int (pro signed tam je urcity bias).
Floating point (ktery pouziva asi vetsina DAW) ma ty hranice na + a - nekonecnu, dalsi dostupne cislo je neco hrozne obrovskyho. Do single (32bit) floatu se vleze kazde jednotlive cislo, ktere lze vyjadrit 24 bity, cokoliv dalsiho uz bude trpet nepresnostmi (tedy existuje cislo n, pro ktere plati ze n == n+1 == n+2 ... n + m). Je to proto, ze mantisa 32bit floatu ma 23bit mantissu (float je -1^(znamenko)*mantisa^exponent)
Coz bude asi presne ten problem, proc neprekracovat 0dBFS v floating pointu :)
Jinymi slovy: 24bit integer (s kterym se spatne pocita, protoze bezne procesory radeji pocitaji s 32bitovymi adresami, nektere ARMy dokonce nezarovnane adresy nedokazi zpracovat) pouziva pro 0dBFS uplne stejna cisla, jako 32bit integer a 32bit float s tim rozdilem, ze narozdil od 24bit intu lze jit i do plusovych hodnot. U 32bit integeru snad 24dBFS a u floatu do nehoraznych cisel za cenu ztraty presnosti. (cisla jsou mozna spatna, nejsem na tohle zadny odbornik, ale nejdriv ze sebe nekdo musi udelat vola, aby to mohl nekdo osvetlit odborneji a poucit se vsichni :) )