implement a general purpose digital filter. use it in square for anti-aliasing (probably needs more tweaking)