public class FilterOneZero extends UnitFilter
y(n) = A0 * x(n) + A1 * x(n - 1)where y(n) is Output, x(n) is Input and x(n-1) is Input at the prior sample tick. Setting A1 positive gives a low-pass response; setting A1 negative gives a high-pass response. The bandwidth of this filter is fairly high, so it often serves a building block by being cascaded with other filters. If A0 and A1 are both 0.5, then this filter is a simple averaging lowpass filter, with a zero at SR/2 = 22050 Hz. If A0 is 0.5 and A1 is -0.5, then this filter is a high pass filter, with a zero at 0.0 Hz. A thorough description of the digital filter theory needed to fully describe this filter is beyond the scope of this document. Calculating coefficients is non-intuitive; the interested user is referred to one of the standard texts on filter theory (e.g., Moore, "Elements of Computer Music", section 2.4).
FilterLowPass
Modifier and Type | Field and Description |
---|---|
UnitVariablePort |
a0 |
UnitVariablePort |
a1 |
input, output
FALSE, PORT_NAME_AMPLITUDE, PORT_NAME_CUTOFF, PORT_NAME_FREQUENCY, PORT_NAME_FREQUENCY_SCALER, PORT_NAME_INPUT, PORT_NAME_OUTPUT, PORT_NAME_PAN, PORT_NAME_PHASE, PORT_NAME_PRESSURE, PORT_NAME_TIMBRE, PORT_NAME_TIME, synthesisEngine, TRUE, VERY_SMALL_FLOAT
Constructor and Description |
---|
FilterOneZero() |
Modifier and Type | Method and Description |
---|---|
void |
generate(int start,
int limit)
Perform essential synthesis function.
|
getInput, getOutput
addPort, addPort, autoStop, convertHalfLifeToMultiplier, convertTimeToRate, flattenOutputs, generate, getCircuit, getFramePeriod, getFrameRate, getId, getPortByName, getPorts, getSynthesisEngine, getSynthesizer, getTopUnit, getUnitGenerator, incrementWrapPhase, isEnabled, isStartRequired, printConnections, printConnections, printConnections, pullData, setCircuit, setEnabled, setFrameRate, setPort, setSynthesisEngine, start, start, start, stop, stop, stop
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getUnitGenerator, start, start, stop, stop
getUnitGenerator
public UnitVariablePort a0
public UnitVariablePort a1
public void generate(int start, int limit)
UnitGenerator
generate
in class UnitGenerator
start
- offset into port bufferslimit
- limit offset into port buffers for loop