samer@46: package ishara.audio; samer@0: import javax.sound.sampled.*; samer@0: samer@0: samer@0: public class TestLine { samer@0: // Args: samer@0: public static double TwoPi=2*Math.PI; samer@0: samer@0: public static class SineSrc { samer@0: double ph,freq; samer@0: samer@0: public SineSrc(double f) { freq=f; ph=0; } samer@0: public void next(double [] buf, int l) { samer@0: for (int i=0; i "); samer@0: return; samer@0: } samer@0: samer@0: try { samer@0: dur=Double.parseDouble(args[0]); samer@0: freq=Double.parseDouble(args[1]); samer@0: bufsize=Integer.parseInt(args[2]); samer@0: N=Integer.parseInt(args[3]); samer@0: rate=22050; samer@0: samer@0: System.out.println("Playing test signal: "+dur+" s, "+freq+"% Hz"); samer@0: System.out.println("frame size="+N+" buffer size="+bufsize); samer@0: samer@0: buffer = new double[N]; samer@0: SineSrc src=new SineSrc(2*Math.PI*freq/rate); samer@0: LineSink sink=new LineSink(new AudioFormat((float)rate,16,1,true,false),bufsize); samer@0: try { samer@0: AudioSink.Writer w=sink.writer(N); samer@0: numframes = (int)(dur*rate/N); samer@0: samer@0: sink.start(); samer@0: for (int i=0; i