void cParameter::getDisplayValue(char* text) { switch(type) { case kParamOscOctave: floatToOctave(value,text);break; case kParamOscCoarse: floatToCoarse(value,text);break; case kParamOscFine: floatToFine(value,text);break; case kParamOscPan: floatToPan(value,text);break; case kParamOscLevel: floatToLevel(value,text);break; case kParamOscSync: getSyncDisplayValue(text);break; case kParamOscWaveform: floatToOscWaveform(value,text);break; case kParamEnvAttack: case kParamEnvDecay: case kParamEnvRelease: floatToEnvTime(value,text);break; case kParamEnvSustain: floatToLevel(value,text);break; case kParamEnvTime: floatToFine(value,text);break; case kParamLfoDelay: case kParamLfoFade: floatToEnvTime(value,text);break; default: floatToFloat(value,text);break; } }
void SorolletVSTi::setProgram(VstInt32 program) { if (program < 0 || program >= kNumPrograms) return; SorolletVSTiProgram *ap = &programs[program]; curProgram = program; fVolume1 = ap->fVolume1; mSorolletVoice->setVolume1(fVolume1); fOctave1 = ap->fOctave1; mSorolletVoice->setOctave1(floatToOctave(fOctave1)); fWave1 = ap->fWave1; mSorolletVoice->setWave1(floatToWave(fWave1)); fPhase1 = ap->fPhase1; mSorolletVoice->setPhase1(fPhase1); fVolume2 = ap->fVolume2; mSorolletVoice->setVolume2(fVolume2); fOctave2 = ap->fOctave2; mSorolletVoice->setOctave2(floatToOctave(fOctave2)); fWave2 = ap->fWave2; mSorolletVoice->setWave2(floatToWave(fWave2)); fPhase2 = ap->fPhase2; mSorolletVoice->setPhase2(fPhase2); fWaveMixType = ap->fWaveMixType; mSorolletVoice->setWaveMixType(floatToWaveMixType(fWaveMixType)); fNoiseAmount = ap->fNoiseAmount; mSorolletVoice->setNoiseAmount(fNoiseAmount); fNoiseMixType = ap->fNoiseMixType; mSorolletVoice->setNoiseMixType(floatToNoiseMixType(fNoiseMixType)); // Envelopes fAmpTimeScale = ap->fAmpTimeScale; mSorolletVoice->getAmpADSR()->setTimeScale(floatToEnvelopeScale(fAmpTimeScale)); fAmpAttack = ap->fAmpAttack; mSorolletVoice->getAmpADSR()->setAttack(fAmpAttack); fAmpDecay = ap->fAmpDecay; mSorolletVoice->getAmpADSR()->setDecay(fAmpDecay); fAmpSustain = ap->fAmpSustain; mSorolletVoice->getAmpADSR()->setSustainLevel(fAmpSustain); fAmpRelease = ap->fAmpRelease; mSorolletVoice->getAmpADSR()->setRelease(fAmpRelease); fAmpMinValue = ap->fAmpMinValue; mSorolletVoice->getAmpADSR()->setMinValue(fAmpMinValue); fAmpMaxValue = ap->fAmpMaxValue; mSorolletVoice->getAmpADSR()->setMaxValue(fAmpMaxValue); // ~~ pitch fPitchTimeScale = ap->fPitchTimeScale; mSorolletVoice->getPitchADSR()->setTimeScale(floatToEnvelopeScale(fPitchTimeScale)); fPitchAttack = ap->fPitchAttack; mSorolletVoice->getPitchADSR()->setAttack(fPitchAttack); fPitchDecay = ap->fPitchDecay; mSorolletVoice->getPitchADSR()->setDecay(fPitchDecay); fPitchSustain = ap->fPitchSustain; mSorolletVoice->getPitchADSR()->setSustainLevel(fPitchSustain); fPitchRelease = ap->fPitchRelease; mSorolletVoice->getPitchADSR()->setRelease(fPitchRelease); fPitchMinValue = ap->fPitchMinValue; mSorolletVoice->getPitchADSR()->setMinValue(fPitchMinValue); fPitchMaxValue = ap->fPitchMaxValue; mSorolletVoice->getPitchADSR()->setMaxValue(fPitchMaxValue); // ~~ filter fFilterType = ap->fFilterType; mSorolletVoice->setFilterType(floatToFilterType(fFilterType)); fFilterFrequency = ap->fFilterFrequency; mSorolletVoice->setFilterFrequency(fFilterFrequency); fFilterResonance = ap->fFilterResonance; mSorolletVoice->setFilterResonance(fFilterResonance); // ~~~ fSaturate = ap->fSaturate; mSorolletVoice->setSaturate(fSaturate); // ~~~ fEQActive = ap->fEQActive; mSorolletVoice->setEQActive(fEQActive > 0.5f); fEQLowFrequency = ap->fEQLowFrequency; mSorolletVoice->setEQLowFrequency(fEQLowFrequency); fEQHighFrequency = ap->fEQHighFrequency; mSorolletVoice->setEQHighFrequency(fEQHighFrequency); fEQLowGain = ap->fEQLowGain; mSorolletVoice->setEQLowGain(fEQLowGain); fEQMidGain = ap->fEQMidGain; mSorolletVoice->setEQMidGain(fEQMidGain); fEQHiGain = ap->fEQHiGain; mSorolletVoice->setEQHiGain(fEQHiGain); }
void SorolletVSTi::setParameter(VstInt32 index, float value) { int r; SorolletVSTiProgram *ap = &programs[curProgram]; switch (index) { case PARAM_VOLUME1: fVolume1 = ap->fVolume1 = value; mSorolletVoice->setVolume1(fVolume1); break; case PARAM_OCTAVE1: fOctave1 = ap->fOctave1 = value; mSorolletVoice->setOctave1(floatToOctave(fOctave1)); break; case PARAM_WAVE1: fWave1 = ap->fWave1 = value; mSorolletVoice->setWave1(floatToWave(fWave1)); break; case PARAM_PHASE1: fPhase1 = ap->fPhase1 = value; mSorolletVoice->setPhase1(fPhase1); break; case PARAM_VOLUME2: fVolume2 = ap->fVolume2 = value; mSorolletVoice->setVolume2(fVolume2); break; case PARAM_OCTAVE2: fOctave2 = ap->fOctave2 = value; mSorolletVoice->setOctave2(floatToOctave(fOctave2)); break; case PARAM_WAVE2: fWave2 = ap->fWave2 = value; mSorolletVoice->setWave2(floatToWave(fWave2)); break; case PARAM_PHASE2: fPhase2 = ap->fPhase2 = value; mSorolletVoice->setPhase2(fPhase2); break; case PARAM_WAVE_MIX_TYPE: fWaveMixType = ap->fWaveMixType = value; mSorolletVoice->setWaveMixType(floatToWaveMixType(fWaveMixType)); break; case PARAM_NOISE_AMOUNT: fNoiseAmount = ap->fNoiseAmount = value; mSorolletVoice->setNoiseAmount(fNoiseAmount); break; case PARAM_NOISE_MIX_TYPE: fNoiseMixType = ap->fNoiseMixType = value; mSorolletVoice->setNoiseMixType(floatToNoiseMixType(fNoiseMixType)); break; case PARAM_AMP_ATTACK: fAmpAttack = ap->fAmpAttack = value; mSorolletVoice->getAmpADSR()->setAttack(value); break; case PARAM_AMP_DECAY: fAmpDecay = ap->fAmpDecay = value; mSorolletVoice->getAmpADSR()->setDecay(value); break; case PARAM_AMP_SUSTAIN: fAmpSustain = ap->fAmpSustain = value; mSorolletVoice->getAmpADSR()->setSustainLevel(value); break; case PARAM_AMP_RELEASE: fAmpRelease = ap->fAmpRelease = value; mSorolletVoice->getAmpADSR()->setRelease(value); break; case PARAM_AMP_TIME_SCALE: fAmpTimeScale = ap->fAmpTimeScale = value; mSorolletVoice->getAmpADSR()->setTimeScale(floatToEnvelopeScale(value)); r = updateDisplay(); // b/c this affects the 4 previous display values break; case PARAM_AMP_MIN_VALUE: fAmpMinValue = ap->fAmpMinValue = value; mSorolletVoice->getAmpADSR()->setMinValue(value); break; case PARAM_AMP_MAX_VALUE: fAmpMaxValue = ap->fAmpMaxValue = value; mSorolletVoice->getAmpADSR()->setMaxValue(value); break; case PARAM_PITCH_ATTACK: fPitchAttack = ap->fPitchAttack = value; mSorolletVoice->getPitchADSR()->setAttack(value); break; case PARAM_PITCH_DECAY: fPitchDecay = ap->fPitchDecay = value; mSorolletVoice->getPitchADSR()->setDecay(value); break; case PARAM_PITCH_SUSTAIN: fPitchSustain = ap->fPitchSustain = value; mSorolletVoice->getPitchADSR()->setSustainLevel(value); break; case PARAM_PITCH_RELEASE: fPitchRelease = ap->fPitchRelease = value; mSorolletVoice->getPitchADSR()->setRelease(value); break; case PARAM_PITCH_TIME_SCALE: fPitchTimeScale = ap->fPitchTimeScale = value; mSorolletVoice->getPitchADSR()->setTimeScale(floatToEnvelopeScale(value)); updateDisplay(); // b/c this affects the 4 previous display values break; case PARAM_PITCH_MIN_VALUE: fPitchMinValue = ap->fPitchMinValue = value; mSorolletVoice->getPitchADSR()->setMinValue(value); break; case PARAM_PITCH_MAX_VALUE: fPitchMaxValue = ap->fPitchMaxValue = value; mSorolletVoice->getPitchADSR()->setMaxValue(value); break; case PARAM_FILTER_TYPE: fFilterType = ap->fFilterType = value; mSorolletVoice->setFilterType(floatToFilterType(fFilterType)); break; case PARAM_FILTER_FREQUENCY: fFilterFrequency = ap->fFilterFrequency = value; mSorolletVoice->setFilterFrequency(fFilterFrequency); break; case PARAM_FILTER_RESONANCE: fFilterResonance = ap->fFilterResonance = value; mSorolletVoice->setFilterResonance(fFilterResonance); break; case PARAM_SATURATE: fSaturate = ap->fSaturate = value; mSorolletVoice->setSaturate(fSaturate); break; case PARAM_EQ_ACTIVE: fEQActive = ap->fEQActive = value; mSorolletVoice->setEQActive(value > 0.5f); break; case PARAM_EQ_LOW_FREQUENCY: fEQLowFrequency = ap->fEQLowFrequency = value; mSorolletVoice->setEQLowFrequency(value); break; case PARAM_EQ_HIGH_FREQUENCY: fEQHighFrequency = ap->fEQHighFrequency = value; mSorolletVoice->setEQHighFrequency(value); break; case PARAM_EQ_LOW_GAIN: fEQLowGain = ap->fEQLowGain = value; mSorolletVoice->setEQLowGain(value); break; case PARAM_EQ_MID_GAIN: fEQMidGain = ap->fEQMidGain = value; mSorolletVoice->setEQMidGain(value); break; case PARAM_EQ_HI_GAIN: fEQHiGain = ap->fEQHiGain = value; mSorolletVoice->setEQHiGain(value); break; } }
void SorolletVSTi::getParameterDisplay(VstInt32 index, char* text) { text[0] = 0; switch (index) { case PARAM_VOLUME1: dB2string(fVolume1, text, kVstMaxParamStrLen); break; case PARAM_OCTAVE1: int2string(floatToOctave(fOctave1), text, kVstMaxParamStrLen); break; case PARAM_WAVE1: floatToWaveName(fWave1, text); break; case PARAM_PHASE1: float2string(fPhase1, text, kVstMaxParamStrLen); break; case PARAM_VOLUME2: dB2string(fVolume2, text, kVstMaxParamStrLen); break; case PARAM_OCTAVE2: int2string(floatToOctave(fOctave2), text, kVstMaxParamStrLen); break; case PARAM_WAVE2: floatToWaveName(fWave2, text); break; case PARAM_PHASE2: float2string(fPhase2, text, kVstMaxParamStrLen); break; case PARAM_WAVE_MIX_TYPE: floatToWaveMixTypeName(fWaveMixType, text); break; case PARAM_NOISE_AMOUNT: float2string(fNoiseAmount, text, kVstMaxParamStrLen); break; case PARAM_NOISE_MIX_TYPE: floatToNoiseMixTypeName(fNoiseMixType, text); break; case PARAM_AMP_ATTACK: formatTime(mSorolletVoice->getAmpADSR()->getAttackTime(), text); break; case PARAM_AMP_DECAY: formatTime(mSorolletVoice->getAmpADSR()->getDecayTime(), text); break; case PARAM_AMP_SUSTAIN: float2string(fAmpSustain, text, kVstMaxParamStrLen); break; case PARAM_AMP_RELEASE: formatTime(mSorolletVoice->getAmpADSR()->getReleaseTime(), text); break; case PARAM_AMP_TIME_SCALE: float2string(floatToEnvelopeScale(fAmpTimeScale), text, kVstMaxParamStrLen); break; case PARAM_AMP_MIN_VALUE: float2string(mSorolletVoice->getAmpADSR()->getDisplayMinValue(), text, kVstMaxParamStrLen); break; case PARAM_AMP_MAX_VALUE: float2string(mSorolletVoice->getAmpADSR()->getDisplayMaxValue(), text, kVstMaxParamStrLen); break; case PARAM_PITCH_ATTACK: formatTime(mSorolletVoice->getPitchADSR()->getAttackTime(), text); break; case PARAM_PITCH_DECAY: formatTime(mSorolletVoice->getPitchADSR()->getDecayTime(), text); break; case PARAM_PITCH_SUSTAIN: float2string(fPitchSustain, text, kVstMaxParamStrLen); break; case PARAM_PITCH_RELEASE: formatTime(mSorolletVoice->getPitchADSR()->getReleaseTime(), text); break; case PARAM_PITCH_TIME_SCALE: float2string(floatToEnvelopeScale(fPitchTimeScale), text, kVstMaxParamStrLen); break; case PARAM_PITCH_MIN_VALUE: float2string(mSorolletVoice->getPitchADSR()->getDisplayMinValue(), text, kVstMaxParamStrLen); break; case PARAM_PITCH_MAX_VALUE: float2string(mSorolletVoice->getPitchADSR()->getDisplayMaxValue(), text, kVstMaxParamStrLen); break; case PARAM_FILTER_TYPE: floatToFilterTypeName(fFilterType, text); break; case PARAM_FILTER_FREQUENCY: dB2string(mSorolletVoice->getFilterFrequencyDisplay(), text, kVstMaxParamStrLen); break; case PARAM_FILTER_RESONANCE: dB2string(mSorolletVoice->getFilterResonanceDisplay(), text, kVstMaxParamStrLen); break; case PARAM_SATURATE: float2string(fSaturate, text, kVstMaxParamStrLen); break; case PARAM_EQ_ACTIVE: if (fEQActive > 0.5f) { vst_strncpy(text, "on", kVstMaxParamStrLen); } else { vst_strncpy(text, "off", kVstMaxParamStrLen); } break; case PARAM_EQ_LOW_FREQUENCY: float2string(mSorolletVoice->getEQLowFrequencyDisplay(), text, kVstMaxParamStrLen); break; case PARAM_EQ_HIGH_FREQUENCY: float2string(mSorolletVoice->getEQHighFrequencyDisplay(), text, kVstMaxParamStrLen); break; case PARAM_EQ_LOW_GAIN: float2string(mSorolletVoice->getEQLowGainDisplay(), text, kVstMaxParamStrLen); break; case PARAM_EQ_MID_GAIN: float2string(mSorolletVoice->getEQMidGainDisplay(), text, kVstMaxParamStrLen); break; case PARAM_EQ_HI_GAIN: float2string(mSorolletVoice->getEQHiGainDisplay(), text, kVstMaxParamStrLen); break; } }