generate_sound.java
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
public class generate_sound {
public static void main(String[] args) throws LineUnavailableException {
// TODO Auto-generated method stub
double Do = 261.6;
double Re = 293.7;
double Mi = 329.6;
double Fa = 349.2;
double So = 392.0;
double La = 440;
double Si = 493.9;
double H_Do = 523.3;
play(Do);
play(Re);
play(Mi);
play(Fa);
play(So);
play(La);
play(Si);
play(H_Do);
}
static void play(double note) throws LineUnavailableException{
byte[] buf = new byte[ 1 ];
AudioFormat af = new AudioFormat( (float )44100, 8, 1, true, false );
SourceDataLine sdl = AudioSystem.getSourceDataLine( af );
sdl.open();
sdl.start();
for( int i = 0; i < 1000 * (float )44100 / 2000; i++ ) {
double angle = i / ( (float )44100 / note ) * 2.0 * Math.PI;
buf[ 0 ] = (byte )( Math.sin( angle ) * 100 );
sdl.write( buf, 0, 1 );
}
sdl.drain();
sdl.stop();
}
}