I created a pong clone and I would like to add some sound effects when collisions occur. My problem is that every example I could find about synthesizing sound takes about 30 lines of code, considering my whole application has only 90 lines of code. I am looking for a simpler approach. Is there a simple way to create a beep sound of different tones? Duration does not matter. I just want a series of beeps with different tones.
The Java Sound APIs are designed to play sounds smoothly and continuously, even very long sounds. As part of this tutorial, we'll play an audio file using Clip and SourceDataLine Sound APIs provided by Java. We'll also play different audio format files.
The AudioSystem class acts as the entry point to the sampled-audio system resources. This class lets you query and access the mixers that are installed on the system. AudioSystem includes a number of methods for converting audio data between different formats, and for translating between audio files and streams.
java.awt.Toolkit.getDefaultToolkit().beep()
series of beeps?
int numbeeps = 10;
for(int x=0;x<numbeeps;x++)
{
java.awt.Toolkit.getDefaultToolkit().beep();
}
Here's a small example taken (and shortened) from Java Sound - Example: Code to generate audio tone
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 / 1000; i++ ) {
double angle = i / ( (float )44100 / 440 ) * 2.0 * Math.PI;
buf[ 0 ] = (byte )( Math.sin( angle ) * 100 );
sdl.write( buf, 0, 1 );
}
sdl.drain();
sdl.stop();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With