Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java generating sound

Tags:

java

audio

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.

like image 545
Hamza Yerlikaya Avatar asked Dec 19 '09 09:12

Hamza Yerlikaya


People also ask

Can Java play sounds?

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.

What is AudioSystem in Java?

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.


2 Answers

java.awt.Toolkit.getDefaultToolkit().beep()

series of beeps?

int numbeeps = 10;

for(int x=0;x<numbeeps;x++)
{
  java.awt.Toolkit.getDefaultToolkit().beep();
}
like image 140
Sev Avatar answered Oct 01 '22 22:10

Sev


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();
like image 25
tangens Avatar answered Oct 01 '22 22:10

tangens