|
|
@@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
* Wobble Juice Plugin |
|
|
|
* Segment Juice Plugin |
|
|
|
* Copyright (C) 2014 Andre Sklenar <andre.sklenar@gmail.com>, www.juicelab.cz |
|
|
|
* |
|
|
|
* This program is free software; you can redistribute it and/or |
|
|
@@ -37,7 +37,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
// knobs |
|
|
|
Image knobImage(SegmentJuiceArtwork::knobData, SegmentJuiceArtwork::knobWidth, SegmentJuiceArtwork::knobHeight); |
|
|
|
|
|
|
|
// knobs2 |
|
|
|
// knobs2 |
|
|
|
Image knobImage2(SegmentJuiceArtwork::knob2Data, SegmentJuiceArtwork::knob2Width, SegmentJuiceArtwork::knob2Height); |
|
|
|
|
|
|
|
// knob Wave1 |
|
|
@@ -88,9 +88,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobWave6->setRotationAngle(270); |
|
|
|
fKnobWave6->setCallback(this); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// knob FM1 |
|
|
|
// knob FM1 |
|
|
|
fKnobFM1 = new ImageKnob(this, knobImage); |
|
|
|
fKnobFM1->setPos(510, 79); |
|
|
|
fKnobFM1->setRange(0.0f, 1.0f); |
|
|
@@ -138,9 +136,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobFM6->setRotationAngle(270); |
|
|
|
fKnobFM6->setCallback(this); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// knob Pan1 |
|
|
|
// knob Pan1 |
|
|
|
fKnobPan1 = new ImageKnob(this, knobImage); |
|
|
|
fKnobPan1->setPos(574, 79); |
|
|
|
fKnobPan1->setRange(-1.0f, 1.0f); |
|
|
@@ -188,10 +184,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobPan6->setRotationAngle(270); |
|
|
|
fKnobPan6->setCallback(this); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// knob Amp1 |
|
|
|
// knob Amp1 |
|
|
|
fKnobAmp1 = new ImageKnob(this, knobImage); |
|
|
|
fKnobAmp1->setPos(638, 79); |
|
|
|
fKnobAmp1->setRange(0.0f, 1.0f); |
|
|
@@ -239,9 +232,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobAmp6->setRotationAngle(270); |
|
|
|
fKnobAmp6->setCallback(this); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// knob Attack |
|
|
|
// knob Attack |
|
|
|
fKnobAttack = new ImageKnob(this, knobImage2); |
|
|
|
fKnobAttack->setPos(34, 248); |
|
|
|
fKnobAttack->setRange(0.0f, 1.0f); |
|
|
@@ -249,7 +240,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobAttack->setRotationAngle(270); |
|
|
|
fKnobAttack->setCallback(this); |
|
|
|
|
|
|
|
// knob Decay |
|
|
|
// knob Decay |
|
|
|
fKnobDecay = new ImageKnob(this, knobImage2); |
|
|
|
fKnobDecay->setPos(132, 248); |
|
|
|
fKnobDecay->setRange(0.0f, 1.0f); |
|
|
@@ -257,15 +248,15 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobDecay->setRotationAngle(270); |
|
|
|
fKnobDecay->setCallback(this); |
|
|
|
|
|
|
|
// knob Sustain |
|
|
|
// knob Sustain |
|
|
|
fKnobSustain = new ImageKnob(this, knobImage2); |
|
|
|
fKnobSustain->setPos(232, 248); |
|
|
|
fKnobSustain->setRange(0.0f, 1.0f); |
|
|
|
fKnobSustain->setValue(1.0f); |
|
|
|
fKnobSustain->setRotationAngle(270); |
|
|
|
fKnobSustain->setCallback(this); |
|
|
|
|
|
|
|
// knob Release |
|
|
|
|
|
|
|
// knob Release |
|
|
|
fKnobRelease = new ImageKnob(this, knobImage2); |
|
|
|
fKnobRelease->setPos(330, 248); |
|
|
|
fKnobRelease->setRange(0.0f, 1.0f); |
|
|
@@ -273,7 +264,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobRelease->setRotationAngle(270); |
|
|
|
fKnobRelease->setCallback(this); |
|
|
|
|
|
|
|
// knob Stereo |
|
|
|
// knob Stereo |
|
|
|
fKnobStereo = new ImageKnob(this, knobImage2); |
|
|
|
fKnobStereo->setPos(34, 339); |
|
|
|
fKnobStereo->setRange(-1.0f, 1.0f); |
|
|
@@ -281,7 +272,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobStereo->setRotationAngle(270); |
|
|
|
fKnobStereo->setCallback(this); |
|
|
|
|
|
|
|
// knob Tune |
|
|
|
// knob Tune |
|
|
|
fKnobTune = new ImageKnob(this, knobImage2); |
|
|
|
fKnobTune->setPos(132, 339); |
|
|
|
fKnobTune->setRange(-1.0f, 1.0f); |
|
|
@@ -289,7 +280,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobTune->setRotationAngle(270); |
|
|
|
fKnobTune->setCallback(this); |
|
|
|
|
|
|
|
// knob Volume |
|
|
|
// knob Volume |
|
|
|
fKnobVolume = new ImageKnob(this, knobImage2); |
|
|
|
fKnobVolume->setPos(232, 339); |
|
|
|
fKnobVolume->setRange(0.0f, 1.0f); |
|
|
@@ -297,7 +288,7 @@ SegmentJuiceUI::SegmentJuiceUI() |
|
|
|
fKnobVolume->setRotationAngle(270); |
|
|
|
fKnobVolume->setCallback(this); |
|
|
|
|
|
|
|
// knob Glide |
|
|
|
// knob Glide |
|
|
|
fKnobGlide = new ImageKnob(this, knobImage2); |
|
|
|
fKnobGlide->setPos(330, 339); |
|
|
|
fKnobGlide->setRange(0.0f, 1.0f); |
|
|
@@ -322,91 +313,90 @@ SegmentJuiceUI::~SegmentJuiceUI() |
|
|
|
delete fKnobWave5; |
|
|
|
delete fKnobWave6; |
|
|
|
|
|
|
|
delete fKnobFM1; |
|
|
|
delete fKnobFM1; |
|
|
|
delete fKnobFM2; |
|
|
|
delete fKnobFM3; |
|
|
|
delete fKnobFM4; |
|
|
|
delete fKnobFM5; |
|
|
|
delete fKnobFM6; |
|
|
|
|
|
|
|
delete fKnobPan1; |
|
|
|
delete fKnobPan1; |
|
|
|
delete fKnobPan2; |
|
|
|
delete fKnobPan3; |
|
|
|
delete fKnobPan4; |
|
|
|
delete fKnobPan5; |
|
|
|
delete fKnobPan6; |
|
|
|
|
|
|
|
delete fKnobAmp1; |
|
|
|
delete fKnobAmp1; |
|
|
|
delete fKnobAmp2; |
|
|
|
delete fKnobAmp3; |
|
|
|
delete fKnobAmp4; |
|
|
|
delete fKnobAmp5; |
|
|
|
delete fKnobAmp6; |
|
|
|
|
|
|
|
delete fKnobAttack; |
|
|
|
delete fKnobDecay; |
|
|
|
delete fKnobSustain; |
|
|
|
delete fKnobRelease; |
|
|
|
delete fKnobStereo; |
|
|
|
delete fKnobTune; |
|
|
|
delete fKnobVolume; |
|
|
|
delete fKnobGlide; |
|
|
|
delete fKnobAttack; |
|
|
|
delete fKnobDecay; |
|
|
|
delete fKnobSustain; |
|
|
|
delete fKnobRelease; |
|
|
|
delete fKnobStereo; |
|
|
|
delete fKnobTune; |
|
|
|
delete fKnobVolume; |
|
|
|
delete fKnobGlide; |
|
|
|
delete fButtonAbout; |
|
|
|
} |
|
|
|
|
|
|
|
void SegmentJuiceUI::updateSynth() { |
|
|
|
synthL.setWave(0, fKnobWave1->getValue()); |
|
|
|
synthL.setWave(1, fKnobWave2->getValue()); |
|
|
|
synthL.setWave(2, fKnobWave3->getValue()); |
|
|
|
synthL.setWave(3, fKnobWave4->getValue()); |
|
|
|
synthL.setWave(4, fKnobWave5->getValue()); |
|
|
|
synthL.setWave(5, fKnobWave6->getValue()); |
|
|
|
synthL.setFM(0, fKnobFM1->getValue()); |
|
|
|
synthL.setFM(1, fKnobFM2->getValue()); |
|
|
|
synthL.setFM(2, fKnobFM3->getValue()); |
|
|
|
synthL.setFM(3, fKnobFM4->getValue()); |
|
|
|
synthL.setFM(4, fKnobFM5->getValue()); |
|
|
|
synthL.setFM(5, fKnobFM6->getValue()); |
|
|
|
synthL.setPan(0, -fKnobPan1->getValue()); |
|
|
|
synthL.setPan(1, -fKnobPan2->getValue()); |
|
|
|
synthL.setPan(2, -fKnobPan3->getValue()); |
|
|
|
synthL.setPan(3, -fKnobPan4->getValue()); |
|
|
|
synthL.setPan(4, -fKnobPan5->getValue()); |
|
|
|
synthL.setPan(5, -fKnobPan6->getValue()); |
|
|
|
synthL.setAmp(0, fKnobAmp1->getValue()); |
|
|
|
synthL.setAmp(1, fKnobAmp2->getValue()); |
|
|
|
synthL.setAmp(2, fKnobAmp3->getValue()); |
|
|
|
synthL.setAmp(3, fKnobAmp4->getValue()); |
|
|
|
synthL.setAmp(4, fKnobAmp5->getValue()); |
|
|
|
synthL.setAmp(5, fKnobAmp6->getValue()); |
|
|
|
synthL.setMAmp(fKnobVolume->getValue()); |
|
|
|
|
|
|
|
synthR.setWave(0, fKnobWave1->getValue()); |
|
|
|
synthR.setWave(1, fKnobWave2->getValue()); |
|
|
|
synthR.setWave(2, fKnobWave3->getValue()); |
|
|
|
synthR.setWave(3, fKnobWave4->getValue()); |
|
|
|
synthR.setWave(4, fKnobWave5->getValue()); |
|
|
|
synthR.setWave(5, fKnobWave6->getValue()); |
|
|
|
synthR.setFM(0, fKnobFM1->getValue()); |
|
|
|
synthR.setFM(1, fKnobFM2->getValue()); |
|
|
|
synthR.setFM(2, fKnobFM3->getValue()); |
|
|
|
synthR.setFM(3, fKnobFM4->getValue()); |
|
|
|
synthR.setFM(4, fKnobFM5->getValue()); |
|
|
|
synthR.setFM(5, fKnobFM6->getValue()); |
|
|
|
synthR.setPan(0, fKnobPan1->getValue()); |
|
|
|
synthR.setPan(1, fKnobPan2->getValue()); |
|
|
|
synthR.setPan(2, fKnobPan3->getValue()); |
|
|
|
synthR.setPan(3, fKnobPan4->getValue()); |
|
|
|
synthR.setPan(4, fKnobPan5->getValue()); |
|
|
|
synthR.setPan(5, fKnobPan6->getValue()); |
|
|
|
synthR.setAmp(0, fKnobAmp1->getValue()); |
|
|
|
synthR.setAmp(1, fKnobAmp2->getValue()); |
|
|
|
synthR.setAmp(2, fKnobAmp3->getValue()); |
|
|
|
synthR.setAmp(3, fKnobAmp4->getValue()); |
|
|
|
synthR.setAmp(4, fKnobAmp5->getValue()); |
|
|
|
synthR.setAmp(5, fKnobAmp6->getValue()); |
|
|
|
synthR.setMAmp(fKnobVolume->getValue()); |
|
|
|
|
|
|
|
synthL.setWave(0, fKnobWave1->getValue()); |
|
|
|
synthL.setWave(1, fKnobWave2->getValue()); |
|
|
|
synthL.setWave(2, fKnobWave3->getValue()); |
|
|
|
synthL.setWave(3, fKnobWave4->getValue()); |
|
|
|
synthL.setWave(4, fKnobWave5->getValue()); |
|
|
|
synthL.setWave(5, fKnobWave6->getValue()); |
|
|
|
synthL.setFM(0, fKnobFM1->getValue()); |
|
|
|
synthL.setFM(1, fKnobFM2->getValue()); |
|
|
|
synthL.setFM(2, fKnobFM3->getValue()); |
|
|
|
synthL.setFM(3, fKnobFM4->getValue()); |
|
|
|
synthL.setFM(4, fKnobFM5->getValue()); |
|
|
|
synthL.setFM(5, fKnobFM6->getValue()); |
|
|
|
synthL.setPan(0, -fKnobPan1->getValue()); |
|
|
|
synthL.setPan(1, -fKnobPan2->getValue()); |
|
|
|
synthL.setPan(2, -fKnobPan3->getValue()); |
|
|
|
synthL.setPan(3, -fKnobPan4->getValue()); |
|
|
|
synthL.setPan(4, -fKnobPan5->getValue()); |
|
|
|
synthL.setPan(5, -fKnobPan6->getValue()); |
|
|
|
synthL.setAmp(0, fKnobAmp1->getValue()); |
|
|
|
synthL.setAmp(1, fKnobAmp2->getValue()); |
|
|
|
synthL.setAmp(2, fKnobAmp3->getValue()); |
|
|
|
synthL.setAmp(3, fKnobAmp4->getValue()); |
|
|
|
synthL.setAmp(4, fKnobAmp5->getValue()); |
|
|
|
synthL.setAmp(5, fKnobAmp6->getValue()); |
|
|
|
synthL.setMAmp(fKnobVolume->getValue()); |
|
|
|
|
|
|
|
synthR.setWave(0, fKnobWave1->getValue()); |
|
|
|
synthR.setWave(1, fKnobWave2->getValue()); |
|
|
|
synthR.setWave(2, fKnobWave3->getValue()); |
|
|
|
synthR.setWave(3, fKnobWave4->getValue()); |
|
|
|
synthR.setWave(4, fKnobWave5->getValue()); |
|
|
|
synthR.setWave(5, fKnobWave6->getValue()); |
|
|
|
synthR.setFM(0, fKnobFM1->getValue()); |
|
|
|
synthR.setFM(1, fKnobFM2->getValue()); |
|
|
|
synthR.setFM(2, fKnobFM3->getValue()); |
|
|
|
synthR.setFM(3, fKnobFM4->getValue()); |
|
|
|
synthR.setFM(4, fKnobFM5->getValue()); |
|
|
|
synthR.setFM(5, fKnobFM6->getValue()); |
|
|
|
synthR.setPan(0, fKnobPan1->getValue()); |
|
|
|
synthR.setPan(1, fKnobPan2->getValue()); |
|
|
|
synthR.setPan(2, fKnobPan3->getValue()); |
|
|
|
synthR.setPan(3, fKnobPan4->getValue()); |
|
|
|
synthR.setPan(4, fKnobPan5->getValue()); |
|
|
|
synthR.setPan(5, fKnobPan6->getValue()); |
|
|
|
synthR.setAmp(0, fKnobAmp1->getValue()); |
|
|
|
synthR.setAmp(1, fKnobAmp2->getValue()); |
|
|
|
synthR.setAmp(2, fKnobAmp3->getValue()); |
|
|
|
synthR.setAmp(3, fKnobAmp4->getValue()); |
|
|
|
synthR.setAmp(4, fKnobAmp5->getValue()); |
|
|
|
synthR.setAmp(5, fKnobAmp6->getValue()); |
|
|
|
synthR.setMAmp(fKnobVolume->getValue()); |
|
|
|
} |
|
|
|
|
|
|
|
// ----------------------------------------------------------------------- |
|
|
@@ -434,7 +424,7 @@ void SegmentJuiceUI::d_parameterChanged(uint32_t index, float value) |
|
|
|
case SegmentJuicePlugin::paramWave6: |
|
|
|
fKnobWave6->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramFM1: |
|
|
|
case SegmentJuicePlugin::paramFM1: |
|
|
|
fKnobFM1->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramFM2: |
|
|
@@ -452,7 +442,7 @@ void SegmentJuiceUI::d_parameterChanged(uint32_t index, float value) |
|
|
|
case SegmentJuicePlugin::paramFM6: |
|
|
|
fKnobFM6->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramPan1: |
|
|
|
case SegmentJuicePlugin::paramPan1: |
|
|
|
fKnobPan1->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramPan2: |
|
|
@@ -470,7 +460,7 @@ void SegmentJuiceUI::d_parameterChanged(uint32_t index, float value) |
|
|
|
case SegmentJuicePlugin::paramPan6: |
|
|
|
fKnobPan6->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramAmp1: |
|
|
|
case SegmentJuicePlugin::paramAmp1: |
|
|
|
fKnobAmp1->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramAmp2: |
|
|
@@ -488,33 +478,33 @@ void SegmentJuiceUI::d_parameterChanged(uint32_t index, float value) |
|
|
|
case SegmentJuicePlugin::paramAmp6: |
|
|
|
fKnobAmp6->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramAttack: |
|
|
|
case SegmentJuicePlugin::paramAttack: |
|
|
|
fKnobAttack->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramDecay: |
|
|
|
case SegmentJuicePlugin::paramDecay: |
|
|
|
fKnobDecay->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramSustain: |
|
|
|
case SegmentJuicePlugin::paramSustain: |
|
|
|
fKnobSustain->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramRelease: |
|
|
|
case SegmentJuicePlugin::paramRelease: |
|
|
|
fKnobRelease->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramStereo: |
|
|
|
case SegmentJuicePlugin::paramStereo: |
|
|
|
fKnobStereo->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramTune: |
|
|
|
case SegmentJuicePlugin::paramTune: |
|
|
|
fKnobTune->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramVolume: |
|
|
|
case SegmentJuicePlugin::paramVolume: |
|
|
|
fKnobVolume->setValue(value); |
|
|
|
break; |
|
|
|
case SegmentJuicePlugin::paramGlide: |
|
|
|
case SegmentJuicePlugin::paramGlide: |
|
|
|
fKnobGlide->setValue(value); |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
updateSynth(); |
|
|
|
updateSynth(); |
|
|
|
} |
|
|
|
|
|
|
|
void SegmentJuiceUI::d_programChanged(uint32_t index) |
|
|
@@ -530,68 +520,68 @@ void SegmentJuiceUI::d_programChanged(uint32_t index) |
|
|
|
fKnobWave5->setValue(3.0f); |
|
|
|
fKnobWave6->setValue(3.0f); |
|
|
|
|
|
|
|
fKnobFM1->setValue(0.5f); |
|
|
|
fKnobFM1->setValue(0.5f); |
|
|
|
fKnobFM2->setValue(0.5f); |
|
|
|
fKnobFM3->setValue(0.5f); |
|
|
|
fKnobFM6->setValue(0.5f); |
|
|
|
fKnobFM5->setValue(0.5f); |
|
|
|
fKnobFM6->setValue(0.5f); |
|
|
|
|
|
|
|
fKnobPan1->setValue(0.0f); |
|
|
|
fKnobPan1->setValue(0.0f); |
|
|
|
fKnobPan2->setValue(0.0f); |
|
|
|
fKnobPan3->setValue(0.0f); |
|
|
|
fKnobPan6->setValue(0.0f); |
|
|
|
fKnobPan5->setValue(0.0f); |
|
|
|
fKnobPan6->setValue(0.0f); |
|
|
|
|
|
|
|
fKnobAmp1->setValue(0.5f); |
|
|
|
fKnobAmp1->setValue(0.5f); |
|
|
|
fKnobAmp2->setValue(0.5f); |
|
|
|
fKnobAmp3->setValue(0.5f); |
|
|
|
fKnobAmp6->setValue(0.5f); |
|
|
|
fKnobAmp5->setValue(0.5f); |
|
|
|
fKnobAmp6->setValue(0.5f); |
|
|
|
|
|
|
|
fKnobAttack->setValue(0.0f); |
|
|
|
fKnobDecay->setValue(0.0f); |
|
|
|
fKnobSustain->setValue(1.0f); |
|
|
|
fKnobRelease->setValue(0.0f); |
|
|
|
|
|
|
|
fKnobStereo->setValue(0.0f); |
|
|
|
fKnobTune->setValue(0.0f); |
|
|
|
fKnobVolume->setValue(0.5f); |
|
|
|
fKnobGlide->setValue(0.0f); |
|
|
|
|
|
|
|
for (int i=0; i<6; i++) { |
|
|
|
synthL.setFM(i, 0.5f); |
|
|
|
synthR.setFM(i, 0.5f); |
|
|
|
|
|
|
|
synthL.setPan(i, 0.0f); |
|
|
|
synthR.setPan(i, 0.0f); |
|
|
|
|
|
|
|
synthL.setAmp(i, 0.5f); |
|
|
|
synthR.setAmp(i, 0.5f); |
|
|
|
} |
|
|
|
|
|
|
|
synthL.setSampleRate(d_getSampleRate()); |
|
|
|
synthR.setSampleRate(d_getSampleRate()); |
|
|
|
|
|
|
|
synthL.setMAmp(0.5f); |
|
|
|
synthR.setMAmp(0.5f); |
|
|
|
|
|
|
|
synthL.play(69); |
|
|
|
synthR.play(69); |
|
|
|
synthL.setAttack(0); |
|
|
|
synthR.setAttack(0); |
|
|
|
synthL.setDecay(0); |
|
|
|
synthR.setDecay(0); |
|
|
|
synthL.setSustain(1); |
|
|
|
synthR.setSustain(1); |
|
|
|
synthL.setRelease(0); |
|
|
|
synthR.setRelease(0); |
|
|
|
synthL.setGlide(0); |
|
|
|
synthR.setGlide(0); |
|
|
|
synthL.setTune(0); |
|
|
|
synthR.setTune(0); |
|
|
|
|
|
|
|
fKnobAttack->setValue(0.0f); |
|
|
|
fKnobDecay->setValue(0.0f); |
|
|
|
fKnobSustain->setValue(1.0f); |
|
|
|
fKnobRelease->setValue(0.0f); |
|
|
|
|
|
|
|
fKnobStereo->setValue(0.0f); |
|
|
|
fKnobTune->setValue(0.0f); |
|
|
|
fKnobVolume->setValue(0.5f); |
|
|
|
fKnobGlide->setValue(0.0f); |
|
|
|
|
|
|
|
for (int i=0; i<6; i++) { |
|
|
|
synthL.setFM(i, 0.5f); |
|
|
|
synthR.setFM(i, 0.5f); |
|
|
|
|
|
|
|
synthL.setPan(i, 0.0f); |
|
|
|
synthR.setPan(i, 0.0f); |
|
|
|
|
|
|
|
synthL.setAmp(i, 0.5f); |
|
|
|
synthR.setAmp(i, 0.5f); |
|
|
|
} |
|
|
|
|
|
|
|
synthL.setSampleRate(d_getSampleRate()); |
|
|
|
synthR.setSampleRate(d_getSampleRate()); |
|
|
|
|
|
|
|
synthL.setMAmp(0.5f); |
|
|
|
synthR.setMAmp(0.5f); |
|
|
|
|
|
|
|
synthL.play(69); |
|
|
|
synthR.play(69); |
|
|
|
synthL.setAttack(0); |
|
|
|
synthR.setAttack(0); |
|
|
|
synthL.setDecay(0); |
|
|
|
synthR.setDecay(0); |
|
|
|
synthL.setSustain(1); |
|
|
|
synthR.setSustain(1); |
|
|
|
synthL.setRelease(0); |
|
|
|
synthR.setRelease(0); |
|
|
|
synthL.setGlide(0); |
|
|
|
synthR.setGlide(0); |
|
|
|
synthL.setTune(0); |
|
|
|
synthR.setTune(0); |
|
|
|
} |
|
|
|
|
|
|
|
// ----------------------------------------------------------------------- |
|
|
@@ -619,7 +609,7 @@ void SegmentJuiceUI::imageKnobDragStarted(ImageKnob* knob) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramWave5, true); |
|
|
|
else if (knob == fKnobWave6) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramWave6, true); |
|
|
|
else if (knob == fKnobFM1) |
|
|
|
else if (knob == fKnobFM1) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramFM1, true); |
|
|
|
else if (knob == fKnobFM2) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramFM2, true); |
|
|
@@ -631,7 +621,7 @@ void SegmentJuiceUI::imageKnobDragStarted(ImageKnob* knob) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramFM5, true); |
|
|
|
else if (knob == fKnobFM6) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramFM6, true); |
|
|
|
else if (knob == fKnobPan1) |
|
|
|
else if (knob == fKnobPan1) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramPan1, true); |
|
|
|
else if (knob == fKnobPan2) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramPan2, true); |
|
|
@@ -643,7 +633,7 @@ void SegmentJuiceUI::imageKnobDragStarted(ImageKnob* knob) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramPan5, true); |
|
|
|
else if (knob == fKnobPan6) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramPan6, true); |
|
|
|
else if (knob == fKnobAmp1) |
|
|
|
else if (knob == fKnobAmp1) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAmp1, true); |
|
|
|
else if (knob == fKnobAmp2) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAmp2, true); |
|
|
@@ -655,21 +645,21 @@ void SegmentJuiceUI::imageKnobDragStarted(ImageKnob* knob) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAmp5, true); |
|
|
|
else if (knob == fKnobAmp6) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAmp6, true); |
|
|
|
else if (knob == fKnobAttack) |
|
|
|
else if (knob == fKnobAttack) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAttack, true); |
|
|
|
else if (knob == fKnobDecay) |
|
|
|
else if (knob == fKnobDecay) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramDecay, true); |
|
|
|
else if (knob == fKnobSustain) |
|
|
|
else if (knob == fKnobSustain) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramSustain, true); |
|
|
|
else if (knob == fKnobRelease) |
|
|
|
else if (knob == fKnobRelease) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramRelease, true); |
|
|
|
else if (knob == fKnobStereo) |
|
|
|
else if (knob == fKnobStereo) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramStereo, true); |
|
|
|
else if (knob == fKnobTune) |
|
|
|
else if (knob == fKnobTune) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramTune, true); |
|
|
|
else if (knob == fKnobVolume) |
|
|
|
else if (knob == fKnobVolume) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramVolume, true); |
|
|
|
else if (knob == fKnobGlide) |
|
|
|
else if (knob == fKnobGlide) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramGlide, true); |
|
|
|
} |
|
|
|
|
|
|
@@ -687,7 +677,7 @@ void SegmentJuiceUI::imageKnobDragFinished(ImageKnob* knob) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramWave5, false); |
|
|
|
else if (knob == fKnobWave6) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramWave6, false); |
|
|
|
else if (knob == fKnobFM1) |
|
|
|
else if (knob == fKnobFM1) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramFM1, false); |
|
|
|
else if (knob == fKnobFM2) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramFM2, false); |
|
|
@@ -699,7 +689,7 @@ void SegmentJuiceUI::imageKnobDragFinished(ImageKnob* knob) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramFM5, false); |
|
|
|
else if (knob == fKnobFM6) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramFM6, false); |
|
|
|
else if (knob == fKnobPan1) |
|
|
|
else if (knob == fKnobPan1) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramPan1, false); |
|
|
|
else if (knob == fKnobPan2) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramPan2, false); |
|
|
@@ -711,7 +701,7 @@ void SegmentJuiceUI::imageKnobDragFinished(ImageKnob* knob) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramPan5, false); |
|
|
|
else if (knob == fKnobPan6) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramPan6, false); |
|
|
|
else if (knob == fKnobAmp1) |
|
|
|
else if (knob == fKnobAmp1) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAmp1, false); |
|
|
|
else if (knob == fKnobAmp2) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAmp2, false); |
|
|
@@ -723,21 +713,21 @@ void SegmentJuiceUI::imageKnobDragFinished(ImageKnob* knob) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAmp5, false); |
|
|
|
else if (knob == fKnobAmp6) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAmp6, false); |
|
|
|
else if (knob == fKnobAttack) |
|
|
|
else if (knob == fKnobAttack) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramAttack, false); |
|
|
|
else if (knob == fKnobDecay) |
|
|
|
else if (knob == fKnobDecay) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramDecay, false); |
|
|
|
else if (knob == fKnobSustain) |
|
|
|
else if (knob == fKnobSustain) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramSustain, false); |
|
|
|
else if (knob == fKnobRelease) |
|
|
|
else if (knob == fKnobRelease) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramRelease, false); |
|
|
|
else if (knob == fKnobStereo) |
|
|
|
else if (knob == fKnobStereo) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramStereo, false); |
|
|
|
else if (knob == fKnobTune) |
|
|
|
else if (knob == fKnobTune) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramTune, false); |
|
|
|
else if (knob == fKnobVolume) |
|
|
|
else if (knob == fKnobVolume) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramVolume, false); |
|
|
|
else if (knob == fKnobGlide) |
|
|
|
else if (knob == fKnobGlide) |
|
|
|
d_editParameter(SegmentJuicePlugin::paramGlide, false); |
|
|
|
} |
|
|
|
|
|
|
@@ -755,7 +745,7 @@ void SegmentJuiceUI::imageKnobValueChanged(ImageKnob* knob, float value) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramWave5, value); |
|
|
|
else if (knob == fKnobWave6) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramWave6, value); |
|
|
|
else if (knob == fKnobFM1) |
|
|
|
else if (knob == fKnobFM1) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramFM1, value); |
|
|
|
else if (knob == fKnobFM2) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramFM2, value); |
|
|
@@ -767,7 +757,7 @@ void SegmentJuiceUI::imageKnobValueChanged(ImageKnob* knob, float value) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramFM5, value); |
|
|
|
else if (knob == fKnobFM6) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramFM6, value); |
|
|
|
else if (knob == fKnobPan1) |
|
|
|
else if (knob == fKnobPan1) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramPan1, value); |
|
|
|
else if (knob == fKnobPan2) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramPan2, value); |
|
|
@@ -779,7 +769,7 @@ void SegmentJuiceUI::imageKnobValueChanged(ImageKnob* knob, float value) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramPan5, value); |
|
|
|
else if (knob == fKnobPan6) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramPan6, value); |
|
|
|
else if (knob == fKnobAmp1) |
|
|
|
else if (knob == fKnobAmp1) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramAmp1, value); |
|
|
|
else if (knob == fKnobAmp2) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramAmp2, value); |
|
|
@@ -791,24 +781,24 @@ void SegmentJuiceUI::imageKnobValueChanged(ImageKnob* knob, float value) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramAmp5, value); |
|
|
|
else if (knob == fKnobAmp6) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramAmp6, value); |
|
|
|
else if (knob == fKnobAttack) |
|
|
|
else if (knob == fKnobAttack) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramAttack, value); |
|
|
|
else if (knob == fKnobDecay) |
|
|
|
else if (knob == fKnobDecay) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramDecay, value); |
|
|
|
else if (knob == fKnobSustain) |
|
|
|
else if (knob == fKnobSustain) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramSustain, value); |
|
|
|
else if (knob == fKnobRelease) |
|
|
|
else if (knob == fKnobRelease) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramRelease, value); |
|
|
|
else if (knob == fKnobStereo) |
|
|
|
else if (knob == fKnobStereo) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramStereo, value); |
|
|
|
else if (knob == fKnobTune) |
|
|
|
else if (knob == fKnobTune) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramTune, value); |
|
|
|
else if (knob == fKnobVolume) |
|
|
|
else if (knob == fKnobVolume) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramVolume, value); |
|
|
|
else if (knob == fKnobGlide) |
|
|
|
else if (knob == fKnobGlide) |
|
|
|
d_setParameterValue(SegmentJuicePlugin::paramGlide, value); |
|
|
|
|
|
|
|
updateSynth(); |
|
|
|
updateSynth(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
@@ -816,47 +806,45 @@ void SegmentJuiceUI::onDisplay() |
|
|
|
{ |
|
|
|
fImgBackground.draw(); |
|
|
|
|
|
|
|
int cX = 23+4; |
|
|
|
int cY = 50; |
|
|
|
int cW = 388-cX-3; |
|
|
|
int cH = 216-cY; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//draw waveform |
|
|
|
synthL.play(71); |
|
|
|
synthR.play(71); |
|
|
|
//glEnable(GL_BLEND); |
|
|
|
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
|
|
|
//glEnable( GL_LINE_SMOOTH ); |
|
|
|
//glHint( GL_LINE_SMOOTH_HINT, GL_NICEST ); |
|
|
|
glLineWidth(1.0f); |
|
|
|
//draw #left waveform |
|
|
|
glColor4f(0.0f, 1.0f, 0.0f, 0.5f); |
|
|
|
glBegin(GL_LINE_STRIP); |
|
|
|
for (int i = 0; i<cW; i++) { |
|
|
|
float out = synthL.run()*cH/2+cH/2+cY; |
|
|
|
glVertex2i(i+cX, out); |
|
|
|
std::cout << out << std::endl; |
|
|
|
} |
|
|
|
//draw #right waveform |
|
|
|
glEnd(); |
|
|
|
glColor4f(0.0f, 0.0f, 1.0f, 0.5f); |
|
|
|
glBegin(GL_LINE_STRIP); |
|
|
|
for (int i = 0; i<cW; i++) { |
|
|
|
glVertex2i(i+cX, synthR.run()*cH/2+cH/2+cY); |
|
|
|
} |
|
|
|
glEnd(); |
|
|
|
|
|
|
|
//draw 0dc line |
|
|
|
|
|
|
|
glColor4f(1.0f, 1.0f, 1.0f, 0.5f); |
|
|
|
glBegin(GL_LINES); |
|
|
|
glVertex2i(cX, cY+cH/2); |
|
|
|
glVertex2i(cX+cW, cY+cH/2); |
|
|
|
glEnd(); |
|
|
|
|
|
|
|
glColor4f(1.0f, 1.0f, 1.0f, 1.0f); |
|
|
|
int cX = 23+4; |
|
|
|
int cY = 50; |
|
|
|
int cW = 388-cX-3; |
|
|
|
int cH = 216-cY; |
|
|
|
|
|
|
|
//draw waveform |
|
|
|
synthL.play(71); |
|
|
|
synthR.play(71); |
|
|
|
//glEnable(GL_BLEND); |
|
|
|
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
|
|
|
//glEnable( GL_LINE_SMOOTH ); |
|
|
|
//glHint( GL_LINE_SMOOTH_HINT, GL_NICEST ); |
|
|
|
glLineWidth(1.0f); |
|
|
|
//draw #left waveform |
|
|
|
glColor4f(0.0f, 1.0f, 0.0f, 0.5f); |
|
|
|
glBegin(GL_LINE_STRIP); |
|
|
|
for (int i = 0; i<cW; i++) { |
|
|
|
float out = synthL.run()*cH/2+cH/2+cY; |
|
|
|
glVertex2i(i+cX, out); |
|
|
|
std::cout << out << std::endl; |
|
|
|
} |
|
|
|
//draw #right waveform |
|
|
|
glEnd(); |
|
|
|
glColor4f(0.0f, 0.0f, 1.0f, 0.5f); |
|
|
|
glBegin(GL_LINE_STRIP); |
|
|
|
for (int i = 0; i<cW; i++) { |
|
|
|
glVertex2i(i+cX, synthR.run()*cH/2+cH/2+cY); |
|
|
|
} |
|
|
|
glEnd(); |
|
|
|
|
|
|
|
//draw 0dc line |
|
|
|
|
|
|
|
glColor4f(1.0f, 1.0f, 1.0f, 0.5f); |
|
|
|
glBegin(GL_LINES); |
|
|
|
glVertex2i(cX, cY+cH/2); |
|
|
|
glVertex2i(cX+cW, cY+cH/2); |
|
|
|
glEnd(); |
|
|
|
|
|
|
|
glColor4f(1.0f, 1.0f, 1.0f, 1.0f); |
|
|
|
} |
|
|
|
|
|
|
|
// ----------------------------------------------------------------------- |
|
|
|