Hi Karl, This are my notes about the implementation.
1. SoftSynthesizer has a number of methods for customizing (get/set for Mixer, SourceDataLine, AudioFormat, Latency, Polyphony, ControlRate, Resampler). All the functionality is unavailable for standard use (to use it developers have to test if the synthesizer is instance of com.sun.media.SoftSynthesizer, and that is not good way). To make new functionality available we should add new interface to javax.sound.midi (Synthesizer2 or something like this) which will extends standard Synthesizer so developers could use new functionality via _standard_ interface. As a 1st step I suggest to create such interface in com.sun.media.sound package, and them move it to javax.sound.midi. So we need to determine which methods should be included in the extended interface. As for me the main method is setMixer(javax.sound.sampled.Mixer) (I'm not sure about SourceDataLine - other implementations can require several lines). Ability to specify preferred AudioFormat, Latency & Polyphony is a good feature, but most likely it should be optional. BTW do you think selecting from several resamplers is useful feature? mabby 1 resampler is enough? 2. I don't think it's a good idea to implement sound.sampled.Mixer by the synthesizer. It's not very intuitive way. If somebody wants to capture synthesizer outputs, he will implement simplest Mixer and set it as output mixer for the synthesizer. 3. Why the synth support only single receiver? (look at com.sun.media.sound.AbstractMidiDevice for example of multi-recevers implementation). 4. WaveFloatFileReader: it seems to me that the class is not used anywhere. 5. LargeSoundbankReader: what use cases you see for it? (as far as I see from the code, currently its feature is not used anywhere) Regards Alex Karl Helgason wrote: > Hi, > > I have updated the midi synthesizer: > http://sourceforge.net/project/showfiles.php?group_id=175084&package_id=246500 > > - Large format support. > - Fix SoundFont modulator mapping. > - Fix handling of unsigned 16 bit streams > - Improved GUS patch support > - Add support for ping-pong/bi-directional and reverse loops > > regards > Karl Helgason > _______________________________________________ > audio-engine-dev mailing list > [email protected] > http://mail.openjdk.java.net/mailman/listinfo/audio-engine-dev _______________________________________________ audio-engine-dev mailing list [email protected] http://mail.openjdk.java.net/mailman/listinfo/audio-engine-dev
