/*
==============================================================================
This is an automatically generated GUI class created by the Projucer!
Be careful when adding custom code to these files, as only the code within
the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
and re-saved.
Created with Projucer version: 5.4.4
------------------------------------------------------------------------------
The Projucer is part of the JUCE library.
Copyright (c) 2017 - ROLI Ltd.
==============================================================================
*/
//[Headers] You can add your own extra header files here...
#include "GuiLFO.h"
#include "AudioParameters.h"
//[/Headers]
#include "GuiVCO.h"
//[MiscUserDefs] You can add your own user definitions and misc code here...
//[/MiscUserDefs]
//==============================================================================
GuiVCO::GuiVCO ( const String& name, const String & text)
: GroupComponent (name, text)
{
//[Constructor_pre] You can add your own custom stuff here..
//[/Constructor_pre]
setName ("GuiVCO");
squareSlider.reset (new Slider ("squareSlider"));
addAndMakeVisible (squareSlider.get());
squareSlider->setTooltip (TRANS("Amount of Square wave in output"));
squareSlider->setRange (0, 100, 1);
squareSlider->setSliderStyle (Slider::RotaryVerticalDrag);
squareSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
subSlider.reset (new Slider ("subSlider"));
addAndMakeVisible (subSlider.get());
subSlider->setTooltip (TRANS("Amount of Sub Square Wave in Output"));
subSlider->setRange (0, 100, 1);
subSlider->setSliderStyle (Slider::RotaryVerticalDrag);
subSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
sawSlider.reset (new Slider ("SawSlider"));
addAndMakeVisible (sawSlider.get());
sawSlider->setTooltip (TRANS("Amount of sawtooth wave in output"));
sawSlider->setRange (0, 100, 1);
sawSlider->setSliderStyle (Slider::RotaryVerticalDrag);
sawSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
labelSaw.reset (new Label ("labelSaw",
TRANS("Saw")));
addAndMakeVisible (labelSaw.get());
labelSaw->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelSaw->setJustificationType (Justification::centred);
labelSaw->setEditable (false, false, false);
labelSaw->setColour (TextEditor::textColourId, Colours::black);
labelSaw->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
labelSaw->setBounds (10, 106, 48, 24);
labelSub.reset (new Label ("labelSub",
TRANS("Sub")));
addAndMakeVisible (labelSub.get());
labelSub->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelSub->setJustificationType (Justification::centred);
labelSub->setEditable (false, false, false);
labelSub->setColour (TextEditor::textColourId, Colours::black);
labelSub->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
labelSquare.reset (new Label ("labelSquare",
TRANS("Square")));
addAndMakeVisible (labelSquare.get());
labelSquare->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelSquare->setJustificationType (Justification::centred);
labelSquare->setEditable (false, false, false);
labelSquare->setColour (TextEditor::textColourId, Colours::black);
labelSquare->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
labelPWM.reset (new Label ("labelPWM",
TRANS("Sqr PW")));
addAndMakeVisible (labelPWM.get());
labelPWM->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelPWM->setJustificationType (Justification::centred);
labelPWM->setEditable (false, false, false);
labelPWM->setColour (TextEditor::textColourId, Colours::black);
labelPWM->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
labelSine.reset (new Label ("labelSine",
TRANS("Sine")));
addAndMakeVisible (labelSine.get());
labelSine->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelSine->setJustificationType (Justification::centred);
labelSine->setEditable (false, false, false);
labelSine->setColour (TextEditor::textColourId, Colours::black);
labelSine->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
labelSine->setBounds (14, 11, 47, 24);
pwmLFOGroup.reset (new GuiLFO ("pwmLFO",
TRANS("PWM LFO")));
addAndMakeVisible (pwmLFOGroup.get());
pwmLFOGroup->setTextLabelPosition (Justification::centredLeft);
labelEven.reset (new Label ("labelEven",
TRANS("Even h.\n")));
addAndMakeVisible (labelEven.get());
labelEven->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelEven->setJustificationType (Justification::centred);
labelEven->setEditable (false, false, false);
labelEven->setColour (TextEditor::textColourId, Colours::black);
labelEven->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
labelOdd.reset (new Label ("labelOdd",
TRANS("Odd h.")));
addAndMakeVisible (labelOdd.get());
labelOdd->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelOdd->setJustificationType (Justification::centred);
labelOdd->setEditable (false, false, false);
labelOdd->setColour (TextEditor::textColourId, Colours::black);
labelOdd->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
sineSlider.reset (new Slider ("sineSlider"));
addAndMakeVisible (sineSlider.get());
sineSlider->setTooltip (TRANS("Amount of sine wave in output"));
sineSlider->setRange (0, 100, 1);
sineSlider->setSliderStyle (Slider::RotaryVerticalDrag);
sineSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
pwmSlider.reset (new Slider ("pwmSlider"));
addAndMakeVisible (pwmSlider.get());
pwmSlider->setTooltip (TRANS("Pulse width of square wave"));
pwmSlider->setRange (0, 100, 1);
pwmSlider->setSliderStyle (Slider::RotaryVerticalDrag);
pwmSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
sliderHOdd.reset (new Slider ("sliderHOdd"));
addAndMakeVisible (sliderHOdd.get());
sliderHOdd->setTooltip (TRANS("Amount of Odd harmonics in sine wave"));
sliderHOdd->setRange (0, 100, 1);
sliderHOdd->setSliderStyle (Slider::RotaryVerticalDrag);
sliderHOdd->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
sliderHEven.reset (new Slider ("sliderHEven"));
addAndMakeVisible (sliderHEven.get());
sliderHEven->setTooltip (TRANS("Amont of Even harmonics in sine wave"));
sliderHEven->setRange (0, 100, 1);
sliderHEven->setSliderStyle (Slider::RotaryVerticalDrag);
sliderHEven->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
sawPhaseSlider.reset (new Slider ("sawPhaseSlider"));
addAndMakeVisible (sawPhaseSlider.get());
sawPhaseSlider->setTooltip (TRANS("Phase of sawtooth wave / sine wave"));
sawPhaseSlider->setRange (0, 100, 1);
sawPhaseSlider->setSliderStyle (Slider::RotaryVerticalDrag);
sawPhaseSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
labelSawPhase.reset (new Label ("labelSawPhase",
TRANS("Saw Phase")));
addAndMakeVisible (labelSawPhase.get());
labelSawPhase->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelSawPhase->setJustificationType (Justification::centred);
labelSawPhase->setEditable (false, false, false);
labelSawPhase->setColour (TextEditor::textColourId, Colours::black);
labelSawPhase->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
subPhaseSlider.reset (new Slider ("subPhaseSlider"));
addAndMakeVisible (subPhaseSlider.get());
subPhaseSlider->setTooltip (TRANS("Phase of sub square wave / sine"));
subPhaseSlider->setRange (0, 100, 1);
subPhaseSlider->setSliderStyle (Slider::RotaryVerticalDrag);
subPhaseSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
labeSubPhase.reset (new Label ("labeSubPhase",
TRANS("Sub Phase")));
addAndMakeVisible (labeSubPhase.get());
labeSubPhase->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labeSubPhase->setJustificationType (Justification::centred);
labeSubPhase->setEditable (false, false, false);
labeSubPhase->setColour (TextEditor::textColourId, Colours::black);
labeSubPhase->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
squarePhaseSlider.reset (new Slider ("squarePhaseSlider"));
addAndMakeVisible (squarePhaseSlider.get());
squarePhaseSlider->setTooltip (TRANS("Phase of square wave / sine"));
squarePhaseSlider->setRange (0, 100, 1);
squarePhaseSlider->setSliderStyle (Slider::RotaryVerticalDrag);
squarePhaseSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
labeSquarePhase.reset (new Label ("labeSquarePhase",
TRANS("Square Phase")));
addAndMakeVisible (labeSquarePhase.get());
labeSquarePhase->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labeSquarePhase->setJustificationType (Justification::centred);
labeSquarePhase->setEditable (false, false, false);
labeSquarePhase->setColour (TextEditor::textColourId, Colours::black);
labeSquarePhase->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
labelNoise.reset (new Label ("labelNoise",
TRANS("Noise")));
addAndMakeVisible (labelNoise.get());
labelNoise->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular"));
labelNoise->setJustificationType (Justification::centred);
labelNoise->setEditable (false, false, false);
labelNoise->setColour (TextEditor::textColourId, Colours::black);
labelNoise->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
sliderNoise.reset (new Slider ("sliderNoise"));
addAndMakeVisible (sliderNoise.get());
sliderNoise->setTooltip (TRANS("Amount of white noise in output"));
sliderNoise->setRange (0, 100, 1);
sliderNoise->setSliderStyle (Slider::RotaryVerticalDrag);
sliderNoise->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
copyButton.reset (new TextButton ("copyButton"));
addAndMakeVisible (copyButton.get());
copyButton->setTooltip (TRANS("Copy VCO Parameters"));
copyButton->setButtonText (TRANS("C"));
copyButton->addListener (this);
copyButton->setBounds (230, 35, 24, 24);
pasteButton.reset (new TextButton ("pasteButton"));
addAndMakeVisible (pasteButton.get());
pasteButton->setTooltip (TRANS("Paste DCO Parameters"));
pasteButton->setButtonText (TRANS("P"));
pasteButton->addListener (this);
pasteButton->setBounds (230, 67, 24, 24);
//[UserPreSize]
//[/UserPreSize]
setSize (600, 600);
//[Constructor] You can add your own custom stuff here..
//[/Constructor]
}
GuiVCO::~GuiVCO()
{
//[Destructor_pre]. You can add your own custom destruction code here..
mAttachment = nullptr;
//[/Destructor_pre]
squareSlider = nullptr;
subSlider = nullptr;
sawSlider = nullptr;
labelSaw = nullptr;
labelSub = nullptr;
labelSquare = nullptr;
labelPWM = nullptr;
labelSine = nullptr;
pwmLFOGroup = nullptr;
labelEven = nullptr;
labelOdd = nullptr;
sineSlider = nullptr;
pwmSlider = nullptr;
sliderHOdd = nullptr;
sliderHEven = nullptr;
sawPhaseSlider = nullptr;
labelSawPhase = nullptr;
subPhaseSlider = nullptr;
labeSubPhase = nullptr;
squarePhaseSlider = nullptr;
labeSquarePhase = nullptr;
labelNoise = nullptr;
sliderNoise = nullptr;
copyButton = nullptr;
pasteButton = nullptr;
//[Destructor]. You can add your own custom destruction code here..
//[/Destructor]
}
//==============================================================================
void GuiVCO::paint (Graphics& g)
{
//[UserPrePaint] Add your own custom painting code here..
GroupComponent::paint (g);
//[/UserPrePaint]
//[UserPaint] Add your own custom painting code here..
//[/UserPaint]
}
void GuiVCO::resized()
{
//[UserPreResize] Add your own custom resize code here..
//[/UserPreResize]
squareSlider->setBounds ((10 + roundToInt (48 * 0.4792f) - (56 / 2)) + 111, ((106 + 16) + 0) + 0, 56, 72);
subSlider->setBounds ((10 + 55) + 47 / 2 + -1 - (56 / 2), (106 + 16) + 0, 56, 72);
sawSlider->setBounds (10 + roundToInt (48 * 0.4792f) - (56 / 2), 106 + 16, 56, 72);
labelSub->setBounds (10 + 55, 106 + 0, 47, 24);
labelSquare->setBounds (10 + 48 / 2 + 110 - (47 / 2), (106 + 0) + 0, 47, 24);
labelPWM->setBounds ((10 + 55) + 47 / 2 + 112 - (47 / 2), ((106 + 0) + 0) + 0, 47, 24);
pwmLFOGroup->setBounds (9, (((106 + 0) + 0) + 0) + 195, 238, 200);
labelEven->setBounds ((14 + 42) + 45, (11 + 0) + 0, 88, 24);
labelOdd->setBounds (14 + 42, 11 + 0, 64, 24);
sineSlider->setBounds (14 + 47 / 2 + -1 - (56 / 2), 11 + 16, 56, 72);
pwmSlider->setBounds (((10 + 55) + 47 / 2 + -1 - (56 / 2)) + 111, (((106 + 16) + 0) + 0) + 0, 56, 72);
sliderHOdd->setBounds ((14 + 42) + 64 / 2 + -1 - (56 / 2), (11 + 16) + 0, 56, 72);
sliderHEven->setBounds (((14 + 42) + 45) + 88 / 2 + -2 - (56 / 2), ((11 + 16) + 0) + 0, 56, 72);
sawPhaseSlider->setBounds ((10 + 48 / 2 + 9 - (68 / 2)) + 68 / 2 + -1 - (56 / 2), 106 + 112, 56, 72);
labelSawPhase->setBounds (10 + 48 / 2 + 9 - (68 / 2), 205, 68, 24);
subPhaseSlider->setBounds (((10 + 55) + 47 / 2 + 28 - (64 / 2)) + 64 / 2 + -1 - (56 / 2), (106 + 112) + 0, 56, 72);
labeSubPhase->setBounds ((10 + 55) + 47 / 2 + 28 - (64 / 2), 205 + 0, 64, 24);
squarePhaseSlider->setBounds (((10 + 48 / 2 + 110 - (47 / 2)) + 47 / 2 + 48 - (72 / 2)) + 72 / 2 + -1 - (56 / 2), (106 + 112) + 0, 56, 72);
labeSquarePhase->setBounds ((10 + 48 / 2 + 110 - (47 / 2)) + 47 / 2 + 48 - (72 / 2), 205 + 0, 72, 24);
labelNoise->setBounds ((14 + 42) + 100, (11 + 0) + 0, 88, 24);
sliderNoise->setBounds (((14 + 42) + 45) + 88 / 2 + 53 - (56 / 2), ((11 + 16) + 0) + 1, 56, 72);
//[UserResized] Add your own custom resize handling here..
//[/UserResized]
}
void GuiVCO::buttonClicked (Button* buttonThatWasClicked)
{
//[UserbuttonClicked_Pre]
//[/UserbuttonClicked_Pre]
if (buttonThatWasClicked == copyButton.get())
{
//[UserButtonCode_copyButton] -- add your button handler code here..
copy();
//[/UserButtonCode_copyButton]
}
else if (buttonThatWasClicked == pasteButton.get())
{
//[UserButtonCode_pasteButton] -- add your button handler code here..
paste();
//[/UserButtonCode_pasteButton]
}
//[UserbuttonClicked_Post]
//[/UserbuttonClicked_Post]
}
//[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
void GuiVCO::setParameters(VCOParameters * p) {
mVCOParameters = p;
pwmLFOGroup->setParameters(p);
mAttachment = std::make_unique<GuiAttachment>(mVCOParameters->getProcessor());
updateFromParameters();
}
void GuiVCO::updateFromParameters()
{
mAttachment->attachSlider(mVCOParameters->mPWMGain, *squareSlider);
mAttachment->attachSlider(mVCOParameters->mHOddGain, *sliderHOdd);
mAttachment->attachSlider(mVCOParameters->mHEvenGain, *sliderHEven);
mAttachment->attachSlider(mVCOParameters->mSineGain, *sineSlider);
mAttachment->attachSlider(mVCOParameters->mSubGain, *subSlider);
mAttachment->attachSlider(mVCOParameters->mSawGain, *sawSlider);
mAttachment->attachSlider(mVCOParameters->mPWMRate, *pwmSlider);
mAttachment->attachSlider(mVCOParameters->mSawPhase, *sawPhaseSlider);
mAttachment->attachSlider(mVCOParameters->mSubPhase, *subPhaseSlider);
mAttachment->attachSlider(mVCOParameters->mPWMPhase, *squarePhaseSlider);
mAttachment->attachSlider(mVCOParameters->mNoiseGain, *sliderNoise);
}
void GuiVCO::paste(String prefix) {
mVCOParameters->pasteParameters(prefix);
}
void GuiVCO::copy(String prefix)
{
mVCOParameters->copyParameters(prefix);
}
//[/MiscUserCode]
//==============================================================================
#if 0
/* -- Projucer information section --
This is where the Projucer stores the metadata that describe this GUI layout, so
make changes in here at your peril!
BEGIN_JUCER_METADATA
<JUCER_COMPONENT documentType="Component" className="GuiVCO" componentName="GuiVCO"
parentClasses="public GroupComponent" constructorParams=" const String& name, const String & text"
variableInitialisers="GroupComponent (name, text)" snapPixels="8"
snapActive="1" snapShown="1" overlayOpacity="0.330" fixedSize="0"
initialWidth="600" initialHeight="600">
<BACKGROUND backgroundColour="323e44"/>
<SLIDER name="squareSlider" id="69b113a05734c4f5" memberName="squareSlider"
virtualName="" explicitFocusOrder="0" pos="111 0 56 72" posRelativeX="47970c50792f9c3"
posRelativeY="33ac3eb074cc8a8c" tooltip="Amount of Square wave in output"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<SLIDER name="subSlider" id="33ac3eb074cc8a8c" memberName="subSlider"
virtualName="" explicitFocusOrder="0" pos="-1Cc 0 56 72" posRelativeX="247534da6c1de229"
posRelativeY="47970c50792f9c3" tooltip="Amount of Sub Square Wave in Output"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<SLIDER name="SawSlider" id="47970c50792f9c3" memberName="sawSlider"
virtualName="" explicitFocusOrder="0" pos="47.917%c 16 56 72"
posRelativeX="d43004658944c0e8" posRelativeY="d43004658944c0e8"
tooltip="Amount of sawtooth wave in output" min="0.0" max="100.0"
int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<LABEL name="labelSaw" id="d43004658944c0e8" memberName="labelSaw" virtualName=""
explicitFocusOrder="0" pos="10 106 48 24" edTextCol="ff000000"
edBkgCol="0" labelText="Saw" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<LABEL name="labelSub" id="247534da6c1de229" memberName="labelSub" virtualName=""
explicitFocusOrder="0" pos="55 0 47 24" posRelativeX="d43004658944c0e8"
posRelativeY="d43004658944c0e8" edTextCol="ff000000" edBkgCol="0"
labelText="Sub" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<LABEL name="labelSquare" id="f71dffdeb5dfc550" memberName="labelSquare"
virtualName="" explicitFocusOrder="0" pos="110.5Cc 0 47 24" posRelativeX="d43004658944c0e8"
posRelativeY="247534da6c1de229" edTextCol="ff000000" edBkgCol="0"
labelText="Square" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<LABEL name="labelPWM" id="8cd2e39e9d5e700d" memberName="labelPWM" virtualName=""
explicitFocusOrder="0" pos="111.5Cc 0 47 24" posRelativeX="247534da6c1de229"
posRelativeY="f71dffdeb5dfc550" edTextCol="ff000000" edBkgCol="0"
labelText="Sqr PW" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<LABEL name="labelSine" id="ddf178a525ed6f14" memberName="labelSine"
virtualName="" explicitFocusOrder="0" pos="14 11 47 24" edTextCol="ff000000"
edBkgCol="0" labelText="Sine" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<GROUPCOMPONENT name="pwmLFO" id="ac5696b26ebb8135" memberName="pwmLFOGroup"
virtualName="GuiLFO" explicitFocusOrder="0" pos="9 195 238 200"
posRelativeY="8cd2e39e9d5e700d" title="PWM LFO" textpos="33"/>
<LABEL name="labelEven" id="bf5e6eb3bc3c157a" memberName="labelEven"
virtualName="" explicitFocusOrder="0" pos="45 0 88 24" posRelativeX="822d90ee5321fca1"
posRelativeY="822d90ee5321fca1" edTextCol="ff000000" edBkgCol="0"
labelText="Even h. " editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<LABEL name="labelOdd" id="822d90ee5321fca1" memberName="labelOdd" virtualName=""
explicitFocusOrder="0" pos="42 0 64 24" posRelativeX="ddf178a525ed6f14"
posRelativeY="ddf178a525ed6f14" edTextCol="ff000000" edBkgCol="0"
labelText="Odd h." editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<SLIDER name="sineSlider" id="586690c5050f6d69" memberName="sineSlider"
virtualName="" explicitFocusOrder="0" pos="-1Cc 16 56 72" posRelativeX="ddf178a525ed6f14"
posRelativeY="ddf178a525ed6f14" tooltip="Amount of sine wave in output"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<SLIDER name="pwmSlider" id="b92ffcc696c7e039" memberName="pwmSlider"
virtualName="" explicitFocusOrder="0" pos="111 0 56 72" posRelativeX="33ac3eb074cc8a8c"
posRelativeY="69b113a05734c4f5" tooltip="Pulse width of square wave"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<SLIDER name="sliderHOdd" id="12ff6a2231d4abbe" memberName="sliderHOdd"
virtualName="" explicitFocusOrder="0" pos="-1Cc 0 56 72" posRelativeX="822d90ee5321fca1"
posRelativeY="586690c5050f6d69" tooltip="Amount of Odd harmonics in sine wave"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<SLIDER name="sliderHEven" id="e3697c1e6a3e385a" memberName="sliderHEven"
virtualName="" explicitFocusOrder="0" pos="-2Cc 0 56 72" posRelativeX="bf5e6eb3bc3c157a"
posRelativeY="12ff6a2231d4abbe" tooltip="Amont of Even harmonics in sine wave"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<SLIDER name="sawPhaseSlider" id="3599298b01f9055b" memberName="sawPhaseSlider"
virtualName="" explicitFocusOrder="0" pos="-1Cc 112 56 72" posRelativeX="701b6d0e518547c0"
posRelativeY="d43004658944c0e8" tooltip="Phase of sawtooth wave / sine wave"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<LABEL name="labelSawPhase" id="701b6d0e518547c0" memberName="labelSawPhase"
virtualName="" explicitFocusOrder="0" pos="9Cc 205 68 24" posRelativeX="d43004658944c0e8"
edTextCol="ff000000" edBkgCol="0" labelText="Saw Phase" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15.0" kerning="0.0" bold="0" italic="0" justification="36"/>
<SLIDER name="subPhaseSlider" id="8a4d51b862faa71d" memberName="subPhaseSlider"
virtualName="" explicitFocusOrder="0" pos="-1Cc 0 56 72" posRelativeX="ebbae9010b4bed6f"
posRelativeY="3599298b01f9055b" tooltip="Phase of sub square wave / sine"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<LABEL name="labeSubPhase" id="ebbae9010b4bed6f" memberName="labeSubPhase"
virtualName="" explicitFocusOrder="0" pos="28Cc 0 64 24" posRelativeX="247534da6c1de229"
posRelativeY="701b6d0e518547c0" edTextCol="ff000000" edBkgCol="0"
labelText="Sub Phase" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<SLIDER name="squarePhaseSlider" id="a70ef9c6b567c82a" memberName="squarePhaseSlider"
virtualName="" explicitFocusOrder="0" pos="-1Cc 0 56 72" posRelativeX="ebac2443d4ee2eb"
posRelativeY="3599298b01f9055b" tooltip="Phase of square wave / sine"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<LABEL name="labeSquarePhase" id="ebac2443d4ee2eb" memberName="labeSquarePhase"
virtualName="" explicitFocusOrder="0" pos="48Cc 0 72 24" posRelativeX="f71dffdeb5dfc550"
posRelativeY="701b6d0e518547c0" edTextCol="ff000000" edBkgCol="0"
labelText="Square Phase" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<LABEL name="labelNoise" id="4937cc5f2ccb75e8" memberName="labelNoise"
virtualName="" explicitFocusOrder="0" pos="100 0 88 24" posRelativeX="822d90ee5321fca1"
posRelativeY="822d90ee5321fca1" edTextCol="ff000000" edBkgCol="0"
labelText="Noise" editableSingleClick="0" editableDoubleClick="0"
focusDiscardsChanges="0" fontname="Default font" fontsize="15.0"
kerning="0.0" bold="0" italic="0" justification="36"/>
<SLIDER name="sliderNoise" id="af1245f5491857d4" memberName="sliderNoise"
virtualName="" explicitFocusOrder="0" pos="53Cc 1 56 72" posRelativeX="bf5e6eb3bc3c157a"
posRelativeY="12ff6a2231d4abbe" tooltip="Amount of white noise in output"
min="0.0" max="100.0" int="1.0" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
textBoxEditable="1" textBoxWidth="40" textBoxHeight="20" skewFactor="1.0"
needsCallback="0"/>
<TEXTBUTTON name="copyButton" id="36caa20fb07405f3" memberName="copyButton"
virtualName="" explicitFocusOrder="0" pos="230 35 24 24" tooltip="Copy VCO Parameters"
buttonText="C" connectedEdges="0" needsCallback="1" radioGroupId="0"/>
<TEXTBUTTON name="pasteButton" id="4af5e8f91f632b47" memberName="pasteButton"
virtualName="" explicitFocusOrder="0" pos="230 67 24 24" tooltip="Paste DCO Parameters"
buttonText="P" connectedEdges="0" needsCallback="1" radioGroupId="0"/>
</JUCER_COMPONENT>
END_JUCER_METADATA
*/
#endif
//[EndFile] You can add extra defines here...
//[/EndFile]