public class B { static double SAMPLE_HZ=44100; static double STEP = 1/SAMPLE_HZ; static int OCTAVES = 160; static double BASEFREQ_HZ = 110; static double DURATION = 120; static double LOOPDURATION = 40; public static void main(String[] args) { System.out.println("; Sample Rate "+SAMPLE_HZ); System.out.println("; Channels 1"); double lastsec=0; double maxampl=0; for(double rt=0; rtmaxampl) { maxampl=Math.abs(v); System.err.println("new max ampl "+maxampl); } if(lastsec + 1 < rt) { System.err.println("Time "+rt); lastsec=rt; } } System.err.println("max amplitude was "+maxampl); } public static double wave(double t) { if(t<0 || t>LOOPDURATION) return 0; double thisfreq = BASEFREQ_HZ * Math.pow(2,4*(t/LOOPDURATION)); double phase = 2*Math.PI * t; double it = t/LOOPDURATION; //double amplitude=(1+Math.cos(2 * Math.PI * (t / LOOPDURATION - 0.5)))/2; double amplitude; if(t<(LOOPDURATION/2)) // attack amplitude = t / (LOOPDURATION/2); else //decay amplitude = 2 - t / (LOOPDURATION/2); double v= (Math.sin( thisfreq * phase )) * amplitude; return v; } }