There's a gen-based one in the Max6 examples folder.
One trick that I learned about on the forum for getting fractional bit reduction (ie 7bits) is multiplying a signal, then trunc~, then dividing by the same amount. You get the bit crushed thing, but smoothly variable. Very handy.
I'm on my iPad but ill try to post an example patch of that later when I get home.