package jass.generators; import jass.engine.*; /** OnePoleLowPass filter Y = H(z) X. H(z) = 1/(1 - g/z) y(t) = x(t) + g*y(t-1) @author Kees van den Doel (kvdoel@cs.ubc.ca) */ public class OnePoleLowPass extends FilterUG { protected float yt_1; protected float g = 0; // filter parameter /** Create. For derived classes. @param bufferSize Buffer size used for real-time rendering. */ public OnePoleLowPass(int bufferSize) { super(bufferSize); reset(); } /** Reset state. */ protected void reset() { yt_1 = 0; } /** Set filter parameter @param g filter param g */ public void setG(float g) { this.g = g; } /** Get filter parameter @return filter param g */ public float getG() { return g; } /** Compute the next buffer and store in member float[] buf. */ protected void computeBuffer() { int n = getBufferSize(); float[] srcBuf = srcBuffers[0]; for(int i=0;i<n;i++) { yt_1 = srcBuf[i] + g*yt_1; buf[i] = yt_1; } } }