SV: [Audio-engine-dev] Some small Gervill fixes

Mark Wielaard mark at
Sun May 4 15:30:30 PDT 2008

Hi Karl,

On Fri, 2008-05-02 at 16:25 +0000, Karl Helgason wrote:
> I am not currently filtering the control values to 0..127 because some
> user likes to be able to overdrive the values
> for example to set Volume to 255 which mean more than 100% volume (it
> was possible with the previous beatnik synthesizer).
> This could however result in unpredictable behaviors.
> If we want to prevent out of range values we should do that at the
> beginning in the controlChange method with if statement.

Aha, yes, I see. If the user is allowed to "boost" a control then maybe
we should just let them. Reading those "weird" values back in
getController() can lead to some strangeness though.

> But it is cool to get more code reviewers :) Sun is planning to add
> Gervill into OpenJDK 6 after JavaOne.

That would be very cool. I am playing with frinika now on top of
icedtea/openjdk with gervill integrated (frinika obviously works since
it already had an older gervill imported). I never knew midi could be so
much fun!

> I have added this fix into the CVS and these also:
>   - 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.
>   - 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.
> I especially proud of the new AudioFloatFormatConverter, it makes
> sample rate conversion available via a FormatConversionProvider.

O wow, very nice. I imported the new Gervill CVS version into IcedTea.



More information about the distro-pkg-dev mailing list