[Audio-engine-dev] Gervill 0.2

Alex Menkov Alexey.Menkov at Sun.COM
Thu Oct 11 17:04:24 PDT 2007


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
> audio-engine-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/audio-engine-dev



More information about the audio-engine-dev mailing list