The JRE, the sound, or the code?

  • Thread starter Andrew Thompson
  • Start date
A

Andrew Thompson

I am having a devil of a time trying to develop a new
sound format. After abandoning my earlier efforts on
the basis that I could not reconstruct the binary
representation to a usable sound, I revisited the
problem today and found my local JREs do not seem
to play the *original* sound that I am converting,
correctly.

Which leaves me to wonder whether it is the sound, the
code or the JRE that is the problem.

The code is ..
<sscce>
import java.net.URL;
import javax.sound.sampled.*;

public class LoopSound {

public static void main(String[] args) throws Exception {
URL url = new URL(
"http://pscode.org/media/leftright.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.
getAudioInputStream( url );
clip.open(ais);
clip.loop(5);
}
}
</sscce>

The sound is located at the URL shown above. It
was made using Java sound, is 2 seconds in duration,
stereo, and should fade between 441 Hz in one channel,
to 882 Hz in the other, and back again.

When I play it in the system default player, the Totem
Movie Player v. 2.24.3, it sounds as I expect.

Does it play OK for you?

(And as an aside) It should be loopable without any
perceptible 'click' at the loop points. Totem loops it
but has a noticeable click. Does it loop smoothly
for you?
 
K

Knute Johnson

Andrew said:
I am having a devil of a time trying to develop a new
sound format. After abandoning my earlier efforts on
the basis that I could not reconstruct the binary
representation to a usable sound, I revisited the
problem today and found my local JREs do not seem
to play the *original* sound that I am converting,
correctly.

Which leaves me to wonder whether it is the sound, the
code or the JRE that is the problem.

The code is ..
<sscce>
import java.net.URL;
import javax.sound.sampled.*;

public class LoopSound {

public static void main(String[] args) throws Exception {
URL url = new URL(
"http://pscode.org/media/leftright.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.
getAudioInputStream( url );
clip.open(ais);
clip.loop(5);
}
}
</sscce>

The sound is located at the URL shown above. It
was made using Java sound, is 2 seconds in duration,
stereo, and should fade between 441 Hz in one channel,
to 882 Hz in the other, and back again.

When I play it in the system default player, the Totem
Movie Player v. 2.24.3, it sounds as I expect.

Does it play OK for you?

(And as an aside) It should be loopable without any
perceptible 'click' at the loop points. Totem loops it
but has a noticeable click. Does it loop smoothly
for you?

Andrew:

Your problem is Java 1.5 or later. There were some changes made in Java
Sound in 1.5 that changed one of the threads to a daemon. So when your
program ends so does the sound. Try putting a sleep after the loop and
it will be obvious.

What you need to do is add a LineListener and wait until you get a STOP
LineEvent before you end your main thread.
 
A

Andrew Thompson

On Oct 5, 3:25 pm, Knute Johnson <[email protected]>
wrote:
....
Your problem is Java 1.5 or later.  There were some changes made in Java
Sound in 1.5 that changed one of the threads to a daemon.  

<head-desk>
I forgot that. And that said, even after making
/specific/ comment about it in the source of
BigClip!*
</head-desk>

D'Oh!

*
<http://pscode.org/javadoc/src-html/org/pscode/xui/sound/bigclip/
BigClip.html#line.28>
...So when your
program ends so does the sound.  Try putting a sleep after the loop and
it will be obvious.

What you need to do is add a LineListener and wait until you get a STOP
LineEvent before you end your main thread.

Good idea. The quick and dirty fix is to pop
a JOptionPane.

And to answer my own (second) question, it seems
to loop without any ugly clicks.

Thanks to you both.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,740
Latest member
AdolphBig6

Latest Threads

Top