Lo-Fi Crusher

  • Author or source: David Lowenfels
  • Type: Quantizer / Decimator with smooth control
  • Created: 2003-04-01 15:34:40
notes
Yet another bitcrusher algorithm. But this one has smooth parameter control.

Normfreq goes from 0 to 1.0; (freq/samplerate)
Input is assumed to be between 0 and 1.
Output gain is greater than unity when bits < 1.0;
code
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
function output = crusher( input, normfreq, bits );
    step = 1/2^(bits);
    phasor = 0;
    last = 0;

    for i = 1:length(input)
       phasor = phasor + normfreq;
       if (phasor >= 1.0)
          phasor = phasor - 1.0;
          last = step * floor( input(i)/step + 0.5 ); %quantize
       end
       output(i) = last; %sample and hold
    end
end

Comments

what's the "bits" here? I tried to run the code, it seems it's a dead loop here, can not
figure out why
  • Date: 2005-10-26 23:25:13
  • By: dfl
bits goes from 1 to 16
I'm having trouble with the code as well. Is there something I'm missing?