import jm.util.*;

public final class Compress {    
	public static void main(String[] args){
        float[] data = Read.audio("Welcome.au");
        float threshold = 0.2f;
        float ratio = 2.0f;
        float gain = 2.0f;
        for (int i=0; i< data.length; i++) {
            // positive values
            if(data[i] > threshold) {
                data[i] = threshold + (data[i] - threshold) * (1.0f / ratio);
            }
            // negative values
            if(data[i] < -threshold) {
                data[i] = -threshold + (data[i] + threshold) * (1.0f / ratio);
            }  
            // apply the gain to all samples             
            data[i] *= gain;
            if (Math.abs(data[i]) > max) max = Math.abs(data[i]);
        }
        Write.audio(data, "Compressed.aif");
    }
}

