Re: bit crusher abstraction
2010-05-01 05:21:52 GMT
Attached is a file with the three different formulas I gave last time for two-bit quantization, just for illustration -- any of these could work as a general bit-crusher with a little extra effort. Number one has a variant you can toggle on or off. Also notice how positive max-amp is an exception in numbers one and three -- it can be clipped out though. Matt On Thu, Apr 29, 2010 at 9:56 PM, Matt Barber <brbrofsvl <at> gmail.com> wrote: >>> Reduced bit depth (which is what I think 'bit-crushing' means) can be >>> achieved by dividing the signal by x, pass it through something like >>> [int~], multiply it by x again. An [int~] can be implemented by using >>> [wrap~] and [-~], which are both vanilla. >> >> It is also worth considering adding a DC offset. Your [wrap~] solution >> implements a floor-function, that is, rounding downwards. You can make it >> round to closest, by adding x/2 before rounding downwards. >> >> [expr int($v1)] is rounding zerowards (thus output zero corresponds to a >> twice bigger input range as any other input). Thus it will behave in a >> weird unequal way. >> >> When the volume gets low, the _effective_ bits-per-sample gets very low, >> because the relative precision of integers is proportional to amplitude >> (which is not the case with floats). Therefore, even with 16-bit audio, if >> your amplitude is 0.0001 times the max, it will feel as if it were 3-bit >> audio. In such circumstances, the differences between the possible >> roundings will become quite audible. >(Continue reading)
RSS Feed