From Joe.Darcy at Sun.COM Tue Jul 22 15:53:44 2008 From: Joe.Darcy at Sun.COM (Joe Darcy) Date: Tue, 22 Jul 2008 15:53:44 -0700 Subject: Updating Gervill for OpenJDK 6 build 12 Message-ID: <488664F8.5000109@sun.com> Hello. With my OpenJDK 6 release manager hat on, I've been working to update the version of Gervill used to OpenJDK 6 to a newer version that passes the JCK tests, etc. and I'd like some review of my integration work. Before this exercise, I don't have any prior experience with sound code. A few comments, the copyright header in file SoftCubicResampler.java in the Gervill CVS master contains the typo "suabject" instead of "subject." From some casual examination of the code, it seems to use raw types throughout, that is "List" rather than "List", etc. It would be better to covert to using generics; I think IDEs have refactorings to help this now. There are some differences between the latest Gervill CVS from the project's site and the Gervill overlays in IcedTea 6. In particular, IcedTea has changes to SoftMixingMixer.java and SoftSynthesizer.java as well as some additional files, WaveExtensibleFileReader.java and WaveFloatFileWriter.java. I'd prefer to limit future merging work between the three code bases, Gervill CVS, OpenJDK 6, and IcedTea overlays, so in the context of updating Gervill for OpenJDK 6 b12, I think it would be good to resolve these remaining few differences. The test directories are the same in all three code bases, except I don't pick up a missing newline at the end of ./SoftCubicResampler/Interpolate.java. During the update I ran into some testing issues, both with the original Gervill integration in OpenJDK 6 b10 as well as the new code for b12. Specifically, the 9 regression tests javax/sound/midi/Gervill/SoftAudioSynthesizer/Open.java javax/sound/midi/Gervill/SoftSynthesizer/GetLatency.java javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver.java javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver2.java javax/sound/midi/Gervill/SoftSynthesizer/GetReceivers.java javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitter.java javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitters.java javax/sound/midi/Gervill/SoftSynthesizer/ImplicitOpenClose.java javax/sound/midi/Gervill/SoftSynthesizer/Open.java can fail, seemingly dependent on how one logs into the machine. What are the necessary and sufficient conditions for permissions to run these tests? When they occur, the failures I see look like: Windows ========= java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian is supported. at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) at javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) at Open.main(Open.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) at java.lang.Thread.run(Thread.java:636) Linux ====== STDERR: java: conf.c:3109: snd_config_update_free: Assertion `update->count > 0 && update->finfo' failed. TEST RESULT: Failed. Unexpected exit from test [exit code: 134] Solaris ======= java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian is supported. at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) at javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) at Open.main(Open.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) at java.lang.Thread.run(Thread.java:636) These failures occur with the essentially Gervill CVS files I'm using as well as the IcedTea versions. I've uploaded my webrev compared to the OpenJDK 6 b11 sources to http://dcstaff.invokedynamic.info/index.php?title=Image:darcy-6717691.tgz Below are the diffs of between Gervill CVS and my workspace and the recent IcedTea overlays and my workspace; I just loop over the Java files in the base directory, print out the file name, and then the result of diff-ing with the corresponding files in my workspace. Thanks, -Joe Latest Gervill CVS (July 21, 2008) vs my workspace: ======================================== AudioFileSoundbankReader.java AudioFloatConverter.java AudioFloatFormatConverter.java AudioFloatInputStream.java AudioSynthesizer.java AudioSynthesizerPropertyInfo.java DLSInfo.java DLSInstrument.java DLSModulator.java DLSRegion.java DLSSample.java DLSSampleLoop.java DLSSampleOptions.java DLSSoundbank.java DLSSoundbankReader.java EmergencySoundbank.java FFT.java InvalidDataException.java InvalidFormatException.java JARSoundbankReader.java ModelAbstractChannelMixer.java ModelAbstractOscillator.java ModelByteBuffer.java ModelByteBufferWavetable.java ModelChannelMixer.java ModelConnectionBlock.java ModelDestination.java ModelDirectedPlayer.java ModelDirector.java ModelIdentifier.java ModelInstrument.java ModelInstrumentComparator.java ModelMappedInstrument.java ModelOscillator.java ModelOscillatorStream.java ModelPatch.java ModelPerformer.java ModelSource.java ModelStandardDirector.java ModelStandardTransform.java ModelTransform.java ModelWavetable.java RIFFInvalidDataException.java RIFFInvalidFormatException.java RIFFReader.java RIFFWriter.java SF2GlobalRegion.java SF2Instrument.java SF2InstrumentRegion.java SF2Layer.java SF2LayerRegion.java SF2Modulator.java SF2Region.java SF2Sample.java SF2Soundbank.java SF2SoundbankReader.java SimpleInstrument.java SimpleSoundbank.java SoftAbstractResampler.java SoftAudioBuffer.java SoftAudioProcessor.java SoftAudioPusher.java SoftChannel.java SoftChannelProxy.java SoftChorus.java SoftControl.java SoftCubicResampler.java 8c8 < * particular file as suabject to the "Classpath" exception as provided --- > * particular file as subject to the "Classpath" exception as provided SoftEnvelopeGenerator.java SoftFilter.java SoftInstrument.java SoftJitterCorrector.java SoftLanczosResampler.java SoftLimiter.java SoftLinearResampler.java SoftLinearResampler2.java SoftLowFrequencyOscillator.java SoftMainMixer.java SoftMidiAudioFileReader.java SoftMixingClip.java SoftMixingDataLine.java SoftMixingMainMixer.java SoftMixingMixer.java SoftMixingMixerProvider.java SoftMixingSourceDataLine.java SoftPerformer.java SoftPointResampler.java SoftProcess.java SoftProvider.java SoftReceiver.java SoftResampler.java SoftResamplerStreamer.java SoftReverb.java SoftShortMessage.java SoftSincResampler.java SoftSynthesizer.java SoftTuning.java SoftVoice.java IcedTea 6 58510fd936ff overlays vs my workspace ====================================== AudioFileSoundbankReader.java AudioFloatConverter.java AudioFloatFormatConverter.java AudioFloatInputStream.java AudioSynthesizer.java AudioSynthesizerPropertyInfo.java DLSInfo.java DLSInstrument.java DLSModulator.java DLSRegion.java DLSSample.java DLSSampleLoop.java DLSSampleOptions.java DLSSoundbank.java DLSSoundbankReader.java 50,51d49 < } catch(IOException ioe) { < return null; EmergencySoundbank.java FFT.java InvalidDataException.java InvalidFormatException.java JARSoundbankReader.java ModelAbstractChannelMixer.java ModelAbstractOscillator.java ModelByteBuffer.java ModelByteBufferWavetable.java ModelChannelMixer.java ModelConnectionBlock.java ModelDestination.java ModelDirectedPlayer.java ModelDirector.java ModelIdentifier.java ModelInstrument.java ModelInstrumentComparator.java ModelMappedInstrument.java ModelOscillator.java ModelOscillatorStream.java ModelPatch.java ModelPerformer.java ModelSource.java ModelStandardDirector.java ModelStandardTransform.java ModelTransform.java ModelWavetable.java RIFFInvalidDataException.java RIFFInvalidFormatException.java RIFFReader.java RIFFWriter.java SF2GlobalRegion.java SF2Instrument.java SF2InstrumentRegion.java SF2Layer.java SF2LayerRegion.java SF2Modulator.java SF2Region.java SF2Sample.java SF2Soundbank.java SF2SoundbankReader.java 49,50d48 < } catch(IOException ioe) { < return null; SimpleInstrument.java SimpleSoundbank.java SoftAbstractResampler.java SoftAudioBuffer.java SoftAudioProcessor.java SoftAudioPusher.java SoftChannel.java 1197,1199c1197 < // Should only return lower 7 bits, < // even when controller is "boosted" higher. < return this.controller[controller] & 127; --- > return this.controller[controller]; SoftChannelProxy.java SoftChorus.java SoftControl.java SoftCubicResampler.java 8c8 < * particular file as suabject to the "Classpath" exception as provided --- > * particular file as subject to the "Classpath" exception as provided SoftEnvelopeGenerator.java SoftFilter.java SoftInstrument.java SoftJitterCorrector.java SoftLanczosResampler.java SoftLimiter.java SoftLinearResampler.java SoftLinearResampler2.java SoftLowFrequencyOscillator.java SoftMainMixer.java SoftMidiAudioFileReader.java SoftMixingClip.java SoftMixingDataLine.java SoftMixingMainMixer.java SoftMixingMixer.java 357,359d356 < DataLine.Info info = new DataLine.Info( < SourceDataLine.class, format); < 368,369c365,413 < line = (SourceDataLine) defaultmixer.getLine(info); < else --- > { > // Search for suitable line > > DataLine.Info idealinfo = null; > AudioFormat idealformat = null; > > Line.Info[] lineinfos = defaultmixer.getSourceLineInfo(); > idealFound: > for (int i = 0; i < lineinfos.length; i++) { > if(lineinfos[i].getLineClass() == SourceDataLine.class) > { > DataLine.Info info = (DataLine.Info)lineinfos[i]; > AudioFormat[] formats = info.getFormats(); > for (int j = 0; j < formats.length; j++) { > AudioFormat format = formats[j]; > if(format.getChannels() == 2 || > format.getChannels() == AudioSystem.NOT_SPECIFIED) > if(format.getEncoding().equals(Encoding.PCM_SIGNED) || > format.getEncoding().equals(Encoding.PCM_UNSIGNED)) > if(format.getSampleRate() == AudioSystem.NOT_SPECIFIED || > format.getSampleRate() == 48000.0) > if(format.getSampleSizeInBits() == AudioSystem.NOT_SPECIFIED || > format.getSampleSizeInBits() == 16) > { > idealinfo = info; > int ideal_channels = format.getChannels(); > boolean ideal_signed = format.getEncoding().equals(Encoding.PCM_SIGNED); > float ideal_rate = format.getSampleRate(); > boolean ideal_endian = format.isBigEndian(); > int ideal_bits = format.getSampleSizeInBits(); > if(ideal_bits == AudioSystem.NOT_SPECIFIED) ideal_bits = 16; > if(ideal_channels == AudioSystem.NOT_SPECIFIED) ideal_channels = 2; > if(ideal_rate == AudioSystem.NOT_SPECIFIED) ideal_rate = 48000; > idealformat = new AudioFormat(ideal_rate, ideal_bits, > ideal_channels, ideal_signed, ideal_endian); > break idealFound; > } > } > } > } > > if(idealformat != null) > { > format = idealformat; > line = (SourceDataLine) defaultmixer.getLine(idealinfo); > } > } > > if(line == null) SoftMixingMixerProvider.java SoftMixingSourceDataLine.java SoftPerformer.java SoftPointResampler.java SoftProcess.java SoftProvider.java SoftReceiver.java SoftResampler.java SoftResamplerStreamer.java SoftReverb.java SoftShortMessage.java SoftSincResampler.java SoftSynthesizer.java 540a541,546 > File userhome = null; > File emg_soundbank_file = null; > > /* > * Try to load saved generated soundbank > */ 541a548,563 > userhome = new File(System.getProperty("user.home"), > ".gervill"); > emg_soundbank_file = new File(userhome, "soundbank-emg.sf2"); > Soundbank sbk = MidiSystem.getSoundbank(emg_soundbank_file); > defaultSoundBank = sbk; > return defaultSoundBank; > } catch (AccessControlException e) { > } catch (Exception e) { > //e.printStackTrace(); > } > > try { > > /* > * Generate emergency soundbank > */ 542a565,574 > > /* > * Save generated soundbank to disk for faster future use. > */ > if(defaultSoundBank != null) > { > if(!userhome.exists()) userhome.mkdirs(); > if(!emg_soundbank_file.exists()) > ((SF2Soundbank)defaultSoundBank).save(emg_soundbank_file); > } 594,596d625 < if (soundbank == null || !isSoundbankSupported(soundbank)) < throw new IllegalArgumentException("Unsupported soundbank: " + soundbank); < 621,623d649 < if (soundbank == null || !isSoundbankSupported(soundbank)) < throw new IllegalArgumentException("Unsupported soundbank: " + soundbank); < SoftTuning.java SoftVoice.java WaveExtensibleFileReader.java diff: /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java: No such file or directory WaveFloatFileReader.java 74a75 > long framerate = 1; 89c90 < /* framerate = */chunk.readUnsignedInt(); --- > framerate = chunk.readUnsignedInt(); 106c107 < framesize, samplerate, false); --- > framesize, framerate, false); WaveFloatFileWriter.java diff: /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java: No such file or directory From kalli at midverk.is Thu Jul 24 20:10:26 2008 From: kalli at midverk.is (Karl Helgason) Date: Fri, 25 Jul 2008 03:10:26 +0000 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <488664F8.5000109@sun.com> References: <488664F8.5000109@sun.com> Message-ID: <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> Hi Joe, Gervill CVS has the newest code and Gervill overlays in IcedTea 6 are then copied from Gervill CVS. Any fixes that have been done in Gervill overlays in IcedTea 6 has also been done Gervill CVS. Gervill in OpenJDK 6 b10 was based on version 0.9 of Gervill as can be seen in the CHANGES file. I have fixed the "suabject" typo in the SoftCubicResampler.java in the Gervill CVS master. Where did you find raw types in the code, there aren't supposed to be any. WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader has been moved to src.floatwav in the Gervill CVS. Because they aren't directly related with Gervill Synthesizer. They simply add support for float encoded Wave files. And WaveExtensibleFileReader is also a proposal how we should store channel mask in AudioFormat properties (used for multi-channel wave files). SoftMixingMixer is a experimental mixer to replace the functionality of the Java Sound Audio Engine mixer. It performs software audio mixing, which is useful when the audio hardware doesn't support mixing. It is not yet fully ready. And thus is disabled in the IcedTea. Those 9 regression tests fails because we aren't able to open audio device with default format. This is the code that fails: AudioFormat format = new AudioFormat(44100, 16, 2, true, false) line = AudioSystem.getSourceDataLine(getFormat()); It will be interesting to know if this code fails under those conditions which the regression tests fail in. And it will also be interesting to know if these tests also fails if you enable the SoftMixingMixerProvider mixer provider. regards, Karl ________________________________________ Fr?: sound-dev-bounces at openjdk.java.net [sound-dev-bounces at openjdk.java.net] Fyrir hönd Joe Darcy [Joe.Darcy at Sun.COM] Sent: 22. j?l? 2008 22:53 Vi?takandi: audio-engine-dev at openjdk.java.net Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; Dalibor.Topic at Sun.COM Efni: Updating Gervill for OpenJDK 6 build 12 Hello. With my OpenJDK 6 release manager hat on, I've been working to update the version of Gervill used to OpenJDK 6 to a newer version that passes the JCK tests, etc. and I'd like some review of my integration work. Before this exercise, I don't have any prior experience with sound code. A few comments, the copyright header in file SoftCubicResampler.java in the Gervill CVS master contains the typo "suabject" instead of "subject." From some casual examination of the code, it seems to use raw types throughout, that is "List" rather than "List", etc. It would be better to covert to using generics; I think IDEs have refactorings to help this now. There are some differences between the latest Gervill CVS from the project's site and the Gervill overlays in IcedTea 6. In particular, IcedTea has changes to SoftMixingMixer.java and SoftSynthesizer.java as well as some additional files, WaveExtensibleFileReader.java and WaveFloatFileWriter.java. I'd prefer to limit future merging work between the three code bases, Gervill CVS, OpenJDK 6, and IcedTea overlays, so in the context of updating Gervill for OpenJDK 6 b12, I think it would be good to resolve these remaining few differences. The test directories are the same in all three code bases, except I don't pick up a missing newline at the end of ./SoftCubicResampler/Interpolate.java. During the update I ran into some testing issues, both with the original Gervill integration in OpenJDK 6 b10 as well as the new code for b12. Specifically, the 9 regression tests javax/sound/midi/Gervill/SoftAudioSynthesizer/Open.java javax/sound/midi/Gervill/SoftSynthesizer/GetLatency.java javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver.java javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver2.java javax/sound/midi/Gervill/SoftSynthesizer/GetReceivers.java javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitter.java javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitters.java javax/sound/midi/Gervill/SoftSynthesizer/ImplicitOpenClose.java javax/sound/midi/Gervill/SoftSynthesizer/Open.java can fail, seemingly dependent on how one logs into the machine. What are the necessary and sufficient conditions for permissions to run these tests? When they occur, the failures I see look like: Windows ========= java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian is supported. at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) at javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) at Open.main(Open.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) at java.lang.Thread.run(Thread.java:636) Linux ====== STDERR: java: conf.c:3109: snd_config_update_free: Assertion `update->count > 0 && update->finfo' failed. TEST RESULT: Failed. Unexpected exit from test [exit code: 134] Solaris ======= java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian is supported. at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) at javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) at Open.main(Open.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) at java.lang.Thread.run(Thread.java:636) These failures occur with the essentially Gervill CVS files I'm using as well as the IcedTea versions. I've uploaded my webrev compared to the OpenJDK 6 b11 sources to http://dcstaff.invokedynamic.info/index.php?title=Image:darcy-6717691.tgz Below are the diffs of between Gervill CVS and my workspace and the recent IcedTea overlays and my workspace; I just loop over the Java files in the base directory, print out the file name, and then the result of diff-ing with the corresponding files in my workspace. Thanks, -Joe Latest Gervill CVS (July 21, 2008) vs my workspace: ======================================== AudioFileSoundbankReader.java AudioFloatConverter.java AudioFloatFormatConverter.java AudioFloatInputStream.java AudioSynthesizer.java AudioSynthesizerPropertyInfo.java DLSInfo.java DLSInstrument.java DLSModulator.java DLSRegion.java DLSSample.java DLSSampleLoop.java DLSSampleOptions.java DLSSoundbank.java DLSSoundbankReader.java EmergencySoundbank.java FFT.java InvalidDataException.java InvalidFormatException.java JARSoundbankReader.java ModelAbstractChannelMixer.java ModelAbstractOscillator.java ModelByteBuffer.java ModelByteBufferWavetable.java ModelChannelMixer.java ModelConnectionBlock.java ModelDestination.java ModelDirectedPlayer.java ModelDirector.java ModelIdentifier.java ModelInstrument.java ModelInstrumentComparator.java ModelMappedInstrument.java ModelOscillator.java ModelOscillatorStream.java ModelPatch.java ModelPerformer.java ModelSource.java ModelStandardDirector.java ModelStandardTransform.java ModelTransform.java ModelWavetable.java RIFFInvalidDataException.java RIFFInvalidFormatException.java RIFFReader.java RIFFWriter.java SF2GlobalRegion.java SF2Instrument.java SF2InstrumentRegion.java SF2Layer.java SF2LayerRegion.java SF2Modulator.java SF2Region.java SF2Sample.java SF2Soundbank.java SF2SoundbankReader.java SimpleInstrument.java SimpleSoundbank.java SoftAbstractResampler.java SoftAudioBuffer.java SoftAudioProcessor.java SoftAudioPusher.java SoftChannel.java SoftChannelProxy.java SoftChorus.java SoftControl.java SoftCubicResampler.java 8c8 < * particular file as suabject to the "Classpath" exception as provided --- > * particular file as subject to the "Classpath" exception as provided SoftEnvelopeGenerator.java SoftFilter.java SoftInstrument.java SoftJitterCorrector.java SoftLanczosResampler.java SoftLimiter.java SoftLinearResampler.java SoftLinearResampler2.java SoftLowFrequencyOscillator.java SoftMainMixer.java SoftMidiAudioFileReader.java SoftMixingClip.java SoftMixingDataLine.java SoftMixingMainMixer.java SoftMixingMixer.java SoftMixingMixerProvider.java SoftMixingSourceDataLine.java SoftPerformer.java SoftPointResampler.java SoftProcess.java SoftProvider.java SoftReceiver.java SoftResampler.java SoftResamplerStreamer.java SoftReverb.java SoftShortMessage.java SoftSincResampler.java SoftSynthesizer.java SoftTuning.java SoftVoice.java IcedTea 6 58510fd936ff overlays vs my workspace ====================================== AudioFileSoundbankReader.java AudioFloatConverter.java AudioFloatFormatConverter.java AudioFloatInputStream.java AudioSynthesizer.java AudioSynthesizerPropertyInfo.java DLSInfo.java DLSInstrument.java DLSModulator.java DLSRegion.java DLSSample.java DLSSampleLoop.java DLSSampleOptions.java DLSSoundbank.java DLSSoundbankReader.java 50,51d49 < } catch(IOException ioe) { < return null; EmergencySoundbank.java FFT.java InvalidDataException.java InvalidFormatException.java JARSoundbankReader.java ModelAbstractChannelMixer.java ModelAbstractOscillator.java ModelByteBuffer.java ModelByteBufferWavetable.java ModelChannelMixer.java ModelConnectionBlock.java ModelDestination.java ModelDirectedPlayer.java ModelDirector.java ModelIdentifier.java ModelInstrument.java ModelInstrumentComparator.java ModelMappedInstrument.java ModelOscillator.java ModelOscillatorStream.java ModelPatch.java ModelPerformer.java ModelSource.java ModelStandardDirector.java ModelStandardTransform.java ModelTransform.java ModelWavetable.java RIFFInvalidDataException.java RIFFInvalidFormatException.java RIFFReader.java RIFFWriter.java SF2GlobalRegion.java SF2Instrument.java SF2InstrumentRegion.java SF2Layer.java SF2LayerRegion.java SF2Modulator.java SF2Region.java SF2Sample.java SF2Soundbank.java SF2SoundbankReader.java 49,50d48 < } catch(IOException ioe) { < return null; SimpleInstrument.java SimpleSoundbank.java SoftAbstractResampler.java SoftAudioBuffer.java SoftAudioProcessor.java SoftAudioPusher.java SoftChannel.java 1197,1199c1197 < // Should only return lower 7 bits, < // even when controller is "boosted" higher. < return this.controller[controller] & 127; --- > return this.controller[controller]; SoftChannelProxy.java SoftChorus.java SoftControl.java SoftCubicResampler.java 8c8 < * particular file as suabject to the "Classpath" exception as provided --- > * particular file as subject to the "Classpath" exception as provided SoftEnvelopeGenerator.java SoftFilter.java SoftInstrument.java SoftJitterCorrector.java SoftLanczosResampler.java SoftLimiter.java SoftLinearResampler.java SoftLinearResampler2.java SoftLowFrequencyOscillator.java SoftMainMixer.java SoftMidiAudioFileReader.java SoftMixingClip.java SoftMixingDataLine.java SoftMixingMainMixer.java SoftMixingMixer.java 357,359d356 < DataLine.Info info = new DataLine.Info( < SourceDataLine.class, format); < 368,369c365,413 < line = (SourceDataLine) defaultmixer.getLine(info); < else --- > { > // Search for suitable line > > DataLine.Info idealinfo = null; > AudioFormat idealformat = null; > > Line.Info[] lineinfos = defaultmixer.getSourceLineInfo(); > idealFound: > for (int i = 0; i < lineinfos.length; i++) { > if(lineinfos[i].getLineClass() == SourceDataLine.class) > { > DataLine.Info info = (DataLine.Info)lineinfos[i]; > AudioFormat[] formats = info.getFormats(); > for (int j = 0; j < formats.length; j++) { > AudioFormat format = formats[j]; > if(format.getChannels() == 2 || > format.getChannels() == AudioSystem.NOT_SPECIFIED) > if(format.getEncoding().equals(Encoding.PCM_SIGNED) || > format.getEncoding().equals(Encoding.PCM_UNSIGNED)) > if(format.getSampleRate() == AudioSystem.NOT_SPECIFIED || > format.getSampleRate() == 48000.0) > if(format.getSampleSizeInBits() == AudioSystem.NOT_SPECIFIED || > format.getSampleSizeInBits() == 16) > { > idealinfo = info; > int ideal_channels = format.getChannels(); > boolean ideal_signed = format.getEncoding().equals(Encoding.PCM_SIGNED); > float ideal_rate = format.getSampleRate(); > boolean ideal_endian = format.isBigEndian(); > int ideal_bits = format.getSampleSizeInBits(); > if(ideal_bits == AudioSystem.NOT_SPECIFIED) ideal_bits = 16; > if(ideal_channels == AudioSystem.NOT_SPECIFIED) ideal_channels = 2; > if(ideal_rate == AudioSystem.NOT_SPECIFIED) ideal_rate = 48000; > idealformat = new AudioFormat(ideal_rate, ideal_bits, > ideal_channels, ideal_signed, ideal_endian); > break idealFound; > } > } > } > } > > if(idealformat != null) > { > format = idealformat; > line = (SourceDataLine) defaultmixer.getLine(idealinfo); > } > } > > if(line == null) SoftMixingMixerProvider.java SoftMixingSourceDataLine.java SoftPerformer.java SoftPointResampler.java SoftProcess.java SoftProvider.java SoftReceiver.java SoftResampler.java SoftResamplerStreamer.java SoftReverb.java SoftShortMessage.java SoftSincResampler.java SoftSynthesizer.java 540a541,546 > File userhome = null; > File emg_soundbank_file = null; > > /* > * Try to load saved generated soundbank > */ 541a548,563 > userhome = new File(System.getProperty("user.home"), > ".gervill"); > emg_soundbank_file = new File(userhome, "soundbank-emg.sf2"); > Soundbank sbk = MidiSystem.getSoundbank(emg_soundbank_file); > defaultSoundBank = sbk; > return defaultSoundBank; > } catch (AccessControlException e) { > } catch (Exception e) { > //e.printStackTrace(); > } > > try { > > /* > * Generate emergency soundbank > */ 542a565,574 > > /* > * Save generated soundbank to disk for faster future use. > */ > if(defaultSoundBank != null) > { > if(!userhome.exists()) userhome.mkdirs(); > if(!emg_soundbank_file.exists()) > ((SF2Soundbank)defaultSoundBank).save(emg_soundbank_file); > } 594,596d625 < if (soundbank == null || !isSoundbankSupported(soundbank)) < throw new IllegalArgumentException("Unsupported soundbank: " + soundbank); < 621,623d649 < if (soundbank == null || !isSoundbankSupported(soundbank)) < throw new IllegalArgumentException("Unsupported soundbank: " + soundbank); < SoftTuning.java SoftVoice.java WaveExtensibleFileReader.java diff: /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java: No such file or directory WaveFloatFileReader.java 74a75 > long framerate = 1; 89c90 < /* framerate = */chunk.readUnsignedInt(); --- > framerate = chunk.readUnsignedInt(); 106c107 < framesize, samplerate, false); --- > framesize, framerate, false); WaveFloatFileWriter.java diff: /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java: No such file or directory No virus found in this incoming message. Checked by AVG. Version: 7.5.524 / Virus Database: 270.5.4/1566 - Release Date: 22.7.2008 06:00 From Joe.Darcy at Sun.COM Thu Jul 24 22:51:43 2008 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Thu, 24 Jul 2008 22:51:43 -0700 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> Message-ID: <488969EF.8000405@sun.com> Hi Karl. Karl Helgason wrote: > Hi Joe, > > Gervill CVS has the newest code and Gervill overlays in IcedTea 6 are then copied from Gervill CVS. > Any fixes that have been done in Gervill overlays in IcedTea 6 has also been done Gervill CVS. > Gervill in OpenJDK 6 b10 was based on version 0.9 of Gervill as can be seen in the CHANGES file. Right, I want to update to the latest and greatest version of Gervill, with all the fixes you and Mark have worked on :-) Just to be clear, given that the IcedTea overlays the the Gervill CVS are different, you recommend I upgrade OpenJDK 6 to match the latest Gervill CVS. > I have fixed the "suabject" typo in the SoftCubicResampler.java in the Gervill CVS master. > Where did you find raw types in the code, there aren't supposed to be any. > > WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader has been > moved to src.floatwav in the Gervill CVS. Because they aren't directly related with > Gervill Synthesizer. They simply add support for float encoded Wave files. > And WaveExtensibleFileReader is also a proposal how we should store > channel mask in AudioFormat properties (used for multi-channel wave files). So, should I add these files to OpenJDK 6? > SoftMixingMixer is a experimental mixer to replace the functionality of the > Java Sound Audio Engine mixer. It performs software audio mixing, > which is useful when the audio hardware doesn't support mixing. > It is not yet fully ready. And thus is disabled in the IcedTea. Okay; I'll leave the service files as they are now. > Those 9 regression tests fails because we aren't able to open audio device > with default format. > This is the code that fails: > AudioFormat format = new AudioFormat(44100, 16, 2, true, false) > line = AudioSystem.getSourceDataLine(getFormat()); > It will be interesting to know if this code fails under those conditions which > the regression tests fail in. I haven't been able to exactly charactterize when the tests pass. Running as root on Linu x seems to work, as does logging in via the console on Solaris. However, ssh based logins seem problematic. How do you run these tests? Often we run the JDK regression tests remotely over ssh, etc. so it is preferable for the tess to be able to pass in those circumstances too to avoid spurious failures. > And it will also be interesting to know if these tests also fails > if you enable the SoftMixingMixerProvider mixer provider. IIRC, in various iterations, I changed the service files to enable the soft mixing mixer and those 9 tests still failed across platforms. Cheers, -Joe > regards, > Karl > > ________________________________________ > Fr?: sound-dev-bounces at openjdk.java.net [sound-dev-bounces at openjdk.java.net] Fyrir hönd Joe Darcy [Joe.Darcy at Sun.COM] > Sent: 22. j?l? 2008 22:53 > Vi?takandi: audio-engine-dev at openjdk.java.net > Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; Dalibor.Topic at Sun.COM > Efni: Updating Gervill for OpenJDK 6 build 12 > > Hello. > > With my OpenJDK 6 release manager hat on, I've been working to update > the version of Gervill used to OpenJDK 6 to a newer version that passes > the JCK tests, etc. and I'd like some review of my integration work. > Before this exercise, I don't have any prior experience with sound code. > > A few comments, the copyright header in file SoftCubicResampler.java in > the Gervill CVS master contains the typo "suabject" instead of > "subject." From some casual examination of the code, it seems to use > raw types throughout, that is "List" rather than "List", etc. > It would be better to covert to using generics; I think IDEs have > refactorings to help this now. > > There are some differences between the latest Gervill CVS from the > project's site and the Gervill overlays in IcedTea 6. In particular, > IcedTea has changes to SoftMixingMixer.java and SoftSynthesizer.java as > well as some additional files, WaveExtensibleFileReader.java and > WaveFloatFileWriter.java. I'd prefer to limit future merging work > between the three code bases, Gervill CVS, OpenJDK 6, and IcedTea > overlays, so in the context of updating Gervill for OpenJDK 6 b12, I > think it would be good to resolve these remaining few differences. The > test directories are the same in all three code bases, except I don't > pick up a missing newline at the end of > ./SoftCubicResampler/Interpolate.java. > > During the update I ran into some testing issues, both with the original > Gervill integration in OpenJDK 6 b10 as well as the new code for b12. > Specifically, the 9 regression tests > > javax/sound/midi/Gervill/SoftAudioSynthesizer/Open.java > javax/sound/midi/Gervill/SoftSynthesizer/GetLatency.java > javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver.java > javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver2.java > javax/sound/midi/Gervill/SoftSynthesizer/GetReceivers.java > javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitter.java > javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitters.java > javax/sound/midi/Gervill/SoftSynthesizer/ImplicitOpenClose.java > javax/sound/midi/Gervill/SoftSynthesizer/Open.java > > can fail, seemingly dependent on how one logs into the machine. What > are the necessary and sufficient conditions for permissions to run these > tests? When they occur, the failures I see look like: > > Windows > ========= > > java.lang.IllegalArgumentException: No line matching interface > SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, > 4 bytes/frame, little-endian is supported. > at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) > at > javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) > at Open.main(Open.java:53) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > at > com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) > at java.lang.Thread.run(Thread.java:636) > > Linux > ====== > > STDERR: > java: conf.c:3109: snd_config_update_free: Assertion `update->count > 0 > && update->finfo' failed. > > TEST RESULT: Failed. Unexpected exit from test [exit code: 134] > > Solaris > ======= > > java.lang.IllegalArgumentException: No line matching interface > SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, > 4 bytes/frame, little-endian is supported. > at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) > at > javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) > at Open.main(Open.java:53) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > at > com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) > at java.lang.Thread.run(Thread.java:636) > > These failures occur with the essentially Gervill CVS files I'm using as > well as the IcedTea versions. > > I've uploaded my webrev compared to the OpenJDK 6 b11 sources to > > http://dcstaff.invokedynamic.info/index.php?title=Image:darcy-6717691.tgz > > Below are the diffs of between Gervill CVS and my workspace and the > recent IcedTea overlays and my workspace; I just loop over the Java > files in the base directory, print out the file name, and then the > result of diff-ing with the corresponding files in my workspace. > > Thanks, > > -Joe > > > Latest Gervill CVS (July 21, 2008) vs my workspace: > ======================================== > > AudioFileSoundbankReader.java > AudioFloatConverter.java > AudioFloatFormatConverter.java > AudioFloatInputStream.java > AudioSynthesizer.java > AudioSynthesizerPropertyInfo.java > DLSInfo.java > DLSInstrument.java > DLSModulator.java > DLSRegion.java > DLSSample.java > DLSSampleLoop.java > DLSSampleOptions.java > DLSSoundbank.java > DLSSoundbankReader.java > EmergencySoundbank.java > FFT.java > InvalidDataException.java > InvalidFormatException.java > JARSoundbankReader.java > ModelAbstractChannelMixer.java > ModelAbstractOscillator.java > ModelByteBuffer.java > ModelByteBufferWavetable.java > ModelChannelMixer.java > ModelConnectionBlock.java > ModelDestination.java > ModelDirectedPlayer.java > ModelDirector.java > ModelIdentifier.java > ModelInstrument.java > ModelInstrumentComparator.java > ModelMappedInstrument.java > ModelOscillator.java > ModelOscillatorStream.java > ModelPatch.java > ModelPerformer.java > ModelSource.java > ModelStandardDirector.java > ModelStandardTransform.java > ModelTransform.java > ModelWavetable.java > RIFFInvalidDataException.java > RIFFInvalidFormatException.java > RIFFReader.java > RIFFWriter.java > SF2GlobalRegion.java > SF2Instrument.java > SF2InstrumentRegion.java > SF2Layer.java > SF2LayerRegion.java > SF2Modulator.java > SF2Region.java > SF2Sample.java > SF2Soundbank.java > SF2SoundbankReader.java > SimpleInstrument.java > SimpleSoundbank.java > SoftAbstractResampler.java > SoftAudioBuffer.java > SoftAudioProcessor.java > SoftAudioPusher.java > SoftChannel.java > SoftChannelProxy.java > SoftChorus.java > SoftControl.java > SoftCubicResampler.java > 8c8 > < * particular file as suabject to the "Classpath" exception as provided > --- > > * particular file as subject to the "Classpath" exception as provided > SoftEnvelopeGenerator.java > SoftFilter.java > SoftInstrument.java > SoftJitterCorrector.java > SoftLanczosResampler.java > SoftLimiter.java > SoftLinearResampler.java > SoftLinearResampler2.java > SoftLowFrequencyOscillator.java > SoftMainMixer.java > SoftMidiAudioFileReader.java > SoftMixingClip.java > SoftMixingDataLine.java > SoftMixingMainMixer.java > SoftMixingMixer.java > SoftMixingMixerProvider.java > SoftMixingSourceDataLine.java > SoftPerformer.java > SoftPointResampler.java > SoftProcess.java > SoftProvider.java > SoftReceiver.java > SoftResampler.java > SoftResamplerStreamer.java > SoftReverb.java > SoftShortMessage.java > SoftSincResampler.java > SoftSynthesizer.java > SoftTuning.java > SoftVoice.java > > > IcedTea 6 58510fd936ff overlays vs my workspace > ====================================== > > AudioFileSoundbankReader.java > AudioFloatConverter.java > AudioFloatFormatConverter.java > AudioFloatInputStream.java > AudioSynthesizer.java > AudioSynthesizerPropertyInfo.java > DLSInfo.java > DLSInstrument.java > DLSModulator.java > DLSRegion.java > DLSSample.java > DLSSampleLoop.java > DLSSampleOptions.java > DLSSoundbank.java > DLSSoundbankReader.java > 50,51d49 > < } catch(IOException ioe) { > < return null; > EmergencySoundbank.java > FFT.java > InvalidDataException.java > InvalidFormatException.java > JARSoundbankReader.java > ModelAbstractChannelMixer.java > ModelAbstractOscillator.java > ModelByteBuffer.java > ModelByteBufferWavetable.java > ModelChannelMixer.java > ModelConnectionBlock.java > ModelDestination.java > ModelDirectedPlayer.java > ModelDirector.java > ModelIdentifier.java > ModelInstrument.java > ModelInstrumentComparator.java > ModelMappedInstrument.java > ModelOscillator.java > ModelOscillatorStream.java > ModelPatch.java > ModelPerformer.java > ModelSource.java > ModelStandardDirector.java > ModelStandardTransform.java > ModelTransform.java > ModelWavetable.java > RIFFInvalidDataException.java > RIFFInvalidFormatException.java > RIFFReader.java > RIFFWriter.java > SF2GlobalRegion.java > SF2Instrument.java > SF2InstrumentRegion.java > SF2Layer.java > SF2LayerRegion.java > SF2Modulator.java > SF2Region.java > SF2Sample.java > SF2Soundbank.java > SF2SoundbankReader.java > 49,50d48 > < } catch(IOException ioe) { > < return null; > SimpleInstrument.java > SimpleSoundbank.java > SoftAbstractResampler.java > SoftAudioBuffer.java > SoftAudioProcessor.java > SoftAudioPusher.java > SoftChannel.java > 1197,1199c1197 > < // Should only return lower 7 bits, > < // even when controller is "boosted" higher. > < return this.controller[controller] & 127; > --- > > return this.controller[controller]; > SoftChannelProxy.java > SoftChorus.java > SoftControl.java > SoftCubicResampler.java > 8c8 > < * particular file as suabject to the "Classpath" exception as provided > --- > > * particular file as subject to the "Classpath" exception as provided > SoftEnvelopeGenerator.java > SoftFilter.java > SoftInstrument.java > SoftJitterCorrector.java > SoftLanczosResampler.java > SoftLimiter.java > SoftLinearResampler.java > SoftLinearResampler2.java > SoftLowFrequencyOscillator.java > SoftMainMixer.java > SoftMidiAudioFileReader.java > SoftMixingClip.java > SoftMixingDataLine.java > SoftMixingMainMixer.java > SoftMixingMixer.java > 357,359d356 > < DataLine.Info info = new DataLine.Info( > < SourceDataLine.class, format); > < > 368,369c365,413 > < line = (SourceDataLine) > defaultmixer.getLine(info); > < else > --- > > { > > // Search for suitable line > > > > DataLine.Info idealinfo = null; > > AudioFormat idealformat = null; > > > > Line.Info[] lineinfos = > defaultmixer.getSourceLineInfo(); > > idealFound: > > for (int i = 0; i < lineinfos.length; i++) { > > if(lineinfos[i].getLineClass() == > SourceDataLine.class) > > { > > DataLine.Info info = > (DataLine.Info)lineinfos[i]; > > AudioFormat[] formats = > info.getFormats(); > > for (int j = 0; j < > formats.length; j++) { > > AudioFormat format = formats[j]; > > if(format.getChannels() == 2 || > > format.getChannels() > == AudioSystem.NOT_SPECIFIED) > > > if(format.getEncoding().equals(Encoding.PCM_SIGNED) || > > > format.getEncoding().equals(Encoding.PCM_UNSIGNED)) > > if(format.getSampleRate() == > AudioSystem.NOT_SPECIFIED || > > > format.getSampleRate() == 48000.0) > > > if(format.getSampleSizeInBits() == AudioSystem.NOT_SPECIFIED || > > > format.getSampleSizeInBits() == 16) > > { > > idealinfo = info; > > int ideal_channels = > format.getChannels(); > > boolean ideal_signed = > format.getEncoding().equals(Encoding.PCM_SIGNED); > > float ideal_rate = > format.getSampleRate(); > > boolean ideal_endian = > format.isBigEndian(); > > int ideal_bits = > format.getSampleSizeInBits(); > > if(ideal_bits == > AudioSystem.NOT_SPECIFIED) ideal_bits = 16; > > if(ideal_channels == > AudioSystem.NOT_SPECIFIED) ideal_channels = 2; > > if(ideal_rate == > AudioSystem.NOT_SPECIFIED) ideal_rate = 48000; > > idealformat = new > AudioFormat(ideal_rate, ideal_bits, > > ideal_channels, > ideal_signed, ideal_endian); > > break idealFound; > > } > > } > > } > > } > > > > if(idealformat != null) > > { > > format = idealformat; > > line = (SourceDataLine) > defaultmixer.getLine(idealinfo); > > } > > } > > > > if(line == null) > SoftMixingMixerProvider.java > SoftMixingSourceDataLine.java > SoftPerformer.java > SoftPointResampler.java > SoftProcess.java > SoftProvider.java > SoftReceiver.java > SoftResampler.java > SoftResamplerStreamer.java > SoftReverb.java > SoftShortMessage.java > SoftSincResampler.java > SoftSynthesizer.java > 540a541,546 > > File userhome = null; > > File emg_soundbank_file = null; > > > > /* > > * Try to load saved generated soundbank > > */ > 541a548,563 > > userhome = new File(System.getProperty("user.home"), > > ".gervill"); > > emg_soundbank_file = new File(userhome, > "soundbank-emg.sf2"); > > Soundbank sbk = > MidiSystem.getSoundbank(emg_soundbank_file); > > defaultSoundBank = sbk; > > return defaultSoundBank; > > } catch (AccessControlException e) { > > } catch (Exception e) { > > //e.printStackTrace(); > > } > > > > try { > > > > /* > > * Generate emergency soundbank > > */ > 542a565,574 > > > > /* > > * Save generated soundbank to disk for faster > future use. > > */ > > if(defaultSoundBank != null) > > { > > if(!userhome.exists()) userhome.mkdirs(); > > if(!emg_soundbank_file.exists()) > > > ((SF2Soundbank)defaultSoundBank).save(emg_soundbank_file); > > } > 594,596d625 > < if (soundbank == null || !isSoundbankSupported(soundbank)) > < throw new IllegalArgumentException("Unsupported soundbank: > " + soundbank); > < > 621,623d649 > < if (soundbank == null || !isSoundbankSupported(soundbank)) > < throw new IllegalArgumentException("Unsupported soundbank: > " + soundbank); > < > SoftTuning.java > SoftVoice.java > WaveExtensibleFileReader.java > diff: > /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java: > No such file or directory > WaveFloatFileReader.java > 74a75 > > long framerate = 1; > 89c90 > < /* framerate = */chunk.readUnsignedInt(); > --- > > framerate = chunk.readUnsignedInt(); > 106c107 > < framesize, samplerate, false); > --- > > framesize, framerate, false); > WaveFloatFileWriter.java > diff: > /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java: > No such file or directory > > > > No virus found in this incoming message. > Checked by AVG. > Version: 7.5.524 / Virus Database: 270.5.4/1566 - Release Date: 22.7.2008 06:00 > From kalli at midverk.is Fri Jul 25 08:25:23 2008 From: kalli at midverk.is (Karl Helgason) Date: Fri, 25 Jul 2008 15:25:23 +0000 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <488969EF.8000405@sun.com> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> <488969EF.8000405@sun.com> Message-ID: <36EC82E93EB0AD40A4301DAD65432386B2FF7F30B3@mail.midverk.is> Hi Joe, > > Hi Joe, > > > > Gervill CVS has the newest code and Gervill overlays in IcedTea 6 are then copied from Gervill CVS. > > Any fixes that have been done in Gervill overlays in IcedTea 6 has also been done Gervill CVS. > > Gervill in OpenJDK 6 b10 was based on version 0.9 of Gervill as can be seen in the CHANGES file. > > Right, I want to update to the latest and greatest version of Gervill, > with all the fixes you and Mark have worked on :-) Just to be clear, > given that the IcedTea overlays the the Gervill CVS are different, you > recommend I upgrade OpenJDK 6 to match the latest Gervill CVS. > Yeb the Gervill CVS is always the newest one. Mark also submitted all fixes he done to me for consideration to add to Gervill CVS. > > I have fixed the "suabject" typo in the SoftCubicResampler.java in the Gervill CVS master. > > Where did you find raw types in the code, there aren't supposed to be any. > > > > WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader has been > > moved to src.floatwav in the Gervill CVS. Because they aren't directly related with > > Gervill Synthesizer. They simply add support for float encoded Wave files. > > And WaveExtensibleFileReader is also a proposal how we should store > > channel mask in AudioFormat properties (used for multi-channel wave files). > > So, should I add these files to OpenJDK 6? > It depends, Alexey thought we should rather add support for PCM Float support to current com.sun.media.sound.WaveFileReader and WaveFileWriter classes than introducing new one. Some people however have been using gervill to add support for 32 bit float wave files, see: http://forums.sun.com/thread.jspa?threadID=5283612&tstart=75 > > SoftMixingMixer is a experimental mixer to replace the functionality of the > > Java Sound Audio Engine mixer. It performs software audio mixing, > > which is useful when the audio hardware doesn't support mixing. > > It is not yet fully ready. And thus is disabled in the IcedTea. > > Okay; I'll leave the service files as they are now. > > > Those 9 regression tests fails because we aren't able to open audio device > > with default format. > > This is the code that fails: > > AudioFormat format = new AudioFormat(44100, 16, 2, true, false) > > line = AudioSystem.getSourceDataLine(getFormat()); > > It will be interesting to know if this code fails under those conditions which > > the regression tests fail in. > > I haven't been able to exactly charactterize when the tests pass. > Running as root on Linu x seems to work, as does logging in via the > console on Solaris. However, ssh based logins seem problematic. How do > you run these tests? Often we run the JDK regression tests remotely > over ssh, etc. so it is preferable for the tess to be able to pass in > those circumstances too to avoid spurious failures. > > > And it will also be interesting to know if these tests also fails > > if you enable the SoftMixingMixerProvider mixer provider. > > IIRC, in various iterations, I changed the service files to enable the > soft mixing mixer and those 9 tests still failed across platforms. These test probably fail because no audio mixer is available. I could change those tests to use dummy mixer instead, as we really don't need to hear anything. regards, Karl > ________________________________________ > Fr?: sound-dev-bounces at openjdk.java.net [sound-dev-bounces at openjdk.java.net] Fyrir hönd Joe Darcy [Joe.Darcy at Sun.COM] > Sent: 22. j?l? 2008 22:53 > Vi?takandi: audio-engine-dev at openjdk.java.net > Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; Dalibor.Topic at Sun.COM > Efni: Updating Gervill for OpenJDK 6 build 12 > > Hello. > > With my OpenJDK 6 release manager hat on, I've been working to update > the version of Gervill used to OpenJDK 6 to a newer version that passes > the JCK tests, etc. and I'd like some review of my integration work. > Before this exercise, I don't have any prior experience with sound code. > > A few comments, the copyright header in file SoftCubicResampler.java in > the Gervill CVS master contains the typo "suabject" instead of > "subject." From some casual examination of the code, it seems to use > raw types throughout, that is "List" rather than "List", etc. > It would be better to covert to using generics; I think IDEs have > refactorings to help this now. > > There are some differences between the latest Gervill CVS from the > project's site and the Gervill overlays in IcedTea 6. In particular, > IcedTea has changes to SoftMixingMixer.java and SoftSynthesizer.java as > well as some additional files, WaveExtensibleFileReader.java and > WaveFloatFileWriter.java. I'd prefer to limit future merging work > between the three code bases, Gervill CVS, OpenJDK 6, and IcedTea > overlays, so in the context of updating Gervill for OpenJDK 6 b12, I > think it would be good to resolve these remaining few differences. The > test directories are the same in all three code bases, except I don't > pick up a missing newline at the end of > ./SoftCubicResampler/Interpolate.java. > > During the update I ran into some testing issues, both with the original > Gervill integration in OpenJDK 6 b10 as well as the new code for b12. > Specifically, the 9 regression tests > > javax/sound/midi/Gervill/SoftAudioSynthesizer/Open.java > javax/sound/midi/Gervill/SoftSynthesizer/GetLatency.java > javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver.java > javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver2.java > javax/sound/midi/Gervill/SoftSynthesizer/GetReceivers.java > javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitter.java > javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitters.java > javax/sound/midi/Gervill/SoftSynthesizer/ImplicitOpenClose.java > javax/sound/midi/Gervill/SoftSynthesizer/Open.java > > can fail, seemingly dependent on how one logs into the machine. What > are the necessary and sufficient conditions for permissions to run these > tests? When they occur, the failures I see look like: > > Windows > ========= > > java.lang.IllegalArgumentException: No line matching interface > SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, > 4 bytes/frame, little-endian is supported. > at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) > at > javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) > at Open.main(Open.java:53) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > at > com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) > at java.lang.Thread.run(Thread.java:636) > > Linux > ====== > > STDERR: > java: conf.c:3109: snd_config_update_free: Assertion `update->count > 0 > && update->finfo' failed. > > TEST RESULT: Failed. Unexpected exit from test [exit code: 134] > > Solaris > ======= > > java.lang.IllegalArgumentException: No line matching interface > SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, > 4 bytes/frame, little-endian is supported. > at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) > at > javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) > at Open.main(Open.java:53) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > at > com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) > at java.lang.Thread.run(Thread.java:636) > > These failures occur with the essentially Gervill CVS files I'm using as > well as the IcedTea versions. > > I've uploaded my webrev compared to the OpenJDK 6 b11 sources to > > http://dcstaff.invokedynamic.info/index.php?title=Image:darcy-6717691.tgz > > Below are the diffs of between Gervill CVS and my workspace and the > recent IcedTea overlays and my workspace; I just loop over the Java > files in the base directory, print out the file name, and then the > result of diff-ing with the corresponding files in my workspace. > > Thanks, > > -Joe > > > Latest Gervill CVS (July 21, 2008) vs my workspace: > ======================================== > > AudioFileSoundbankReader.java > AudioFloatConverter.java > AudioFloatFormatConverter.java > AudioFloatInputStream.java > AudioSynthesizer.java > AudioSynthesizerPropertyInfo.java > DLSInfo.java > DLSInstrument.java > DLSModulator.java > DLSRegion.java > DLSSample.java > DLSSampleLoop.java > DLSSampleOptions.java > DLSSoundbank.java > DLSSoundbankReader.java > EmergencySoundbank.java > FFT.java > InvalidDataException.java > InvalidFormatException.java > JARSoundbankReader.java > ModelAbstractChannelMixer.java > ModelAbstractOscillator.java > ModelByteBuffer.java > ModelByteBufferWavetable.java > ModelChannelMixer.java > ModelConnectionBlock.java > ModelDestination.java > ModelDirectedPlayer.java > ModelDirector.java > ModelIdentifier.java > ModelInstrument.java > ModelInstrumentComparator.java > ModelMappedInstrument.java > ModelOscillator.java > ModelOscillatorStream.java > ModelPatch.java > ModelPerformer.java > ModelSource.java > ModelStandardDirector.java > ModelStandardTransform.java > ModelTransform.java > ModelWavetable.java > RIFFInvalidDataException.java > RIFFInvalidFormatException.java > RIFFReader.java > RIFFWriter.java > SF2GlobalRegion.java > SF2Instrument.java > SF2InstrumentRegion.java > SF2Layer.java > SF2LayerRegion.java > SF2Modulator.java > SF2Region.java > SF2Sample.java > SF2Soundbank.java > SF2SoundbankReader.java > SimpleInstrument.java > SimpleSoundbank.java > SoftAbstractResampler.java > SoftAudioBuffer.java > SoftAudioProcessor.java > SoftAudioPusher.java > SoftChannel.java > SoftChannelProxy.java > SoftChorus.java > SoftControl.java > SoftCubicResampler.java > 8c8 > < * particular file as suabject to the "Classpath" exception as provided > --- > > * particular file as subject to the "Classpath" exception as provided > SoftEnvelopeGenerator.java > SoftFilter.java > SoftInstrument.java > SoftJitterCorrector.java > SoftLanczosResampler.java > SoftLimiter.java > SoftLinearResampler.java > SoftLinearResampler2.java > SoftLowFrequencyOscillator.java > SoftMainMixer.java > SoftMidiAudioFileReader.java > SoftMixingClip.java > SoftMixingDataLine.java > SoftMixingMainMixer.java > SoftMixingMixer.java > SoftMixingMixerProvider.java > SoftMixingSourceDataLine.java > SoftPerformer.java > SoftPointResampler.java > SoftProcess.java > SoftProvider.java > SoftReceiver.java > SoftResampler.java > SoftResamplerStreamer.java > SoftReverb.java > SoftShortMessage.java > SoftSincResampler.java > SoftSynthesizer.java > SoftTuning.java > SoftVoice.java > > > IcedTea 6 58510fd936ff overlays vs my workspace > ====================================== > > AudioFileSoundbankReader.java > AudioFloatConverter.java > AudioFloatFormatConverter.java > AudioFloatInputStream.java > AudioSynthesizer.java > AudioSynthesizerPropertyInfo.java > DLSInfo.java > DLSInstrument.java > DLSModulator.java > DLSRegion.java > DLSSample.java > DLSSampleLoop.java > DLSSampleOptions.java > DLSSoundbank.java > DLSSoundbankReader.java > 50,51d49 > < } catch(IOException ioe) { > < return null; > EmergencySoundbank.java > FFT.java > InvalidDataException.java > InvalidFormatException.java > JARSoundbankReader.java > ModelAbstractChannelMixer.java > ModelAbstractOscillator.java > ModelByteBuffer.java > ModelByteBufferWavetable.java > ModelChannelMixer.java > ModelConnectionBlock.java > ModelDestination.java > ModelDirectedPlayer.java > ModelDirector.java > ModelIdentifier.java > ModelInstrument.java > ModelInstrumentComparator.java > ModelMappedInstrument.java > ModelOscillator.java > ModelOscillatorStream.java > ModelPatch.java > ModelPerformer.java > ModelSource.java > ModelStandardDirector.java > ModelStandardTransform.java > ModelTransform.java > ModelWavetable.java > RIFFInvalidDataException.java > RIFFInvalidFormatException.java > RIFFReader.java > RIFFWriter.java > SF2GlobalRegion.java > SF2Instrument.java > SF2InstrumentRegion.java > SF2Layer.java > SF2LayerRegion.java > SF2Modulator.java > SF2Region.java > SF2Sample.java > SF2Soundbank.java > SF2SoundbankReader.java > 49,50d48 > < } catch(IOException ioe) { > < return null; > SimpleInstrument.java > SimpleSoundbank.java > SoftAbstractResampler.java > SoftAudioBuffer.java > SoftAudioProcessor.java > SoftAudioPusher.java > SoftChannel.java > 1197,1199c1197 > < // Should only return lower 7 bits, > < // even when controller is "boosted" higher. > < return this.controller[controller] & 127; > --- > > return this.controller[controller]; > SoftChannelProxy.java > SoftChorus.java > SoftControl.java > SoftCubicResampler.java > 8c8 > < * particular file as suabject to the "Classpath" exception as provided > --- > > * particular file as subject to the "Classpath" exception as provided > SoftEnvelopeGenerator.java > SoftFilter.java > SoftInstrument.java > SoftJitterCorrector.java > SoftLanczosResampler.java > SoftLimiter.java > SoftLinearResampler.java > SoftLinearResampler2.java > SoftLowFrequencyOscillator.java > SoftMainMixer.java > SoftMidiAudioFileReader.java > SoftMixingClip.java > SoftMixingDataLine.java > SoftMixingMainMixer.java > SoftMixingMixer.java > 357,359d356 > < DataLine.Info info = new DataLine.Info( > < SourceDataLine.class, format); > < > 368,369c365,413 > < line = (SourceDataLine) > defaultmixer.getLine(info); > < else > --- > > { > > // Search for suitable line > > > > DataLine.Info idealinfo = null; > > AudioFormat idealformat = null; > > > > Line.Info[] lineinfos = > defaultmixer.getSourceLineInfo(); > > idealFound: > > for (int i = 0; i < lineinfos.length; i++) { > > if(lineinfos[i].getLineClass() == > SourceDataLine.class) > > { > > DataLine.Info info = > (DataLine.Info)lineinfos[i]; > > AudioFormat[] formats = > info.getFormats(); > > for (int j = 0; j < > formats.length; j++) { > > AudioFormat format = formats[j]; > > if(format.getChannels() == 2 || > > format.getChannels() > == AudioSystem.NOT_SPECIFIED) > > > if(format.getEncoding().equals(Encoding.PCM_SIGNED) || > > > format.getEncoding().equals(Encoding.PCM_UNSIGNED)) > > if(format.getSampleRate() == > AudioSystem.NOT_SPECIFIED || > > > format.getSampleRate() == 48000.0) > > > if(format.getSampleSizeInBits() == AudioSystem.NOT_SPECIFIED || > > > format.getSampleSizeInBits() == 16) > > { > > idealinfo = info; > > int ideal_channels = > format.getChannels(); > > boolean ideal_signed = > format.getEncoding().equals(Encoding.PCM_SIGNED); > > float ideal_rate = > format.getSampleRate(); > > boolean ideal_endian = > format.isBigEndian(); > > int ideal_bits = > format.getSampleSizeInBits(); > > if(ideal_bits == > AudioSystem.NOT_SPECIFIED) ideal_bits = 16; > > if(ideal_channels == > AudioSystem.NOT_SPECIFIED) ideal_channels = 2; > > if(ideal_rate == > AudioSystem.NOT_SPECIFIED) ideal_rate = 48000; > > idealformat = new > AudioFormat(ideal_rate, ideal_bits, > > ideal_channels, > ideal_signed, ideal_endian); > > break idealFound; > > } > > } > > } > > } > > > > if(idealformat != null) > > { > > format = idealformat; > > line = (SourceDataLine) > defaultmixer.getLine(idealinfo); > > } > > } > > > > if(line == null) > SoftMixingMixerProvider.java > SoftMixingSourceDataLine.java > SoftPerformer.java > SoftPointResampler.java > SoftProcess.java > SoftProvider.java > SoftReceiver.java > SoftResampler.java > SoftResamplerStreamer.java > SoftReverb.java > SoftShortMessage.java > SoftSincResampler.java > SoftSynthesizer.java > 540a541,546 > > File userhome = null; > > File emg_soundbank_file = null; > > > > /* > > * Try to load saved generated soundbank > > */ > 541a548,563 > > userhome = new File(System.getProperty("user.home"), > > ".gervill"); > > emg_soundbank_file = new File(userhome, > "soundbank-emg.sf2"); > > Soundbank sbk = > MidiSystem.getSoundbank(emg_soundbank_file); > > defaultSoundBank = sbk; > > return defaultSoundBank; > > } catch (AccessControlException e) { > > } catch (Exception e) { > > //e.printStackTrace(); > > } > > > > try { > > > > /* > > * Generate emergency soundbank > > */ > 542a565,574 > > > > /* > > * Save generated soundbank to disk for faster > future use. > > */ > > if(defaultSoundBank != null) > > { > > if(!userhome.exists()) userhome.mkdirs(); > > if(!emg_soundbank_file.exists()) > > > ((SF2Soundbank)defaultSoundBank).save(emg_soundbank_file); > > } > 594,596d625 > < if (soundbank == null || !isSoundbankSupported(soundbank)) > < throw new IllegalArgumentException("Unsupported soundbank: > " + soundbank); > < > 621,623d649 > < if (soundbank == null || !isSoundbankSupported(soundbank)) > < throw new IllegalArgumentException("Unsupported soundbank: > " + soundbank); > < > SoftTuning.java > SoftVoice.java > WaveExtensibleFileReader.java > diff: > /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java: > No such file or directory > WaveFloatFileReader.java > 74a75 > > long framerate = 1; > 89c90 > < /* framerate = */chunk.readUnsignedInt(); > --- > > framerate = chunk.readUnsignedInt(); > 106c107 > < framesize, samplerate, false); > --- > > framesize, framerate, false); > WaveFloatFileWriter.java > diff: > /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java: > No such file or directory > > > > No virus found in this incoming message. > Checked by AVG. > Version: 7.5.524 / Virus Database: 270.5.4/1566 - Release Date: 22.7.2008 06:00 > No virus found in this incoming message. Checked by AVG. Version: 7.5.524 / Virus Database: 270.5.5/1569 - Release Date: 23.7.2008 13:31 From alex.menkov at sun.com Fri Jul 25 09:05:57 2008 From: alex.menkov at sun.com (Alex Menkov) Date: Fri, 25 Jul 2008 20:05:57 +0400 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <36EC82E93EB0AD40A4301DAD65432386B2FF7F30B3@mail.midverk.is> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> <488969EF.8000405@sun.com> <36EC82E93EB0AD40A4301DAD65432386B2FF7F30B3@mail.midverk.is> Message-ID: <4889F9E5.7000606@sun.com> Karl Helgason wrote: >>> WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader has been >>> moved to src.floatwav in the Gervill CVS. Because they aren't directly related with >>> Gervill Synthesizer. They simply add support for float encoded Wave files. >>> And WaveExtensibleFileReader is also a proposal how we should store >>> channel mask in AudioFormat properties (used for multi-channel wave files). >> So, should I add these files to OpenJDK 6? >> > > It depends, Alexey thought we should rather add support for PCM Float support > to current com.sun.media.sound.WaveFileReader and WaveFileWriter classes > than introducing new one. All this wave readers (current PCM/ALAW/ULAW and Float & Extensible from Gervill) could be combined in different ways - basing on current WaveFileReader or basing on WaveFloatFileReader or WaveExtensibleFileReader. Main goal is to avoid functionality duplication. >>> And WaveExtensibleFileReader is also a proposal how we should store >>> channel mask in AudioFormat properties (used for multi-channel wave files). Wow.. I've overlooked this :) Regards Alex From kalli at midverk.is Sun Jul 27 19:09:26 2008 From: kalli at midverk.is (Karl Helgason) Date: Mon, 28 Jul 2008 02:09:26 +0000 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <488969EF.8000405@sun.com> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is>, <488969EF.8000405@sun.com> Message-ID: <36EC82E93EB0AD40A4301DAD65432386B8A7361850@mail.midverk.is> Hi Joe, I have fixed the jtreg tests in Gervill CVS so they use a dummy SourceDataLine instead of real one. cheers, Karl ________________________________________ Fr?: Joe.Darcy at Sun.COM [Joe.Darcy at Sun.COM] Sent: 25. j?l? 2008 05:51 Vi?takandi: Karl Helgason Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; Dalibor.Topic at Sun.COM Efni: Re: SV: Updating Gervill for OpenJDK 6 build 12 Hi Karl. Karl Helgason wrote: > Hi Joe, > > Gervill CVS has the newest code and Gervill overlays in IcedTea 6 are then copied from Gervill CVS. > Any fixes that have been done in Gervill overlays in IcedTea 6 has also been done Gervill CVS. > Gervill in OpenJDK 6 b10 was based on version 0.9 of Gervill as can be seen in the CHANGES file. Right, I want to update to the latest and greatest version of Gervill, with all the fixes you and Mark have worked on :-) Just to be clear, given that the IcedTea overlays the the Gervill CVS are different, you recommend I upgrade OpenJDK 6 to match the latest Gervill CVS. > I have fixed the "suabject" typo in the SoftCubicResampler.java in the Gervill CVS master. > Where did you find raw types in the code, there aren't supposed to be any. > > WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader has been > moved to src.floatwav in the Gervill CVS. Because they aren't directly related with > Gervill Synthesizer. They simply add support for float encoded Wave files. > And WaveExtensibleFileReader is also a proposal how we should store > channel mask in AudioFormat properties (used for multi-channel wave files). So, should I add these files to OpenJDK 6? > SoftMixingMixer is a experimental mixer to replace the functionality of the > Java Sound Audio Engine mixer. It performs software audio mixing, > which is useful when the audio hardware doesn't support mixing. > It is not yet fully ready. And thus is disabled in the IcedTea. Okay; I'll leave the service files as they are now. > Those 9 regression tests fails because we aren't able to open audio device > with default format. > This is the code that fails: > AudioFormat format = new AudioFormat(44100, 16, 2, true, false) > line = AudioSystem.getSourceDataLine(getFormat()); > It will be interesting to know if this code fails under those conditions which > the regression tests fail in. I haven't been able to exactly charactterize when the tests pass. Running as root on Linu x seems to work, as does logging in via the console on Solaris. However, ssh based logins seem problematic. How do you run these tests? Often we run the JDK regression tests remotely over ssh, etc. so it is preferable for the tess to be able to pass in those circumstances too to avoid spurious failures. > And it will also be interesting to know if these tests also fails > if you enable the SoftMixingMixerProvider mixer provider. IIRC, in various iterations, I changed the service files to enable the soft mixing mixer and those 9 tests still failed across platforms. Cheers, -Joe > regards, > Karl > > ________________________________________ > Fr?: sound-dev-bounces at openjdk.java.net [sound-dev-bounces at openjdk.java.net] Fyrir hönd Joe Darcy [Joe.Darcy at Sun.COM] > Sent: 22. j?l? 2008 22:53 > Vi?takandi: audio-engine-dev at openjdk.java.net > Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; Dalibor.Topic at Sun.COM > Efni: Updating Gervill for OpenJDK 6 build 12 > > Hello. > > With my OpenJDK 6 release manager hat on, I've been working to update > the version of Gervill used to OpenJDK 6 to a newer version that passes > the JCK tests, etc. and I'd like some review of my integration work. > Before this exercise, I don't have any prior experience with sound code. > > A few comments, the copyright header in file SoftCubicResampler.java in > the Gervill CVS master contains the typo "suabject" instead of > "subject." From some casual examination of the code, it seems to use > raw types throughout, that is "List" rather than "List", etc. > It would be better to covert to using generics; I think IDEs have > refactorings to help this now. > > There are some differences between the latest Gervill CVS from the > project's site and the Gervill overlays in IcedTea 6. In particular, > IcedTea has changes to SoftMixingMixer.java and SoftSynthesizer.java as > well as some additional files, WaveExtensibleFileReader.java and > WaveFloatFileWriter.java. I'd prefer to limit future merging work > between the three code bases, Gervill CVS, OpenJDK 6, and IcedTea > overlays, so in the context of updating Gervill for OpenJDK 6 b12, I > think it would be good to resolve these remaining few differences. The > test directories are the same in all three code bases, except I don't > pick up a missing newline at the end of > ./SoftCubicResampler/Interpolate.java. > > During the update I ran into some testing issues, both with the original > Gervill integration in OpenJDK 6 b10 as well as the new code for b12. > Specifically, the 9 regression tests > > javax/sound/midi/Gervill/SoftAudioSynthesizer/Open.java > javax/sound/midi/Gervill/SoftSynthesizer/GetLatency.java > javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver.java > javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver2.java > javax/sound/midi/Gervill/SoftSynthesizer/GetReceivers.java > javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitter.java > javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitters.java > javax/sound/midi/Gervill/SoftSynthesizer/ImplicitOpenClose.java > javax/sound/midi/Gervill/SoftSynthesizer/Open.java > > can fail, seemingly dependent on how one logs into the machine. What > are the necessary and sufficient conditions for permissions to run these > tests? When they occur, the failures I see look like: > > Windows > ========= > > java.lang.IllegalArgumentException: No line matching interface > SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, > 4 bytes/frame, little-endian is supported. > at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) > at > javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) > at Open.main(Open.java:53) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > at > com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) > at java.lang.Thread.run(Thread.java:636) > > Linux > ====== > > STDERR: > java: conf.c:3109: snd_config_update_free: Assertion `update->count > 0 > && update->finfo' failed. > > TEST RESULT: Failed. Unexpected exit from test [exit code: 134] > > Solaris > ======= > > java.lang.IllegalArgumentException: No line matching interface > SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, > 4 bytes/frame, little-endian is supported. > at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) > at > javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) > at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) > at Open.main(Open.java:53) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > at > com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) > at java.lang.Thread.run(Thread.java:636) > > These failures occur with the essentially Gervill CVS files I'm using as > well as the IcedTea versions. > > I've uploaded my webrev compared to the OpenJDK 6 b11 sources to > > http://dcstaff.invokedynamic.info/index.php?title=Image:darcy-6717691.tgz > > Below are the diffs of between Gervill CVS and my workspace and the > recent IcedTea overlays and my workspace; I just loop over the Java > files in the base directory, print out the file name, and then the > result of diff-ing with the corresponding files in my workspace. > > Thanks, > > -Joe > > > Latest Gervill CVS (July 21, 2008) vs my workspace: > ======================================== > > AudioFileSoundbankReader.java > AudioFloatConverter.java > AudioFloatFormatConverter.java > AudioFloatInputStream.java > AudioSynthesizer.java > AudioSynthesizerPropertyInfo.java > DLSInfo.java > DLSInstrument.java > DLSModulator.java > DLSRegion.java > DLSSample.java > DLSSampleLoop.java > DLSSampleOptions.java > DLSSoundbank.java > DLSSoundbankReader.java > EmergencySoundbank.java > FFT.java > InvalidDataException.java > InvalidFormatException.java > JARSoundbankReader.java > ModelAbstractChannelMixer.java > ModelAbstractOscillator.java > ModelByteBuffer.java > ModelByteBufferWavetable.java > ModelChannelMixer.java > ModelConnectionBlock.java > ModelDestination.java > ModelDirectedPlayer.java > ModelDirector.java > ModelIdentifier.java > ModelInstrument.java > ModelInstrumentComparator.java > ModelMappedInstrument.java > ModelOscillator.java > ModelOscillatorStream.java > ModelPatch.java > ModelPerformer.java > ModelSource.java > ModelStandardDirector.java > ModelStandardTransform.java > ModelTransform.java > ModelWavetable.java > RIFFInvalidDataException.java > RIFFInvalidFormatException.java > RIFFReader.java > RIFFWriter.java > SF2GlobalRegion.java > SF2Instrument.java > SF2InstrumentRegion.java > SF2Layer.java > SF2LayerRegion.java > SF2Modulator.java > SF2Region.java > SF2Sample.java > SF2Soundbank.java > SF2SoundbankReader.java > SimpleInstrument.java > SimpleSoundbank.java > SoftAbstractResampler.java > SoftAudioBuffer.java > SoftAudioProcessor.java > SoftAudioPusher.java > SoftChannel.java > SoftChannelProxy.java > SoftChorus.java > SoftControl.java > SoftCubicResampler.java > 8c8 > < * particular file as suabject to the "Classpath" exception as provided > --- > > * particular file as subject to the "Classpath" exception as provided > SoftEnvelopeGenerator.java > SoftFilter.java > SoftInstrument.java > SoftJitterCorrector.java > SoftLanczosResampler.java > SoftLimiter.java > SoftLinearResampler.java > SoftLinearResampler2.java > SoftLowFrequencyOscillator.java > SoftMainMixer.java > SoftMidiAudioFileReader.java > SoftMixingClip.java > SoftMixingDataLine.java > SoftMixingMainMixer.java > SoftMixingMixer.java > SoftMixingMixerProvider.java > SoftMixingSourceDataLine.java > SoftPerformer.java > SoftPointResampler.java > SoftProcess.java > SoftProvider.java > SoftReceiver.java > SoftResampler.java > SoftResamplerStreamer.java > SoftReverb.java > SoftShortMessage.java > SoftSincResampler.java > SoftSynthesizer.java > SoftTuning.java > SoftVoice.java > > > IcedTea 6 58510fd936ff overlays vs my workspace > ====================================== > > AudioFileSoundbankReader.java > AudioFloatConverter.java > AudioFloatFormatConverter.java > AudioFloatInputStream.java > AudioSynthesizer.java > AudioSynthesizerPropertyInfo.java > DLSInfo.java > DLSInstrument.java > DLSModulator.java > DLSRegion.java > DLSSample.java > DLSSampleLoop.java > DLSSampleOptions.java > DLSSoundbank.java > DLSSoundbankReader.java > 50,51d49 > < } catch(IOException ioe) { > < return null; > EmergencySoundbank.java > FFT.java > InvalidDataException.java > InvalidFormatException.java > JARSoundbankReader.java > ModelAbstractChannelMixer.java > ModelAbstractOscillator.java > ModelByteBuffer.java > ModelByteBufferWavetable.java > ModelChannelMixer.java > ModelConnectionBlock.java > ModelDestination.java > ModelDirectedPlayer.java > ModelDirector.java > ModelIdentifier.java > ModelInstrument.java > ModelInstrumentComparator.java > ModelMappedInstrument.java > ModelOscillator.java > ModelOscillatorStream.java > ModelPatch.java > ModelPerformer.java > ModelSource.java > ModelStandardDirector.java > ModelStandardTransform.java > ModelTransform.java > ModelWavetable.java > RIFFInvalidDataException.java > RIFFInvalidFormatException.java > RIFFReader.java > RIFFWriter.java > SF2GlobalRegion.java > SF2Instrument.java > SF2InstrumentRegion.java > SF2Layer.java > SF2LayerRegion.java > SF2Modulator.java > SF2Region.java > SF2Sample.java > SF2Soundbank.java > SF2SoundbankReader.java > 49,50d48 > < } catch(IOException ioe) { > < return null; > SimpleInstrument.java > SimpleSoundbank.java > SoftAbstractResampler.java > SoftAudioBuffer.java > SoftAudioProcessor.java > SoftAudioPusher.java > SoftChannel.java > 1197,1199c1197 > < // Should only return lower 7 bits, > < // even when controller is "boosted" higher. > < return this.controller[controller] & 127; > --- > > return this.controller[controller]; > SoftChannelProxy.java > SoftChorus.java > SoftControl.java > SoftCubicResampler.java > 8c8 > < * particular file as suabject to the "Classpath" exception as provided > --- > > * particular file as subject to the "Classpath" exception as provided > SoftEnvelopeGenerator.java > SoftFilter.java > SoftInstrument.java > SoftJitterCorrector.java > SoftLanczosResampler.java > SoftLimiter.java > SoftLinearResampler.java > SoftLinearResampler2.java > SoftLowFrequencyOscillator.java > SoftMainMixer.java > SoftMidiAudioFileReader.java > SoftMixingClip.java > SoftMixingDataLine.java > SoftMixingMainMixer.java > SoftMixingMixer.java > 357,359d356 > < DataLine.Info info = new DataLine.Info( > < SourceDataLine.class, format); > < > 368,369c365,413 > < line = (SourceDataLine) > defaultmixer.getLine(info); > < else > --- > > { > > // Search for suitable line > > > > DataLine.Info idealinfo = null; > > AudioFormat idealformat = null; > > > > Line.Info[] lineinfos = > defaultmixer.getSourceLineInfo(); > > idealFound: > > for (int i = 0; i < lineinfos.length; i++) { > > if(lineinfos[i].getLineClass() == > SourceDataLine.class) > > { > > DataLine.Info info = > (DataLine.Info)lineinfos[i]; > > AudioFormat[] formats = > info.getFormats(); > > for (int j = 0; j < > formats.length; j++) { > > AudioFormat format = formats[j]; > > if(format.getChannels() == 2 || > > format.getChannels() > == AudioSystem.NOT_SPECIFIED) > > > if(format.getEncoding().equals(Encoding.PCM_SIGNED) || > > > format.getEncoding().equals(Encoding.PCM_UNSIGNED)) > > if(format.getSampleRate() == > AudioSystem.NOT_SPECIFIED || > > > format.getSampleRate() == 48000.0) > > > if(format.getSampleSizeInBits() == AudioSystem.NOT_SPECIFIED || > > > format.getSampleSizeInBits() == 16) > > { > > idealinfo = info; > > int ideal_channels = > format.getChannels(); > > boolean ideal_signed = > format.getEncoding().equals(Encoding.PCM_SIGNED); > > float ideal_rate = > format.getSampleRate(); > > boolean ideal_endian = > format.isBigEndian(); > > int ideal_bits = > format.getSampleSizeInBits(); > > if(ideal_bits == > AudioSystem.NOT_SPECIFIED) ideal_bits = 16; > > if(ideal_channels == > AudioSystem.NOT_SPECIFIED) ideal_channels = 2; > > if(ideal_rate == > AudioSystem.NOT_SPECIFIED) ideal_rate = 48000; > > idealformat = new > AudioFormat(ideal_rate, ideal_bits, > > ideal_channels, > ideal_signed, ideal_endian); > > break idealFound; > > } > > } > > } > > } > > > > if(idealformat != null) > > { > > format = idealformat; > > line = (SourceDataLine) > defaultmixer.getLine(idealinfo); > > } > > } > > > > if(line == null) > SoftMixingMixerProvider.java > SoftMixingSourceDataLine.java > SoftPerformer.java > SoftPointResampler.java > SoftProcess.java > SoftProvider.java > SoftReceiver.java > SoftResampler.java > SoftResamplerStreamer.java > SoftReverb.java > SoftShortMessage.java > SoftSincResampler.java > SoftSynthesizer.java > 540a541,546 > > File userhome = null; > > File emg_soundbank_file = null; > > > > /* > > * Try to load saved generated soundbank > > */ > 541a548,563 > > userhome = new File(System.getProperty("user.home"), > > ".gervill"); > > emg_soundbank_file = new File(userhome, > "soundbank-emg.sf2"); > > Soundbank sbk = > MidiSystem.getSoundbank(emg_soundbank_file); > > defaultSoundBank = sbk; > > return defaultSoundBank; > > } catch (AccessControlException e) { > > } catch (Exception e) { > > //e.printStackTrace(); > > } > > > > try { > > > > /* > > * Generate emergency soundbank > > */ > 542a565,574 > > > > /* > > * Save generated soundbank to disk for faster > future use. > > */ > > if(defaultSoundBank != null) > > { > > if(!userhome.exists()) userhome.mkdirs(); > > if(!emg_soundbank_file.exists()) > > > ((SF2Soundbank)defaultSoundBank).save(emg_soundbank_file); > > } > 594,596d625 > < if (soundbank == null || !isSoundbankSupported(soundbank)) > < throw new IllegalArgumentException("Unsupported soundbank: > " + soundbank); > < > 621,623d649 > < if (soundbank == null || !isSoundbankSupported(soundbank)) > < throw new IllegalArgumentException("Unsupported soundbank: > " + soundbank); > < > SoftTuning.java > SoftVoice.java > WaveExtensibleFileReader.java > diff: > /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java: > No such file or directory > WaveFloatFileReader.java > 74a75 > > long framerate = 1; > 89c90 > < /* framerate = */chunk.readUnsignedInt(); > --- > > framerate = chunk.readUnsignedInt(); > 106c107 > < framesize, samplerate, false); > --- > > framesize, framerate, false); > WaveFloatFileWriter.java > diff: > /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java: > No such file or directory > > > > No virus found in this incoming message. > Checked by AVG. > Version: 7.5.524 / Virus Database: 270.5.4/1566 - Release Date: 22.7.2008 06:00 > No virus found in this incoming message. Checked by AVG. Version: 7.5.524 / Virus Database: 270.5.5/1569 - Release Date: 23.7.2008 13:31 From Joe.Darcy at Sun.COM Mon Jul 28 17:02:42 2008 From: Joe.Darcy at Sun.COM (Joe Darcy) Date: Mon, 28 Jul 2008 17:02:42 -0700 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <36EC82E93EB0AD40A4301DAD65432386B8A7361850@mail.midverk.is> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> <488969EF.8000405@sun.com> <36EC82E93EB0AD40A4301DAD65432386B8A7361850@mail.midverk.is> Message-ID: <488E5E22.3050209@sun.com> Hi Karl. Karl Helgason wrote: > Hi Joe, > > I have fixed the jtreg tests in Gervill CVS so they use a dummy SourceDataLine instead of real one. > Yes, I synced up my workspace with your latest CVS changes and all the Gervill regression tests now pass when run through our jprt build/test system :-) I've updated a revised webrev to invokedynamic.info. Thanks, -Joe > cheers, > Karl > ________________________________________ > Fr?: Joe.Darcy at Sun.COM [Joe.Darcy at Sun.COM] > Sent: 25. j?l? 2008 05:51 > Vi?takandi: Karl Helgason > Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; Dalibor.Topic at Sun.COM > Efni: Re: SV: Updating Gervill for OpenJDK 6 build 12 > > Hi Karl. > > Karl Helgason wrote: > >> Hi Joe, >> >> Gervill CVS has the newest code and Gervill overlays in IcedTea 6 are then copied from Gervill CVS. >> Any fixes that have been done in Gervill overlays in IcedTea 6 has also been done Gervill CVS. >> Gervill in OpenJDK 6 b10 was based on version 0.9 of Gervill as can be seen in the CHANGES file. >> > > Right, I want to update to the latest and greatest version of Gervill, > with all the fixes you and Mark have worked on :-) Just to be clear, > given that the IcedTea overlays the the Gervill CVS are different, you > recommend I upgrade OpenJDK 6 to match the latest Gervill CVS. > > >> I have fixed the "suabject" typo in the SoftCubicResampler.java in the Gervill CVS master. >> Where did you find raw types in the code, there aren't supposed to be any. >> >> WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader has been >> moved to src.floatwav in the Gervill CVS. Because they aren't directly related with >> Gervill Synthesizer. They simply add support for float encoded Wave files. >> And WaveExtensibleFileReader is also a proposal how we should store >> channel mask in AudioFormat properties (used for multi-channel wave files). >> > > So, should I add these files to OpenJDK 6? > > >> SoftMixingMixer is a experimental mixer to replace the functionality of the >> Java Sound Audio Engine mixer. It performs software audio mixing, >> which is useful when the audio hardware doesn't support mixing. >> It is not yet fully ready. And thus is disabled in the IcedTea. >> > > Okay; I'll leave the service files as they are now. > > >> Those 9 regression tests fails because we aren't able to open audio device >> with default format. >> This is the code that fails: >> AudioFormat format = new AudioFormat(44100, 16, 2, true, false) >> line = AudioSystem.getSourceDataLine(getFormat()); >> It will be interesting to know if this code fails under those conditions which >> the regression tests fail in. >> > > I haven't been able to exactly charactterize when the tests pass. > Running as root on Linu x seems to work, as does logging in via the > console on Solaris. However, ssh based logins seem problematic. How do > you run these tests? Often we run the JDK regression tests remotely > over ssh, etc. so it is preferable for the tess to be able to pass in > those circumstances too to avoid spurious failures. > > >> And it will also be interesting to know if these tests also fails >> if you enable the SoftMixingMixerProvider mixer provider. >> > > IIRC, in various iterations, I changed the service files to enable the > soft mixing mixer and those 9 tests still failed across platforms. > > Cheers, > > -Joe > > >> regards, >> Karl >> >> ________________________________________ >> Fr?: sound-dev-bounces at openjdk.java.net [sound-dev-bounces at openjdk.java.net] Fyrir hönd Joe Darcy [Joe.Darcy at Sun.COM] >> Sent: 22. j?l? 2008 22:53 >> Vi?takandi: audio-engine-dev at openjdk.java.net >> Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; Dalibor.Topic at Sun.COM >> Efni: Updating Gervill for OpenJDK 6 build 12 >> >> Hello. >> >> With my OpenJDK 6 release manager hat on, I've been working to update >> the version of Gervill used to OpenJDK 6 to a newer version that passes >> the JCK tests, etc. and I'd like some review of my integration work. >> Before this exercise, I don't have any prior experience with sound code. >> >> A few comments, the copyright header in file SoftCubicResampler.java in >> the Gervill CVS master contains the typo "suabject" instead of >> "subject." From some casual examination of the code, it seems to use >> raw types throughout, that is "List" rather than "List", etc. >> It would be better to covert to using generics; I think IDEs have >> refactorings to help this now. >> >> There are some differences between the latest Gervill CVS from the >> project's site and the Gervill overlays in IcedTea 6. In particular, >> IcedTea has changes to SoftMixingMixer.java and SoftSynthesizer.java as >> well as some additional files, WaveExtensibleFileReader.java and >> WaveFloatFileWriter.java. I'd prefer to limit future merging work >> between the three code bases, Gervill CVS, OpenJDK 6, and IcedTea >> overlays, so in the context of updating Gervill for OpenJDK 6 b12, I >> think it would be good to resolve these remaining few differences. The >> test directories are the same in all three code bases, except I don't >> pick up a missing newline at the end of >> ./SoftCubicResampler/Interpolate.java. >> >> During the update I ran into some testing issues, both with the original >> Gervill integration in OpenJDK 6 b10 as well as the new code for b12. >> Specifically, the 9 regression tests >> >> javax/sound/midi/Gervill/SoftAudioSynthesizer/Open.java >> javax/sound/midi/Gervill/SoftSynthesizer/GetLatency.java >> javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver.java >> javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver2.java >> javax/sound/midi/Gervill/SoftSynthesizer/GetReceivers.java >> javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitter.java >> javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitters.java >> javax/sound/midi/Gervill/SoftSynthesizer/ImplicitOpenClose.java >> javax/sound/midi/Gervill/SoftSynthesizer/Open.java >> >> can fail, seemingly dependent on how one logs into the machine. What >> are the necessary and sufficient conditions for permissions to run these >> tests? When they occur, the failures I see look like: >> >> Windows >> ========= >> >> java.lang.IllegalArgumentException: No line matching interface >> SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, >> 4 bytes/frame, little-endian is supported. >> at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) >> at >> javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) >> at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) >> at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) >> at Open.main(Open.java:53) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:616) >> at >> com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) >> at java.lang.Thread.run(Thread.java:636) >> >> Linux >> ====== >> >> STDERR: >> java: conf.c:3109: snd_config_update_free: Assertion `update->count > 0 >> && update->finfo' failed. >> >> TEST RESULT: Failed. Unexpected exit from test [exit code: 134] >> >> Solaris >> ======= >> >> java.lang.IllegalArgumentException: No line matching interface >> SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, >> 4 bytes/frame, little-endian is supported. >> at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476) >> at >> javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604) >> at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:762) >> at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:744) >> at Open.main(Open.java:53) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:616) >> at >> com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:96) >> at java.lang.Thread.run(Thread.java:636) >> >> These failures occur with the essentially Gervill CVS files I'm using as >> well as the IcedTea versions. >> >> I've uploaded my webrev compared to the OpenJDK 6 b11 sources to >> >> http://dcstaff.invokedynamic.info/index.php?title=Image:darcy-6717691.tgz >> >> Below are the diffs of between Gervill CVS and my workspace and the >> recent IcedTea overlays and my workspace; I just loop over the Java >> files in the base directory, print out the file name, and then the >> result of diff-ing with the corresponding files in my workspace. >> >> Thanks, >> >> -Joe >> >> >> Latest Gervill CVS (July 21, 2008) vs my workspace: >> ======================================== >> >> AudioFileSoundbankReader.java >> AudioFloatConverter.java >> AudioFloatFormatConverter.java >> AudioFloatInputStream.java >> AudioSynthesizer.java >> AudioSynthesizerPropertyInfo.java >> DLSInfo.java >> DLSInstrument.java >> DLSModulator.java >> DLSRegion.java >> DLSSample.java >> DLSSampleLoop.java >> DLSSampleOptions.java >> DLSSoundbank.java >> DLSSoundbankReader.java >> EmergencySoundbank.java >> FFT.java >> InvalidDataException.java >> InvalidFormatException.java >> JARSoundbankReader.java >> ModelAbstractChannelMixer.java >> ModelAbstractOscillator.java >> ModelByteBuffer.java >> ModelByteBufferWavetable.java >> ModelChannelMixer.java >> ModelConnectionBlock.java >> ModelDestination.java >> ModelDirectedPlayer.java >> ModelDirector.java >> ModelIdentifier.java >> ModelInstrument.java >> ModelInstrumentComparator.java >> ModelMappedInstrument.java >> ModelOscillator.java >> ModelOscillatorStream.java >> ModelPatch.java >> ModelPerformer.java >> ModelSource.java >> ModelStandardDirector.java >> ModelStandardTransform.java >> ModelTransform.java >> ModelWavetable.java >> RIFFInvalidDataException.java >> RIFFInvalidFormatException.java >> RIFFReader.java >> RIFFWriter.java >> SF2GlobalRegion.java >> SF2Instrument.java >> SF2InstrumentRegion.java >> SF2Layer.java >> SF2LayerRegion.java >> SF2Modulator.java >> SF2Region.java >> SF2Sample.java >> SF2Soundbank.java >> SF2SoundbankReader.java >> SimpleInstrument.java >> SimpleSoundbank.java >> SoftAbstractResampler.java >> SoftAudioBuffer.java >> SoftAudioProcessor.java >> SoftAudioPusher.java >> SoftChannel.java >> SoftChannelProxy.java >> SoftChorus.java >> SoftControl.java >> SoftCubicResampler.java >> 8c8 >> < * particular file as suabject to the "Classpath" exception as provided >> --- >> > * particular file as subject to the "Classpath" exception as provided >> SoftEnvelopeGenerator.java >> SoftFilter.java >> SoftInstrument.java >> SoftJitterCorrector.java >> SoftLanczosResampler.java >> SoftLimiter.java >> SoftLinearResampler.java >> SoftLinearResampler2.java >> SoftLowFrequencyOscillator.java >> SoftMainMixer.java >> SoftMidiAudioFileReader.java >> SoftMixingClip.java >> SoftMixingDataLine.java >> SoftMixingMainMixer.java >> SoftMixingMixer.java >> SoftMixingMixerProvider.java >> SoftMixingSourceDataLine.java >> SoftPerformer.java >> SoftPointResampler.java >> SoftProcess.java >> SoftProvider.java >> SoftReceiver.java >> SoftResampler.java >> SoftResamplerStreamer.java >> SoftReverb.java >> SoftShortMessage.java >> SoftSincResampler.java >> SoftSynthesizer.java >> SoftTuning.java >> SoftVoice.java >> >> >> IcedTea 6 58510fd936ff overlays vs my workspace >> ====================================== >> >> AudioFileSoundbankReader.java >> AudioFloatConverter.java >> AudioFloatFormatConverter.java >> AudioFloatInputStream.java >> AudioSynthesizer.java >> AudioSynthesizerPropertyInfo.java >> DLSInfo.java >> DLSInstrument.java >> DLSModulator.java >> DLSRegion.java >> DLSSample.java >> DLSSampleLoop.java >> DLSSampleOptions.java >> DLSSoundbank.java >> DLSSoundbankReader.java >> 50,51d49 >> < } catch(IOException ioe) { >> < return null; >> EmergencySoundbank.java >> FFT.java >> InvalidDataException.java >> InvalidFormatException.java >> JARSoundbankReader.java >> ModelAbstractChannelMixer.java >> ModelAbstractOscillator.java >> ModelByteBuffer.java >> ModelByteBufferWavetable.java >> ModelChannelMixer.java >> ModelConnectionBlock.java >> ModelDestination.java >> ModelDirectedPlayer.java >> ModelDirector.java >> ModelIdentifier.java >> ModelInstrument.java >> ModelInstrumentComparator.java >> ModelMappedInstrument.java >> ModelOscillator.java >> ModelOscillatorStream.java >> ModelPatch.java >> ModelPerformer.java >> ModelSource.java >> ModelStandardDirector.java >> ModelStandardTransform.java >> ModelTransform.java >> ModelWavetable.java >> RIFFInvalidDataException.java >> RIFFInvalidFormatException.java >> RIFFReader.java >> RIFFWriter.java >> SF2GlobalRegion.java >> SF2Instrument.java >> SF2InstrumentRegion.java >> SF2Layer.java >> SF2LayerRegion.java >> SF2Modulator.java >> SF2Region.java >> SF2Sample.java >> SF2Soundbank.java >> SF2SoundbankReader.java >> 49,50d48 >> < } catch(IOException ioe) { >> < return null; >> SimpleInstrument.java >> SimpleSoundbank.java >> SoftAbstractResampler.java >> SoftAudioBuffer.java >> SoftAudioProcessor.java >> SoftAudioPusher.java >> SoftChannel.java >> 1197,1199c1197 >> < // Should only return lower 7 bits, >> < // even when controller is "boosted" higher. >> < return this.controller[controller] & 127; >> --- >> > return this.controller[controller]; >> SoftChannelProxy.java >> SoftChorus.java >> SoftControl.java >> SoftCubicResampler.java >> 8c8 >> < * particular file as suabject to the "Classpath" exception as provided >> --- >> > * particular file as subject to the "Classpath" exception as provided >> SoftEnvelopeGenerator.java >> SoftFilter.java >> SoftInstrument.java >> SoftJitterCorrector.java >> SoftLanczosResampler.java >> SoftLimiter.java >> SoftLinearResampler.java >> SoftLinearResampler2.java >> SoftLowFrequencyOscillator.java >> SoftMainMixer.java >> SoftMidiAudioFileReader.java >> SoftMixingClip.java >> SoftMixingDataLine.java >> SoftMixingMainMixer.java >> SoftMixingMixer.java >> 357,359d356 >> < DataLine.Info info = new DataLine.Info( >> < SourceDataLine.class, format); >> < >> 368,369c365,413 >> < line = (SourceDataLine) >> defaultmixer.getLine(info); >> < else >> --- >> > { >> > // Search for suitable line >> > >> > DataLine.Info idealinfo = null; >> > AudioFormat idealformat = null; >> > >> > Line.Info[] lineinfos = >> defaultmixer.getSourceLineInfo(); >> > idealFound: >> > for (int i = 0; i < lineinfos.length; i++) { >> > if(lineinfos[i].getLineClass() == >> SourceDataLine.class) >> > { >> > DataLine.Info info = >> (DataLine.Info)lineinfos[i]; >> > AudioFormat[] formats = >> info.getFormats(); >> > for (int j = 0; j < >> formats.length; j++) { >> > AudioFormat format = formats[j]; >> > if(format.getChannels() == 2 || >> > format.getChannels() >> == AudioSystem.NOT_SPECIFIED) >> > >> if(format.getEncoding().equals(Encoding.PCM_SIGNED) || >> > >> format.getEncoding().equals(Encoding.PCM_UNSIGNED)) >> > if(format.getSampleRate() == >> AudioSystem.NOT_SPECIFIED || >> > >> format.getSampleRate() == 48000.0) >> > >> if(format.getSampleSizeInBits() == AudioSystem.NOT_SPECIFIED || >> > >> format.getSampleSizeInBits() == 16) >> > { >> > idealinfo = info; >> > int ideal_channels = >> format.getChannels(); >> > boolean ideal_signed = >> format.getEncoding().equals(Encoding.PCM_SIGNED); >> > float ideal_rate = >> format.getSampleRate(); >> > boolean ideal_endian = >> format.isBigEndian(); >> > int ideal_bits = >> format.getSampleSizeInBits(); >> > if(ideal_bits == >> AudioSystem.NOT_SPECIFIED) ideal_bits = 16; >> > if(ideal_channels == >> AudioSystem.NOT_SPECIFIED) ideal_channels = 2; >> > if(ideal_rate == >> AudioSystem.NOT_SPECIFIED) ideal_rate = 48000; >> > idealformat = new >> AudioFormat(ideal_rate, ideal_bits, >> > ideal_channels, >> ideal_signed, ideal_endian); >> > break idealFound; >> > } >> > } >> > } >> > } >> > >> > if(idealformat != null) >> > { >> > format = idealformat; >> > line = (SourceDataLine) >> defaultmixer.getLine(idealinfo); >> > } >> > } >> > >> > if(line == null) >> SoftMixingMixerProvider.java >> SoftMixingSourceDataLine.java >> SoftPerformer.java >> SoftPointResampler.java >> SoftProcess.java >> SoftProvider.java >> SoftReceiver.java >> SoftResampler.java >> SoftResamplerStreamer.java >> SoftReverb.java >> SoftShortMessage.java >> SoftSincResampler.java >> SoftSynthesizer.java >> 540a541,546 >> > File userhome = null; >> > File emg_soundbank_file = null; >> > >> > /* >> > * Try to load saved generated soundbank >> > */ >> 541a548,563 >> > userhome = new File(System.getProperty("user.home"), >> > ".gervill"); >> > emg_soundbank_file = new File(userhome, >> "soundbank-emg.sf2"); >> > Soundbank sbk = >> MidiSystem.getSoundbank(emg_soundbank_file); >> > defaultSoundBank = sbk; >> > return defaultSoundBank; >> > } catch (AccessControlException e) { >> > } catch (Exception e) { >> > //e.printStackTrace(); >> > } >> > >> > try { >> > >> > /* >> > * Generate emergency soundbank >> > */ >> 542a565,574 >> > >> > /* >> > * Save generated soundbank to disk for faster >> future use. >> > */ >> > if(defaultSoundBank != null) >> > { >> > if(!userhome.exists()) userhome.mkdirs(); >> > if(!emg_soundbank_file.exists()) >> > >> ((SF2Soundbank)defaultSoundBank).save(emg_soundbank_file); >> > } >> 594,596d625 >> < if (soundbank == null || !isSoundbankSupported(soundbank)) >> < throw new IllegalArgumentException("Unsupported soundbank: >> " + soundbank); >> < >> 621,623d649 >> < if (soundbank == null || !isSoundbankSupported(soundbank)) >> < throw new IllegalArgumentException("Unsupported soundbank: >> " + soundbank); >> < >> SoftTuning.java >> SoftVoice.java >> WaveExtensibleFileReader.java >> diff: >> /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java: >> No such file or directory >> WaveFloatFileReader.java >> 74a75 >> > long framerate = 1; >> 89c90 >> < /* framerate = */chunk.readUnsignedInt(); >> --- >> > framerate = chunk.readUnsignedInt(); >> 106c107 >> < framesize, samplerate, false); >> --- >> > framesize, framerate, false); >> WaveFloatFileWriter.java >> diff: >> /net/hest.sfbay/w/darcy/ws/6-open.new/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java: >> No such file or directory >> >> >> >> No virus found in this incoming message. >> Checked by AVG. >> Version: 7.5.524 / Virus Database: 270.5.4/1566 - Release Date: 22.7.2008 06:00 >> >> > > > > No virus found in this incoming message. > Checked by AVG. > Version: 7.5.524 / Virus Database: 270.5.5/1569 - Release Date: 23.7.2008 13:31 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/sound-dev/attachments/20080728/40fc096b/attachment.html From Joe.Darcy at Sun.COM Mon Jul 28 17:12:37 2008 From: Joe.Darcy at Sun.COM (Joe Darcy) Date: Mon, 28 Jul 2008 17:12:37 -0700 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> Message-ID: <488E6075.9070807@sun.com> Hi Karl. Karl Helgason wrote: > Hi Joe, > > Gervill CVS has the newest code and Gervill overlays in IcedTea 6 are then copied from Gervill CVS. > Any fixes that have been done in Gervill overlays in IcedTea 6 has also been done Gervill CVS. > Gervill in OpenJDK 6 b10 was based on version 0.9 of Gervill as can be seen in the CHANGES file. > > I have fixed the "suabject" typo in the SoftCubicResampler.java in the Gervill CVS master. > Where did you find raw types in the code, there aren't supposed to be any. > If you compile the source with "javac Xlint:unchecked" it will list the 52 or so places with unchecked conversions, mostly from raw uses of Vector, ArrayList, Map, and doPrivileged. -Joe From Joe.Darcy at Sun.COM Mon Jul 28 17:25:14 2008 From: Joe.Darcy at Sun.COM (Joe Darcy) Date: Mon, 28 Jul 2008 17:25:14 -0700 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <4889F9E5.7000606@sun.com> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> <488969EF.8000405@sun.com> <36EC82E93EB0AD40A4301DAD65432386B2FF7F30B3@mail.midverk.is> <4889F9E5.7000606@sun.com> Message-ID: <488E636A.2040902@sun.com> Alex Menkov wrote: > > Karl Helgason wrote: >>>> WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader >>>> has been >>>> moved to src.floatwav in the Gervill CVS. Because they aren't >>>> directly related with >>>> Gervill Synthesizer. They simply add support for float encoded Wave >>>> files. >>>> And WaveExtensibleFileReader is also a proposal how we should store >>>> channel mask in AudioFormat properties (used for multi-channel wave >>>> files). >>> So, should I add these files to OpenJDK 6? >>> >> >> It depends, Alexey thought we should rather add support for PCM Float >> support >> to current com.sun.media.sound.WaveFileReader and WaveFileWriter classes >> than introducing new one. > > All this wave readers (current PCM/ALAW/ULAW and Float & Extensible > from Gervill) could be combined in different ways - basing on current > WaveFileReader or basing on WaveFloatFileReader or > WaveExtensibleFileReader. > Main goal is to avoid functionality duplication. I'm personally agnostic toward how this functionality is implemented. Alex and Karl, how about I add these files along with the other changes I'm making? -Joe > > >>> And WaveExtensibleFileReader is also a proposal how we should store > >>> channel mask in AudioFormat properties (used for multi-channel > wave files). > > Wow.. I've overlooked this :) > > > > Regards > Alex From Joe.Darcy at Sun.COM Mon Jul 28 18:52:03 2008 From: Joe.Darcy at Sun.COM (Joe Darcy) Date: Mon, 28 Jul 2008 18:52:03 -0700 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <488E6075.9070807@sun.com> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> <488E6075.9070807@sun.com> Message-ID: <488E77C3.10609@sun.com> Joe Darcy wrote: > Hi Karl. > > Karl Helgason wrote: >> Hi Joe, >> >> Gervill CVS has the newest code and Gervill overlays in IcedTea 6 are >> then copied from Gervill CVS. >> Any fixes that have been done in Gervill overlays in IcedTea 6 has >> also been done Gervill CVS. >> Gervill in OpenJDK 6 b10 was based on version 0.9 of Gervill as can >> be seen in the CHANGES file. >> >> I have fixed the "suabject" typo in the SoftCubicResampler.java in >> the Gervill CVS master. >> Where did you find raw types in the code, there aren't supposed to be >> any. >> > > If you compile the source with "javac Xlint:unchecked" it will list > the 52 or so places with unchecked conversions, mostly from raw uses > of Vector, ArrayList, Map, and doPrivileged. > > Correction; the Gervill sources are clean regarding unchecked warnings. The warnings I see are from other files in the com.sun.media.sound package. Sorry for the mistake, -Joe From kalli at midverk.is Mon Jul 28 19:10:32 2008 From: kalli at midverk.is (Karl Helgason) Date: Tue, 29 Jul 2008 02:10:32 +0000 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <488E636A.2040902@sun.com> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> <488969EF.8000405@sun.com> <36EC82E93EB0AD40A4301DAD65432386B2FF7F30B3@mail.midverk.is> <4889F9E5.7000606@sun.com>,<488E636A.2040902@sun.com> Message-ID: <36EC82E93EB0AD40A4301DAD65432386BABB5D5002@mail.midverk.is> Adding PCM Float support into current WaveFileReader.java, WaveFileWriter.java would be best. And it is just question of adding few lines. But until then I think you can use WaveFloatFileReader.java, WaveFloatFileWriter.java. ________________________________________ Fr?: Joe.Darcy at Sun.COM [Joe.Darcy at Sun.COM] Sent: 29. j?l? 2008 00:25 Vi?takandi: Alex Menkov; Karl Helgason Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; Dalibor.Topic at Sun.COM Efni: Re: Updating Gervill for OpenJDK 6 build 12 Alex Menkov wrote: > > Karl Helgason wrote: >>>> WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader >>>> has been >>>> moved to src.floatwav in the Gervill CVS. Because they aren't >>>> directly related with >>>> Gervill Synthesizer. They simply add support for float encoded Wave >>>> files. >>>> And WaveExtensibleFileReader is also a proposal how we should store >>>> channel mask in AudioFormat properties (used for multi-channel wave >>>> files). >>> So, should I add these files to OpenJDK 6? >>> >> >> It depends, Alexey thought we should rather add support for PCM Float >> support >> to current com.sun.media.sound.WaveFileReader and WaveFileWriter classes >> than introducing new one. > > All this wave readers (current PCM/ALAW/ULAW and Float & Extensible > from Gervill) could be combined in different ways - basing on current > WaveFileReader or basing on WaveFloatFileReader or > WaveExtensibleFileReader. > Main goal is to avoid functionality duplication. I'm personally agnostic toward how this functionality is implemented. Alex and Karl, how about I add these files along with the other changes I'm making? -Joe > > >>> And WaveExtensibleFileReader is also a proposal how we should store > >>> channel mask in AudioFormat properties (used for multi-channel > wave files). > > Wow.. I've overlooked this :) > > > > Regards > Alex No virus found in this incoming message. Checked by AVG. Version: 7.5.524 / Virus Database: 270.5.6/1576 - Release Date: 27.7.2008 16:16 From Joe.Darcy at Sun.COM Mon Jul 28 19:24:21 2008 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Mon, 28 Jul 2008 19:24:21 -0700 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <36EC82E93EB0AD40A4301DAD65432386BABB5D5002@mail.midverk.is> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> <488969EF.8000405@sun.com> <36EC82E93EB0AD40A4301DAD65432386B2FF7F30B3@mail.midverk.is> <4889F9E5.7000606@sun.com> <488E636A.2040902@sun.com> <36EC82E93EB0AD40A4301DAD65432386BABB5D5002@mail.midverk.is> Message-ID: <488E7F55.3050903@sun.com> Karl Helgason wrote: > Adding PCM Float support into current WaveFileReader.java, WaveFileWriter.java > would be best. And it is just question of adding few lines. > But until then I think you can use WaveFloatFileReader.java, WaveFloatFileWriter.java. Just to be clear, you recommend for now I add WaveFloatFileReader.java and WaveFloatFileWriter.java. (from src.floatwav/ rather than src/) but not include WaveExtensibleFileReader.java. -Joe > ________________________________________ > Fr?: Joe.Darcy at Sun.COM [Joe.Darcy at Sun.COM] > Sent: 29. j?l? 2008 00:25 > Vi?takandi: Alex Menkov; Karl Helgason > Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; Dalibor.Topic at Sun.COM > Efni: Re: Updating Gervill for OpenJDK 6 build 12 > > Alex Menkov wrote: >> Karl Helgason wrote: >>>>> WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader >>>>> has been >>>>> moved to src.floatwav in the Gervill CVS. Because they aren't >>>>> directly related with >>>>> Gervill Synthesizer. They simply add support for float encoded Wave >>>>> files. >>>>> And WaveExtensibleFileReader is also a proposal how we should store >>>>> channel mask in AudioFormat properties (used for multi-channel wave >>>>> files). >>>> So, should I add these files to OpenJDK 6? >>>> >>> It depends, Alexey thought we should rather add support for PCM Float >>> support >>> to current com.sun.media.sound.WaveFileReader and WaveFileWriter classes >>> than introducing new one. >> All this wave readers (current PCM/ALAW/ULAW and Float & Extensible >> from Gervill) could be combined in different ways - basing on current >> WaveFileReader or basing on WaveFloatFileReader or >> WaveExtensibleFileReader. >> Main goal is to avoid functionality duplication. > > I'm personally agnostic toward how this functionality is implemented. > Alex and Karl, how about I add these files along with the other changes > I'm making? > > -Joe > >>>>> And WaveExtensibleFileReader is also a proposal how we should store >>>>> channel mask in AudioFormat properties (used for multi-channel >> wave files). >> >> Wow.. I've overlooked this :) >> >> >> >> Regards >> Alex > > > > No virus found in this incoming message. > Checked by AVG. > Version: 7.5.524 / Virus Database: 270.5.6/1576 - Release Date: 27.7.2008 16:16 > From Joe.Darcy at Sun.COM Tue Jul 29 22:22:19 2008 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Tue, 29 Jul 2008 22:22:19 -0700 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <488E7F55.3050903@sun.com> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> <488969EF.8000405@sun.com> <36EC82E93EB0AD40A4301DAD65432386B2FF7F30B3@mail.midverk.is> <4889F9E5.7000606@sun.com> <488E636A.2040902@sun.com> <36EC82E93EB0AD40A4301DAD65432386BABB5D5002@mail.midverk.is> <488E7F55.3050903@sun.com> Message-ID: <488FFA8B.5060301@sun.com> Hello. I've synced up with Karl's regression test changes, added the changes for the three Wave* files, and integrated the updated version of Gervill into the internal OpenJDK 6 b12 code base. All Gervill regression tests now pass on all platforms :-) The source for build 12 should be posted within a week or two. Thanks, -Joe Joseph D. Darcy wrote: > Karl Helgason wrote: >> Adding PCM Float support into current WaveFileReader.java, >> WaveFileWriter.java >> would be best. And it is just question of adding few lines. >> But until then I think you can use WaveFloatFileReader.java, >> WaveFloatFileWriter.java. > > Just to be clear, you recommend for now I add WaveFloatFileReader.java > and WaveFloatFileWriter.java. (from src.floatwav/ rather than src/) but > not include WaveExtensibleFileReader.java. > > -Joe > >> ________________________________________ >> Fr?: Joe.Darcy at Sun.COM [Joe.Darcy at Sun.COM] >> Sent: 29. j?l? 2008 00:25 >> Vi?takandi: Alex Menkov; Karl Helgason >> Afrit: sound-dev at openjdk.java.net; Alexey.Menkov at Sun.COM; >> Dalibor.Topic at Sun.COM >> Efni: Re: Updating Gervill for OpenJDK 6 build 12 >> >> Alex Menkov wrote: >>> Karl Helgason wrote: >>>>>> WaveExtensibleFileReader,WaveFloatFileWriter,WaveFloatFileReader >>>>>> has been >>>>>> moved to src.floatwav in the Gervill CVS. Because they aren't >>>>>> directly related with >>>>>> Gervill Synthesizer. They simply add support for float encoded Wave >>>>>> files. >>>>>> And WaveExtensibleFileReader is also a proposal how we should store >>>>>> channel mask in AudioFormat properties (used for multi-channel wave >>>>>> files). >>>>> So, should I add these files to OpenJDK 6? >>>>> >>>> It depends, Alexey thought we should rather add support for PCM Float >>>> support >>>> to current com.sun.media.sound.WaveFileReader and WaveFileWriter >>>> classes >>>> than introducing new one. >>> All this wave readers (current PCM/ALAW/ULAW and Float & Extensible >>> from Gervill) could be combined in different ways - basing on current >>> WaveFileReader or basing on WaveFloatFileReader or >>> WaveExtensibleFileReader. >>> Main goal is to avoid functionality duplication. >> >> I'm personally agnostic toward how this functionality is implemented. >> Alex and Karl, how about I add these files along with the other changes >> I'm making? >> >> -Joe >> >>>>>> And WaveExtensibleFileReader is also a proposal how we should store >>>>>> channel mask in AudioFormat properties (used for multi-channel >>> wave files). >>> >>> Wow.. I've overlooked this :) >>> >>> >>> >>> Regards >>> Alex >> >> >> >> No virus found in this incoming message. >> Checked by AVG. >> Version: 7.5.524 / Virus Database: 270.5.6/1576 - Release Date: >> 27.7.2008 16:16 >> > From Dalibor.Topic at Sun.COM Wed Jul 30 18:28:44 2008 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Wed, 30 Jul 2008 18:28:44 -0700 Subject: Updating Gervill for OpenJDK 6 build 12 In-Reply-To: <488FFA8B.5060301@sun.com> References: <488664F8.5000109@sun.com> <36EC82E93EB0AD40A4301DAD65432386B243F376D8@mail.midverk.is> <488969EF.8000405@sun.com> <36EC82E93EB0AD40A4301DAD65432386B2FF7F30B3@mail.midverk.is> <4889F9E5.7000606@sun.com> <488E636A.2040902@sun.com> <36EC82E93EB0AD40A4301DAD65432386BABB5D5002@mail.midverk.is> <488E7F55.3050903@sun.com> <488FFA8B.5060301@sun.com> Message-ID: <4891154C.4090003@sun.com> Joseph D. Darcy wrote: > Hello. > > I've synced up with Karl's regression test changes, added the changes > for the three Wave* files, and integrated the updated version of > Gervill into the internal OpenJDK 6 b12 code base. All Gervill > regression tests now pass on all platforms :-) > > The source for build 12 should be posted within a week or two. Thanks, Joe, you rock ;) cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: Thomas Schr?der, Wolfgang Engels, Dr. Roland B?mer Vorsitzender des Aufsichtsrates: Martin H?ring