!7 cmodule DownsampleFFTImage > DynImageSurface { switchable int w = 10; switchable int h = 10; afterVisualize { imageSurface_pixelated(imageSurface); setZoom(20); } start { dm_requireLiveAudioFFT(); dm_vmBus_onMessage_q newAudioFrequencyImage(voidfunc(virtual BWImage _img) { BWImage img = cast quickImport(_img); BWIntegralImage ii = new(img); setImage(scaleDownUsingIntegralImageBW(ii, w, h)); }); } }