Mercurial > hg > release > icedtea6-1.2
view overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt @ 861:30c7450d05dc
New Gervill CVS import. Add AudioFloatFormatConverter FormatConversionProvider.
2008-05-09 Mark Wielaard <mwielaard@redhat.com>
* overlays/openjdk/jdk/src/share/classes/com/sun/media/sound:
Import Gervill fixes from CVS. See CHANGES.txt.
Check isConversionSupported() in
AudioFloatFormatConverter.getTargetFormats().
* patches/icedtea-gervill.patch: Add AudioFloatFormatConverter to
javax.sound.sampled.spi.FormatConversionProvider.
author | Mark Wielaard <mark@klomp.org> |
---|---|
date | Fri, 09 May 2008 19:04:37 +0200 |
parents | 4706d355d973 |
children | a1832ea486e9 |
line wrap: on
line source
- Removed: PATSoundBankReader removed because no format license is available. It is also undocumented format. - Added: AudioFloatFormatConverter, used to convert between PCM_SIGNED, PCM_UNSIGNED, PCM_FLOAT in 8/16/24/32 bit (big/little endian), and resample using (linear/cubic/sinc...) if needed. - Added: WaveExtensibleReader, used to read WAV files using WAVE_FORMAT_EXTENSIBLE format. - Added: WaveFloatFileWriter, used to writing WAV files with PCM_FLOAT encoding. - Change: Make SoftAudioProcessor (limiter, reverb, chorus, agc) more general. - Fix: AudioFloatConverter tests incorrectly AudioFormat frameSize against SampleSizeInBits Support for 64-byte float added, and support for 32+ bit PCM samples. SampleSizeInBits not dividable by 8 are now handled correctly. - Fix: DLSID(GUID) values incorrectly read from files in DLSSoundBank. - Fix: WaveFloatFileReader incorrectly sets framrate. - Fix: DLSSoundbank writes avgBytesPerSec incorrectly if SampleSizeInBits is not dividable by 8. - Fix: SoftChannel didn't reset concept of LSB control to 0 when MSB control value is set (according to MIDI 1.0 Detailed Spec. page 12) - Fix: SoftChannel, added check for illegal noteNumbers. If illegal notenumber was used in NoteOn/NoteOff a ArrayOutOfIndex exception was thrown. - Fix: Default tempo in SoftMidiFileReader was supposed to be 500000 mpq or 120 bpm - Fix: Change type of info variable in SoftSynthesize into MidiDevice.Info - Fix: Fix instanceof check of p1 variable in ModelInstrumentComparator - Fix: Remove redundant constant variable in ModelByteBufferWaveTable Version 0.9 - Fix: JTreg SoftSynthesizer\ImplicitOpenClose.java did not test correctly. - Fix: SoftSynthesizer.isSoundbankSupported now only returns false if there is any instrument which is not supported. - Fix: SoftSynthesizer.remapInstrument did not work correctly. - Fix: SoftSynthesizer.loadInstrument SoftSynthesizer.loadInstruments SoftSynthesizer.loadAllInstruments SoftSynthesizer.unloadInstrument SoftSynthesizer.unloadInstruments SoftSynthesizer.unloadAllInstruments SoftSynthesizer.getAvailableInstruments SoftSynthesizer.getLoadedInstruments now throws IllegalArgumentException if instrument is not supported and false if instrument can't be loaded for some other reason. - Fix: SoftSynthesizer.getReceivers() SoftSynthesizer.getMicrosecondPosition() SoftSynthesizer.getVoiceStatus() SoftSynthesizer.getChannels() SoftMidiAudioFileReader.getAudioInputStream(Sequence seq) now no longer throw IllegalStateException. - Fix: SoftSynthesizer.getChannels() and SoftSynthesizer.getVoiceStatus() now no longer return internal array. - Fix: CPU spiking caused by denormal floats in SoftReverb. - Fix: Calling getReceiver before opening the synthesizer results in NullPointerException. JTreg test added: SoftSynthesizer/GetReceiver2 - Fix: Removed checksum check on BULK TUNING DUMP (NON-REAL-TIME) Because MIDI Tuning Spec was ambigous about how to calculate the checksum and different programs tested calculated different checksum. JTreg test SoftTuning/Load1 fixed. VERSION 0.8 - Fix: Active Sense Messages where incorrectly handled. JTreg test: SoftReceiver/Send_ActiveSense.java - Fix: SoftAudioPusher doesn't longer try to prevent blocking. - Added: SoftJitterCorrector added to fix jitter on long buffers. VERSION 0.7 - Fix: General MIDI mode, and voice_allocation_mode flag wasn't reseted on open/close cycle. - Fix: Added support for implicit open/close (as described in http://java.sun.com/javase/6/docs/api/javax/sound/midi/MidiDevice.html) (JTreg test also added) This done by implementing com.sun.media.sound.ReferenceCountingDevice interface. - Fix: SoftReceiver.close doesn't throw exception if closed. (now behaves like SoftSynthesizer.close) - Fix: Close variable wasn't accessed in Thread safe way in: SoftReceiver, SoftSynthesizer. - Fix: Hang in SoftSynthesizer.close. SoftAudioPusher must not be closed synchronized against control_mutex this may result in synchronized conflict between pusher and caller thread. - Fix: Bad handling of mono output in SoftVoice.processAudioLogic, this error was found running the new SoftSynthesizer/TestRender1 jtreg test. - Added: ModelDirector to support conditional layers/performers. - Added: ReleaseTrigger property to ModelPerformer. - Added: ModelAbstractOscillator to simplify creation custom oscillators. - Added: ModelChannelMixer to support for example non-voice oriented instruments. - Added: Support for more than 16 midi channels. - Added: JARSoundBankReader. - Change default latency from 400 to 200 mec. VERSION 0.6 - Added RIFFWriter(OutputStream) constructor. - Added save(OutputStream out) to DLSSoundbank and SF2Soundbank. - Renamed : isAddDefaultConnections to setDefaultConnectionsEnabled - Renamed : getAddDefaultConnections to isDefaultConnectionsEnabled - Created JTreg Unit Tests - Fixed error found in Unit Tests * AudioFloatConversion8U.toFloatArray, did not convert correctly * SoftSynthesizer.remapInstrument did not work The error was in ModelMappedInstrument * SoftSynthesizer.getMaxReceivers did not return -1 * SoftTuning.checksumOK calculated incorrect checksums. * RIFFReader.close didn't work * AudioFloatInputStream.getFrameLength returned incorrect value. * ModelByteBuffer.writeTo didn't work when ModelByteBuffer uses file pointer. * ModelIdentifier.equals, didn't compare the variable "instance". * SimpleSoundbank.removeResource did not remove resource. * RIFFWriter.close never closed underlying stream. VERSION 0.5 - New instruments in Emergency Soundbank: * Acoustic Grand Piano * Bright Acoustic Piano * Honky-tonk Piano * Guitar * Distortion Guitar * Trumpet * Trombone * Brass Section * Horn * Sax * Oboe * Bassoon * Clarinet * Flute * Timpani * Melodic Toms * Reverse Cymbal * Orch Hit - Faster Linear Interpolation with no float to int casting. Thanks to Bruno Schoedlbauer for pointing out that float to int casting can be costly. - LargeSoundBankReader removed, Loading soundbank in large mode using urls removed. - Soundbank aren't loaded into memory until loadInstrument/loadAllInstrument is called in SoftSynthesizer. This enable loading only single instrument from soundbank collection into memory. - New "large mode" property added to SoftSynthesizer. - "getInstrument" method in DLS/SF2/SimpleSoundbank now returns ordered list by program,bank,percussion. - Fix AccessControlException in "SoftSynthesizer.getDefaultSoundbank", which occurred when using SoftSynthesizer in Applets. VERSION 0.4 - Fixed ArrayOutOfBoundsException in SoftAbstractResmpler. - Fixed NullPointerException in SoundFont.save(File). Saving global zone for layers resulted in NullPointerException. - Fixed PATSoundbankReader.getInputStream so it doesn't throw InvalidFormatException. This prevented use of MidiSystem.getSoundBank(InputStream). - Fix: Delay wasn't implemented in AHDSR envelopes. - Loading soundbank in large mode supported using MidiSystem.getSoundBank(URL) Where url is on the form: file:/C:/soundbank.sf2?largemode=true - Reverb,Chorus,AGC can be turned on/off. - MIDI files can be opened as audio streams thru javax.sound.sampled.spi.AudioFileReader. - Optimizations, rendering is up to 50 percent faster. - Emergency SoundBank. VERSION 0.3 - SoftSynthesizer doesn't implement mixer interface anymore, instead the method "openStream" has been added. - New AudioSynthesizer interface. - SoftSynthesizer.getVoiceStatus() is now thread-safe. - SoftAudioFeeder renamed to SoftAudioPusher and made more generic. - Support for multi-receiver in SoftSynthesizer. - More cleanup in SoftSynthesizer. - Fixed loops in large soundbanks. - WaveFloatFileReader added to META-INF/services VERSION 0.2 - Large format support see: LargeSoundbankReader - Fix soundfont modulator mapping direction mapping was wrong - Fix handling of unsigned 16 bit streams - Improved GUS patch support - Add support for ping-pong/bi-directional and reverse loops VERSION 0.1 - Downloadable Sound Level 2.2. - SoundFont 2.04 (24 bit) - Gravis Ultrasound-compatible patches - Use Audio files (AIFF, AU and WAV) as SoundBanks - General Midi Level 2 - MIDI Tuning Standard - Drumkits can be used on any channel - Sinc interpolation with anti-aliasing