3 ms·
Maybe it's stored as a fixed point? 4 bits for the signed whole number portion and 4 for the fractional part?
by jimktrains2 5y ago
Maybe it's stored as a fixed point? 4 bits for the signed whole number portion and 4 for the fractional part?
- kennywinker 5y agoI don't think that's enough precision? I.e. if you only have -7 to +7 range for the whole number and 0-16 for the fractional portion, how do you represent 6.9886? 1000/16 means increments of 62.5 so the closest numbers we can represent are either 7.000 or 6.9375 - but 6.93xx overlaps with log2(126) = 6.9773 and 7.000 overlaps with log2(128)
- danachow 5y agoIt’s not 8 bits. Most of the Yamaha chips seem to use 16 bits internally in 8.8 format (based on Raph Leviens work). Different models of Yamaha chips had different DAC setups, but on the DX7 the representation was 12.3 floating point - which I think was converted from the internal log scale fixed point to linear scale via a lookup table. So while the DX7 chips technically use both floating and fixed point it probably does all arithmetic in fixed point.