code: public JavaSound createSound(final JavaAssets.Resource rsrc, final boolean music) {
      final JavaSound sound = new JavaSound();
      ((JavaPlatform) platform).invokeAsync(new Runnable() {
        public void run () {
          try {
            AudioInputStream ais = rsrc.openAudioStream();
            Clip clip = AudioSystem.getClip();
            if (music) {
              clip = new BigClip(clip);
            }
            AudioFormat baseFormat = ais.getFormat();
            if (baseFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
              AudioFormat decodedFormat = new AudioFormat(
                AudioFormat.Encoding.PCM_SIGNED,
                baseFormat.getSampleRate(),
                16, // we have to force sample size to 16
                baseFormat.getChannels(),
                baseFormat.getChannels()*2,
                baseFormat.getSampleRate(),
                false // big endian
                );
              ais = AudioSystem.getAudioInputStream(decodedFormat, ais);
            }
            clip.open(ais);
            dispatchLoaded(sound, clip);
          } catch (Exception e) {
            dispatchLoadError(sound, e);
          }
        }
      });
      return sound;
    }
docs: Creates a sound instance from the audio data available via {@code in}.
  
  @param rsrc a resource via which the audio data can be read.
  @param music if true, a custom {@link Clip} implementation will be used which can handle long
  audio clips; if false, the default Java clip implementation is used which cannot handle long
  audio clips.