I hear that setVolume(0-100) is based on logarithms, of which I have yet to learn about. I will do some research, but for now, does anyone know how I could achieve 33% volume and 66% volume? If not, can anyone link a site explaining it?
public static float convertMinMax(int val, float min, float max)
{
float range = max - min;
float newVal = val / (100 / range);
return newVal + min;
}public synchronized void setVolume(int level)
{
this.masterVolume = level;
if (soundClip != null) {
if (soundClip.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
FloatControl volume = (FloatControl) soundClip.getControl(FloatControl.Type.MASTER_GAIN);
volume.setValue(SoundUtils.convertMinMax(level, volume.getMinimum(), volume.getMaximum()));
}
}
}