@@ -0,0 +1,1050 @@
+package framework.modifiers;%0A%0Aimport framework.modifiers.Modifier;%0Aimport framework.parameters.Parameter;%0Aimport framework.parameters.DoubleParameter;%0Aimport framework.generators.Generator;%0A%0A/**%0A * Implements a delay effect.%0A */%0Apublic class Delay extends Modifier %7B%0A    /**%0A     * Create a Delay object.%0A     */%0A    public Delay() %7B%0A        delay = new DoubleParameter(this, %22Delay%22, 0., 0., 60.);%0A        decay = new DoubleParameter(this, %22Decay%22, 0., 0., 1.);%0A    %7D%0A%0A    public Double%5B%5D apply(Double%5B%5D data, Double f, Double d) %7B%0A        Double%5B%5D result     = new Double%5Bdata.length%5D;%0A        int delaySamples    = (int) (delay.getValue() * Generator.SAMPLE_RATE);%0A%0A        for(int i = 0; i %3C data.length - delaySamples; i++) %7B%0A            result%5Bi + delaySamples%5D = data%5Bi%5D * decay.getValue();%0A        %7D%0A%0A        return result;%0A    %7D%0A%0A    public Parameter%5B%5D getParameters() %7B%0A        return new Parameter%5B%5D%7Bdelay, decay%7D;%0A    %7D%0A%0A    public String toString() %7B%0A        return %22Delay%22;%0A    %7D%0A%0A    DoubleParameter delay;%0A    DoubleParameter decay;%0A%7D

Create a Delay Modifier.