[Audio-engine-dev] Gervill 0.2
Alexey.Menkov at Sun.COM
Thu Oct 11 17:04:24 PDT 2007
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,
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
As for me the main method is setMixer(javax.sound.sampled.Mixer) (I'm
not sure about SourceDataLine - other implementations can require
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
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)
Karl Helgason wrote:
> I have updated the midi synthesizer:
> - 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
> Karl Helgason
> audio-engine-dev mailing list
> audio-engine-dev at openjdk.java.net
More information about the audio-engine-dev