package com.teotigraphix.caustk.tone.components.padsynth; import com.teotigraphix.caustk.core.osc.PadSynthMessage; public class VolumeComponent extends com.teotigraphix.caustk.tone.components.VolumeComponent { //---------------------------------- // gain1 //---------------------------------- protected float gain1; public float getGain1() { return gain1; } float getGain1(boolean restore) { return PadSynthMessage.GAIN1.query(getEngine(), getToneIndex()); } public void setGain1(float value) { if (value == gain1) return; if (value < 0f || value > 1f) throw newRangeException("gain1", "0..1", value); gain1 = value; PadSynthMessage.GAIN1.send(getEngine(), getToneIndex(), gain1); } //---------------------------------- // gain2 //---------------------------------- protected float gain2; public float getGain2() { return gain2; } float getGain2(boolean restore) { return PadSynthMessage.GAIN2.query(getEngine(), getToneIndex()); } public void setGain2(float value) { if (value == gain2) return; if (value < 0f || value > 1f) throw newRangeException("gain2", "0..1", value); gain2 = value; PadSynthMessage.GAIN2.send(getEngine(), getToneIndex(), gain2); } //---------------------------------- // attack //---------------------------------- protected float attack; public float getAttack() { return attack; } float getAttack(boolean restore) { return PadSynthMessage.VOLUME_ATTACK.query(getEngine(), getToneIndex()); } public void setAttack(float value) { if (value == attack) return; if (value < 0f || value > 3f) throw newRangeException("volume_attack", "0..3", value); attack = value; PadSynthMessage.VOLUME_ATTACK.send(getEngine(), getToneIndex(), attack); } //---------------------------------- // decay //---------------------------------- protected float decay; public float getDecay() { return decay; } float getDecay(boolean restore) { return PadSynthMessage.VOLUME_DECAY.query(getEngine(), getToneIndex()); } public void setDecay(float value) { if (value == decay) return; if (value < 0f || value > 3f) throw newRangeException("volume_decay", "0..3", value); decay = value; PadSynthMessage.VOLUME_DECAY.send(getEngine(), getToneIndex(), decay); } //---------------------------------- // sustain //---------------------------------- protected float sustain; public float getSustain() { return sustain; } float getSustain(boolean restore) { return PadSynthMessage.VOLUME_SUSTAIN.query(getEngine(), getToneIndex()); } public void setSustain(float value) { if (value == sustain) return; if (value < 0f || value > 1f) throw newRangeException("volume_sustain", "0..1", value); sustain = value; PadSynthMessage.VOLUME_SUSTAIN.send(getEngine(), getToneIndex(), sustain); } //---------------------------------- // release //---------------------------------- protected float release; public float getRelease() { return release; } float getRelease(boolean restore) { return PadSynthMessage.VOLUME_RELEASE.query(getEngine(), getToneIndex()); } public void setRelease(float value) { if (value == release) return; if (value < 0f || value > 3f) throw newRangeException("volume_release", "0..3", value); release = value; PadSynthMessage.VOLUME_RELEASE.send(getEngine(), getToneIndex(), release); } //---------------------------------- // out //---------------------------------- protected float out; public float getOut() { return out; } protected float getOut(boolean restore) { return PadSynthMessage.VOLUME_OUT.query(getEngine(), getToneIndex()); } public void setOut(float value) { if (value == out) return; if (value < 0f || value > 2f) throw newRangeException("out", "0..2", value); out = value; PadSynthMessage.VOLUME_OUT.send(getEngine(), getToneIndex(), out); } public VolumeComponent() { } @Override public void restore() { setAttack(getAttack(true)); setDecay(getDecay(true)); setGain1(getGain1(true)); setGain2(getGain2(true)); setOut(getOut(true)); setRelease(getRelease(true)); setSustain(getSustain(true)); } }