2
0
Fork 0

Add UI controls for vibrato and tremolo depth, modulator feedback. Improve build instructions.

This commit is contained in:
bruce 2013-11-03 00:14:00 +08:00
parent 824fa4bb27
commit 6d54231b24
3 changed files with 296 additions and 108 deletions

View file

@ -75,6 +75,11 @@ void PluginGui::updateFromParameters()
if (processor->getEnumParameter("Carrier Vibrato")) vibratoButton2->setToggleState(true, false); if (processor->getEnumParameter("Carrier Vibrato")) vibratoButton2->setToggleState(true, false);
if (processor->getEnumParameter("Carrier Sustain")) sustainButton2->setToggleState(true, false); if (processor->getEnumParameter("Carrier Sustain")) sustainButton2->setToggleState(true, false);
if (processor->getEnumParameter("Carrier Keyscale Rate")) keyscaleEnvButton2->setToggleState(true, false); if (processor->getEnumParameter("Carrier Keyscale Rate")) keyscaleEnvButton2->setToggleState(true, false);
vibratoSlider->setValue(processor->getEnumParameter("Vibrato Depth") * 7.0 + 7.0, NotificationType::dontSendNotification);
tremoloSlider->setValue(processor->getEnumParameter("Tremolo Depth") * 3.8 + 1.0, NotificationType::dontSendNotification);
feedbackSlider->setValue(processor->getIntParameter("Modulator Feedback"), NotificationType::dontSendNotification);
} }
//[/MiscUserDefs] //[/MiscUserDefs]
@ -98,7 +103,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (frequencyLabel = new Label ("frequency label", addAndMakeVisible (frequencyLabel = new Label ("frequency label",
"Frequency")); "Frequency"));
frequencyLabel->setFont (Font (15.00f, Font::plain)); frequencyLabel->setFont (Font (15.00f, Font::plain));
frequencyLabel->setJustificationType (Justification::centred); frequencyLabel->setJustificationType (Justification::centredLeft);
frequencyLabel->setEditable (false, false, false); frequencyLabel->setEditable (false, false, false);
frequencyLabel->setColour (Label::textColourId, Colour (0xff007f00)); frequencyLabel->setColour (Label::textColourId, Colour (0xff007f00));
frequencyLabel->setColour (TextEditor::textColourId, Colours::black); frequencyLabel->setColour (TextEditor::textColourId, Colours::black);
@ -257,7 +262,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (waveLabel = new Label ("wave label", addAndMakeVisible (waveLabel = new Label ("wave label",
"Wave")); "Wave"));
waveLabel->setFont (Font (15.00f, Font::plain)); waveLabel->setFont (Font (15.00f, Font::plain));
waveLabel->setJustificationType (Justification::centred); waveLabel->setJustificationType (Justification::centredLeft);
waveLabel->setEditable (false, false, false); waveLabel->setEditable (false, false, false);
waveLabel->setColour (Label::textColourId, Colour (0xff007f00)); waveLabel->setColour (Label::textColourId, Colour (0xff007f00));
waveLabel->setColour (TextEditor::textColourId, Colours::black); waveLabel->setColour (TextEditor::textColourId, Colours::black);
@ -329,7 +334,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (frequencyLabel3 = new Label ("frequency label", addAndMakeVisible (frequencyLabel3 = new Label ("frequency label",
"Frequency")); "Frequency"));
frequencyLabel3->setFont (Font (15.00f, Font::plain)); frequencyLabel3->setFont (Font (15.00f, Font::plain));
frequencyLabel3->setJustificationType (Justification::centred); frequencyLabel3->setJustificationType (Justification::centredLeft);
frequencyLabel3->setEditable (false, false, false); frequencyLabel3->setEditable (false, false, false);
frequencyLabel3->setColour (Label::textColourId, Colour (0xff007f00)); frequencyLabel3->setColour (Label::textColourId, Colour (0xff007f00));
frequencyLabel3->setColour (TextEditor::textColourId, Colours::black); frequencyLabel3->setColour (TextEditor::textColourId, Colours::black);
@ -488,7 +493,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (waveLabel2 = new Label ("wave label", addAndMakeVisible (waveLabel2 = new Label ("wave label",
"Wave")); "Wave"));
waveLabel2->setFont (Font (15.00f, Font::plain)); waveLabel2->setFont (Font (15.00f, Font::plain));
waveLabel2->setJustificationType (Justification::centred); waveLabel2->setJustificationType (Justification::centredLeft);
waveLabel2->setEditable (false, false, false); waveLabel2->setEditable (false, false, false);
waveLabel2->setColour (Label::textColourId, Colour (0xff007f00)); waveLabel2->setColour (Label::textColourId, Colour (0xff007f00));
waveLabel2->setColour (TextEditor::textColourId, Colours::black); waveLabel2->setColour (TextEditor::textColourId, Colours::black);
@ -544,6 +549,92 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
dbLabel4->setColour (TextEditor::textColourId, Colours::black); dbLabel4->setColour (TextEditor::textColourId, Colours::black);
dbLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); dbLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (groupComponent3 = new GroupComponent ("new group",
"Common"));
groupComponent3->setTextLabelPosition (Justification::centredLeft);
groupComponent3->setColour (GroupComponent::outlineColourId, Colour (0xff007f00));
groupComponent3->setColour (GroupComponent::textColourId, Colour (0xff007f00));
addAndMakeVisible (tremoloSlider = new Slider ("tremolo slider"));
tremoloSlider->setRange (1, 4.8, 3.8);
tremoloSlider->setSliderStyle (Slider::LinearHorizontal);
tremoloSlider->setTextBoxStyle (Slider::TextBoxLeft, false, 44, 20);
tremoloSlider->setColour (Slider::thumbColourId, Colour (0xff00af00));
tremoloSlider->setColour (Slider::trackColourId, Colour (0x7f007f00));
tremoloSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00));
tremoloSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black);
tremoloSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00));
tremoloSlider->addListener (this);
addAndMakeVisible (frequencyLabel5 = new Label ("frequency label",
"Tremolo Depth\n"));
frequencyLabel5->setFont (Font (15.00f, Font::plain));
frequencyLabel5->setJustificationType (Justification::centred);
frequencyLabel5->setEditable (false, false, false);
frequencyLabel5->setColour (Label::textColourId, Colour (0xff007f00));
frequencyLabel5->setColour (TextEditor::textColourId, Colours::black);
frequencyLabel5->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (dbLabel5 = new Label ("db label",
"dB"));
dbLabel5->setFont (Font (15.00f, Font::plain));
dbLabel5->setJustificationType (Justification::centred);
dbLabel5->setEditable (false, false, false);
dbLabel5->setColour (Label::textColourId, Colour (0xff007f00));
dbLabel5->setColour (Label::outlineColourId, Colour (0x00000000));
dbLabel5->setColour (TextEditor::textColourId, Colours::black);
dbLabel5->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (vibratoSlider = new Slider ("vibrato slider"));
vibratoSlider->setRange (7, 14, 7);
vibratoSlider->setSliderStyle (Slider::LinearHorizontal);
vibratoSlider->setTextBoxStyle (Slider::TextBoxLeft, false, 44, 20);
vibratoSlider->setColour (Slider::thumbColourId, Colour (0xff00af00));
vibratoSlider->setColour (Slider::trackColourId, Colour (0x7f007f00));
vibratoSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00));
vibratoSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black);
vibratoSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00));
vibratoSlider->addListener (this);
addAndMakeVisible (frequencyLabel6 = new Label ("frequency label",
"Vibrato Depth"));
frequencyLabel6->setFont (Font (15.00f, Font::plain));
frequencyLabel6->setJustificationType (Justification::centred);
frequencyLabel6->setEditable (false, false, false);
frequencyLabel6->setColour (Label::textColourId, Colour (0xff007f00));
frequencyLabel6->setColour (TextEditor::textColourId, Colours::black);
frequencyLabel6->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (dbLabel6 = new Label ("db label",
"cents\n"));
dbLabel6->setFont (Font (15.00f, Font::plain));
dbLabel6->setJustificationType (Justification::centred);
dbLabel6->setEditable (false, false, false);
dbLabel6->setColour (Label::textColourId, Colour (0xff007f00));
dbLabel6->setColour (Label::outlineColourId, Colour (0x00000000));
dbLabel6->setColour (TextEditor::textColourId, Colours::black);
dbLabel6->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (feedbackSlider = new Slider ("feedback slider"));
feedbackSlider->setRange (0, 7, 1);
feedbackSlider->setSliderStyle (Slider::LinearHorizontal);
feedbackSlider->setTextBoxStyle (Slider::TextBoxRight, false, 44, 20);
feedbackSlider->setColour (Slider::thumbColourId, Colour (0xff00af00));
feedbackSlider->setColour (Slider::trackColourId, Colour (0x7f007f00));
feedbackSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00));
feedbackSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black);
feedbackSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00));
feedbackSlider->addListener (this);
addAndMakeVisible (frequencyLabel7 = new Label ("frequency label",
"Feedback"));
frequencyLabel7->setFont (Font (15.00f, Font::plain));
frequencyLabel7->setJustificationType (Justification::centredLeft);
frequencyLabel7->setEditable (false, false, false);
frequencyLabel7->setColour (Label::textColourId, Colour (0xff007f00));
frequencyLabel7->setColour (TextEditor::textColourId, Colours::black);
frequencyLabel7->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
//[UserPreSize] //[UserPreSize]
frequencyComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); frequencyComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID));
@ -612,7 +703,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
sustainButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); sustainButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID));
//[/UserPreSize] //[/UserPreSize]
setSize (420, 620); setSize (430, 800);
//[Constructor] You can add your own custom stuff here.. //[Constructor] You can add your own custom stuff here..
@ -677,6 +768,15 @@ PluginGui::~PluginGui()
keyscaleSlider2 = nullptr; keyscaleSlider2 = nullptr;
frequencyLabel4 = nullptr; frequencyLabel4 = nullptr;
dbLabel4 = nullptr; dbLabel4 = nullptr;
groupComponent3 = nullptr;
tremoloSlider = nullptr;
frequencyLabel5 = nullptr;
dbLabel5 = nullptr;
vibratoSlider = nullptr;
frequencyLabel6 = nullptr;
dbLabel6 = nullptr;
feedbackSlider = nullptr;
frequencyLabel7 = nullptr;
//[Destructor]. You can add your own custom destruction code here.. //[Destructor]. You can add your own custom destruction code here..
@ -697,58 +797,67 @@ void PluginGui::paint (Graphics& g)
void PluginGui::resized() void PluginGui::resized()
{ {
groupComponent->setBounds (16, 8, 392, 296); groupComponent->setBounds (16, 8, 400, 336);
frequencyComboBox->setBounds (120, 80, 72, 24); frequencyComboBox->setBounds (128, 80, 72, 24);
frequencyLabel->setBounds (16, 80, 96, 24); frequencyLabel->setBounds (32, 80, 80, 24);
aSlider->setBounds (40, 192, 48, 72); aSlider->setBounds (40, 208, 48, 72);
aLabel->setBounds (40, 264, 48, 24); aLabel->setBounds (40, 280, 48, 24);
dSlider->setBounds (104, 192, 48, 72); dSlider->setBounds (104, 208, 48, 72);
dLabel->setBounds (104, 264, 48, 24); dLabel->setBounds (104, 280, 48, 24);
sSlider->setBounds (168, 192, 48, 72); sSlider->setBounds (168, 208, 48, 72);
dLabel2->setBounds (168, 264, 48, 24); dLabel2->setBounds (168, 280, 48, 24);
rSlider->setBounds (232, 192, 48, 72); rSlider->setBounds (232, 208, 48, 72);
rLabel->setBounds (232, 264, 48, 24); rLabel->setBounds (232, 280, 48, 24);
attenuationSlider->setBounds (296, 152, 72, 112); attenuationSlider->setBounds (304, 168, 72, 112);
attenuationLabel->setBounds (296, 264, 96, 24); attenuationLabel->setBounds (304, 280, 96, 24);
dbLabel->setBounds (360, 240, 40, 24); dbLabel->setBounds (368, 256, 40, 24);
sineImageButton->setBounds (120, 40, 34, 30); sineImageButton->setBounds (120, 40, 34, 30);
halfsineImageButton->setBounds (176, 40, 34, 30); halfsineImageButton->setBounds (176, 40, 34, 30);
abssineImageButton->setBounds (232, 40, 34, 30); abssineImageButton->setBounds (232, 40, 34, 30);
quartersineImageButton->setBounds (288, 40, 34, 30); quartersineImageButton->setBounds (288, 40, 34, 30);
waveLabel->setBounds (16, 40, 96, 24); waveLabel->setBounds (32, 40, 80, 24);
tremoloButton->setBounds (40, 120, 96, 24); tremoloButton->setBounds (144, 120, 96, 24);
vibratoButton->setBounds (40, 152, 96, 24); vibratoButton->setBounds (40, 120, 96, 24);
sustainButton->setBounds (128, 120, 96, 24); sustainButton->setBounds (40, 304, 96, 24);
keyscaleEnvButton->setBounds (128, 152, 184, 24); keyscaleEnvButton->setBounds (136, 304, 184, 24);
keyscaleSlider->setBounds (256, 96, 112, 24); keyscaleSlider->setBounds (256, 104, 112, 24);
frequencyLabel2->setBounds (248, 120, 152, 24); frequencyLabel2->setBounds (248, 80, 152, 24);
dbLabel2->setBounds (368, 88, 40, 40); dbLabel2->setBounds (368, 96, 40, 40);
groupComponent2->setBounds (16, 320, 392, 296); groupComponent2->setBounds (16, 352, 400, 320);
frequencyComboBox2->setBounds (120, 392, 72, 24); frequencyComboBox2->setBounds (128, 424, 72, 24);
frequencyLabel3->setBounds (16, 392, 96, 24); frequencyLabel3->setBounds (32, 424, 80, 24);
aSlider2->setBounds (40, 504, 48, 72); aSlider2->setBounds (40, 536, 48, 72);
aLabel2->setBounds (40, 576, 48, 24); aLabel2->setBounds (40, 608, 48, 24);
dSlider2->setBounds (104, 504, 48, 72); dSlider2->setBounds (104, 536, 48, 72);
dLabel3->setBounds (104, 576, 48, 24); dLabel3->setBounds (104, 608, 48, 24);
sSlider2->setBounds (168, 504, 48, 72); sSlider2->setBounds (168, 536, 48, 72);
dLabel4->setBounds (168, 576, 48, 24); dLabel4->setBounds (168, 608, 48, 24);
rSlider2->setBounds (232, 504, 48, 72); rSlider2->setBounds (232, 536, 48, 72);
rLabel2->setBounds (232, 576, 48, 24); rLabel2->setBounds (232, 608, 48, 24);
attenuationSlider2->setBounds (296, 464, 72, 112); attenuationSlider2->setBounds (304, 496, 72, 112);
attenuationLabel2->setBounds (296, 576, 96, 24); attenuationLabel2->setBounds (304, 608, 96, 24);
dbLabel3->setBounds (360, 552, 40, 24); dbLabel3->setBounds (368, 584, 40, 24);
sineImageButton2->setBounds (120, 352, 34, 30); sineImageButton2->setBounds (120, 384, 34, 30);
halfsineImageButton2->setBounds (176, 352, 34, 30); halfsineImageButton2->setBounds (176, 384, 34, 30);
abssineImageButton2->setBounds (232, 352, 34, 30); abssineImageButton2->setBounds (232, 384, 34, 30);
quartersineImageButton2->setBounds (288, 352, 34, 30); quartersineImageButton2->setBounds (288, 384, 34, 30);
waveLabel2->setBounds (16, 352, 96, 24); waveLabel2->setBounds (32, 384, 80, 24);
tremoloButton2->setBounds (40, 432, 96, 24); tremoloButton2->setBounds (152, 464, 96, 24);
vibratoButton2->setBounds (40, 464, 96, 24); vibratoButton2->setBounds (40, 464, 96, 24);
sustainButton2->setBounds (128, 432, 96, 24); sustainButton2->setBounds (40, 632, 96, 24);
keyscaleEnvButton2->setBounds (128, 464, 184, 24); keyscaleEnvButton2->setBounds (136, 632, 184, 24);
keyscaleSlider2->setBounds (256, 408, 112, 24); keyscaleSlider2->setBounds (256, 448, 112, 24);
frequencyLabel4->setBounds (248, 432, 152, 24); frequencyLabel4->setBounds (248, 424, 152, 24);
dbLabel4->setBounds (368, 400, 40, 40); dbLabel4->setBounds (368, 440, 40, 40);
groupComponent3->setBounds (16, 680, 400, 96);
tremoloSlider->setBounds (48, 712, 112, 24);
frequencyLabel5->setBounds (40, 736, 152, 24);
dbLabel5->setBounds (160, 704, 40, 40);
vibratoSlider->setBounds (233, 713, 112, 24);
frequencyLabel6->setBounds (225, 737, 152, 24);
dbLabel6->setBounds (345, 705, 47, 40);
feedbackSlider->setBounds (120, 168, 136, 24);
frequencyLabel7->setBounds (32, 168, 80, 24);
//[UserResized] Add your own custom resize handling here.. //[UserResized] Add your own custom resize handling here..
//[/UserResized] //[/UserResized]
} }
@ -856,6 +965,24 @@ void PluginGui::sliderValueChanged (Slider* sliderThatWasMoved)
processor->setEnumParameter("Carrier Keyscale Level", -(int)(sliderThatWasMoved->getValue()/1.5)); processor->setEnumParameter("Carrier Keyscale Level", -(int)(sliderThatWasMoved->getValue()/1.5));
//[/UserSliderCode_keyscaleSlider2] //[/UserSliderCode_keyscaleSlider2]
} }
else if (sliderThatWasMoved == tremoloSlider)
{
//[UserSliderCode_tremoloSlider] -- add your slider handling code here..
processor->setEnumParameter("Tremolo Depth", sliderThatWasMoved->getValue() < 2.0 ? 0 : 1);
//[/UserSliderCode_tremoloSlider]
}
else if (sliderThatWasMoved == vibratoSlider)
{
//[UserSliderCode_vibratoSlider] -- add your slider handling code here..
processor->setEnumParameter("Vibrato Depth", sliderThatWasMoved->getValue() < 8.0 ? 0 : 1);
//[/UserSliderCode_vibratoSlider]
}
else if (sliderThatWasMoved == feedbackSlider)
{
//[UserSliderCode_feedbackSlider] -- add your slider handling code here..
processor->setIntParameter("Modulator Feedback", (int)sliderThatWasMoved->getValue());
//[/UserSliderCode_feedbackSlider]
}
//[UsersliderValueChanged_Post] //[UsersliderValueChanged_Post]
//[/UsersliderValueChanged_Post] //[/UsersliderValueChanged_Post]
@ -986,76 +1113,76 @@ BEGIN_JUCER_METADATA
parentClasses="public AudioProcessorEditor" constructorParams="JuceOplvstiAudioProcessor* ownerFilter" parentClasses="public AudioProcessorEditor" constructorParams="JuceOplvstiAudioProcessor* ownerFilter"
variableInitialisers=" AudioProcessorEditor (ownerFilter)" snapPixels="8" variableInitialisers=" AudioProcessorEditor (ownerFilter)" snapPixels="8"
snapActive="1" snapShown="1" overlayOpacity="0.33" fixedSize="0" snapActive="1" snapShown="1" overlayOpacity="0.33" fixedSize="0"
initialWidth="420" initialHeight="620"> initialWidth="430" initialHeight="800">
<BACKGROUND backgroundColour="ff000000"/> <BACKGROUND backgroundColour="ff000000"/>
<GROUPCOMPONENT name="new group" id="d2c7c07bf2d78c30" memberName="groupComponent" <GROUPCOMPONENT name="new group" id="d2c7c07bf2d78c30" memberName="groupComponent"
virtualName="" explicitFocusOrder="0" pos="16 8 392 296" outlinecol="ff007f00" virtualName="" explicitFocusOrder="0" pos="16 8 400 336" outlinecol="ff007f00"
textcol="ff007f00" title="Modulator" textpos="33"/> textcol="ff007f00" title="Modulator" textpos="33"/>
<COMBOBOX name="frequency combo box" id="4e65faf3d9442460" memberName="frequencyComboBox" <COMBOBOX name="frequency combo box" id="4e65faf3d9442460" memberName="frequencyComboBox"
virtualName="" explicitFocusOrder="0" pos="120 80 72 24" editable="0" virtualName="" explicitFocusOrder="0" pos="128 80 72 24" editable="0"
layout="33" items="" textWhenNonSelected="" textWhenNoItems="(no choices)"/> layout="33" items="" textWhenNonSelected="" textWhenNoItems="(no choices)"/>
<LABEL name="frequency label" id="7414532477c7f744" memberName="frequencyLabel" <LABEL name="frequency label" id="7414532477c7f744" memberName="frequencyLabel"
virtualName="" explicitFocusOrder="0" pos="16 80 96 24" textCol="ff007f00" virtualName="" explicitFocusOrder="0" pos="32 80 80 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Frequency" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="Frequency" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="33"/>
<SLIDER name="a slider" id="1b9be27726a5b3ae" memberName="aSlider" virtualName="" <SLIDER name="a slider" id="1b9be27726a5b3ae" memberName="aSlider" virtualName=""
explicitFocusOrder="0" pos="40 192 48 72" thumbcol="ff00af00" explicitFocusOrder="0" pos="40 208 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical" textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="a label" id="9dd0b13f00b4de42" memberName="aLabel" virtualName="" <LABEL name="a label" id="9dd0b13f00b4de42" memberName="aLabel" virtualName=""
explicitFocusOrder="0" pos="40 264 48 24" textCol="ff007f00" explicitFocusOrder="0" pos="40 280 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="A" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="A" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="d slider" id="d4cc8ddf2fc9cf2b" memberName="dSlider" virtualName="" <SLIDER name="d slider" id="d4cc8ddf2fc9cf2b" memberName="dSlider" virtualName=""
explicitFocusOrder="0" pos="104 192 48 72" thumbcol="ff00af00" explicitFocusOrder="0" pos="104 208 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical" textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="d label" id="a7f17b098b85f10b" memberName="dLabel" virtualName="" <LABEL name="d label" id="a7f17b098b85f10b" memberName="dLabel" virtualName=""
explicitFocusOrder="0" pos="104 264 48 24" textCol="ff007f00" explicitFocusOrder="0" pos="104 280 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="D" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="D" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="s slider" id="9bcadfc61e498bce" memberName="sSlider" virtualName="" <SLIDER name="s slider" id="9bcadfc61e498bce" memberName="sSlider" virtualName=""
explicitFocusOrder="0" pos="168 192 48 72" thumbcol="ff00af00" explicitFocusOrder="0" pos="168 208 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical" textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="d label" id="6467455c7573fefa" memberName="dLabel2" virtualName="" <LABEL name="d label" id="6467455c7573fefa" memberName="dLabel2" virtualName=""
explicitFocusOrder="0" pos="168 264 48 24" textCol="ff007f00" explicitFocusOrder="0" pos="168 280 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="S" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="S" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="r slider" id="5616976a8c5a3f5f" memberName="rSlider" virtualName="" <SLIDER name="r slider" id="5616976a8c5a3f5f" memberName="rSlider" virtualName=""
explicitFocusOrder="0" pos="232 192 48 72" thumbcol="ff00af00" explicitFocusOrder="0" pos="232 208 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical" textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="r label" id="ef30d2907e867666" memberName="rLabel" virtualName="" <LABEL name="r label" id="ef30d2907e867666" memberName="rLabel" virtualName=""
explicitFocusOrder="0" pos="232 264 48 24" textCol="ff007f00" explicitFocusOrder="0" pos="232 280 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="R" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="R" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="attenuation slider" id="dfb943cd83b3977f" memberName="attenuationSlider" <SLIDER name="attenuation slider" id="dfb943cd83b3977f" memberName="attenuationSlider"
virtualName="" explicitFocusOrder="0" pos="296 152 72 112" thumbcol="ff00af00" virtualName="" explicitFocusOrder="0" pos="304 168 72 112" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="-47.25" max="0" int="0.75" style="LinearVertical" textboxhighlight="ff00af00" min="-47.25" max="0" int="0.75" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="64" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="64"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="attenuation label" id="643f88854c82ca3e" memberName="attenuationLabel" <LABEL name="attenuation label" id="643f88854c82ca3e" memberName="attenuationLabel"
virtualName="" explicitFocusOrder="0" pos="296 264 96 24" textCol="ff007f00" virtualName="" explicitFocusOrder="0" pos="304 280 96 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Attenuation" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="Attenuation" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<LABEL name="db label" id="666be8c96c85c9f1" memberName="dbLabel" virtualName="" <LABEL name="db label" id="666be8c96c85c9f1" memberName="dbLabel" virtualName=""
explicitFocusOrder="0" pos="360 240 40 24" textCol="ff007f00" explicitFocusOrder="0" pos="368 256 40 24" textCol="ff007f00"
outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB" outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0" editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/> fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
@ -1084,144 +1211,144 @@ BEGIN_JUCER_METADATA
opacityNormal="0.5" colourNormal="0" resourceOver="" opacityOver="0.5" opacityNormal="0.5" colourNormal="0" resourceOver="" opacityOver="0.5"
colourOver="0" resourceDown="" opacityDown="1" colourDown="0"/> colourOver="0" resourceDown="" opacityDown="1" colourDown="0"/>
<LABEL name="wave label" id="d35c942584ea52a6" memberName="waveLabel" <LABEL name="wave label" id="d35c942584ea52a6" memberName="waveLabel"
virtualName="" explicitFocusOrder="0" pos="16 40 96 24" textCol="ff007f00" virtualName="" explicitFocusOrder="0" pos="32 40 80 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Wave" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="Wave" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="33"/>
<TOGGLEBUTTON name="tremolo button" id="1e6ab9b2f1fee312" memberName="tremoloButton" <TOGGLEBUTTON name="tremolo button" id="1e6ab9b2f1fee312" memberName="tremoloButton"
virtualName="" explicitFocusOrder="0" pos="40 120 96 24" txtcol="ff007f00" virtualName="" explicitFocusOrder="0" pos="144 120 96 24" txtcol="ff007f00"
buttonText="Tremolo" connectedEdges="0" needsCallback="1" radioGroupId="0" buttonText="Tremolo" connectedEdges="0" needsCallback="1" radioGroupId="0"
state="0"/> state="0"/>
<TOGGLEBUTTON name="vibrato button" id="a989eb6692e3dbd8" memberName="vibratoButton" <TOGGLEBUTTON name="vibrato button" id="a989eb6692e3dbd8" memberName="vibratoButton"
virtualName="" explicitFocusOrder="0" pos="40 152 96 24" txtcol="ff007f00" virtualName="" explicitFocusOrder="0" pos="40 120 96 24" txtcol="ff007f00"
buttonText="Vibrato" connectedEdges="0" needsCallback="1" radioGroupId="0" buttonText="Vibrato" connectedEdges="0" needsCallback="1" radioGroupId="0"
state="0"/> state="0"/>
<TOGGLEBUTTON name="sustain button" id="e0ae2bc46ec1861c" memberName="sustainButton" <TOGGLEBUTTON name="sustain button" id="e0ae2bc46ec1861c" memberName="sustainButton"
virtualName="" explicitFocusOrder="0" pos="128 120 96 24" txtcol="ff007f00" virtualName="" explicitFocusOrder="0" pos="40 304 96 24" txtcol="ff007f00"
buttonText="Sustain" connectedEdges="0" needsCallback="1" radioGroupId="0" buttonText="Sustain" connectedEdges="0" needsCallback="1" radioGroupId="0"
state="0"/> state="0"/>
<TOGGLEBUTTON name="keyscale env button" id="a3f62a22526b4b49" memberName="keyscaleEnvButton" <TOGGLEBUTTON name="keyscale env button" id="a3f62a22526b4b49" memberName="keyscaleEnvButton"
virtualName="" explicitFocusOrder="0" pos="128 152 184 24" txtcol="ff007f00" virtualName="" explicitFocusOrder="0" pos="136 304 184 24" txtcol="ff007f00"
buttonText="Keyscale Envelope Rate" connectedEdges="0" needsCallback="1" buttonText="Keyscale Envelope Rate" connectedEdges="0" needsCallback="1"
radioGroupId="0" state="0"/> radioGroupId="0" state="0"/>
<SLIDER name="keyscale slider" id="8bde8e6e39d8ae89" memberName="keyscaleSlider" <SLIDER name="keyscale slider" id="8bde8e6e39d8ae89" memberName="keyscaleSlider"
virtualName="" explicitFocusOrder="0" pos="256 96 112 24" thumbcol="ff00af00" virtualName="" explicitFocusOrder="0" pos="256 104 112 24" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="-6" max="0" int="1.5" style="LinearHorizontal" textboxhighlight="ff00af00" min="-6" max="0" int="1.5" style="LinearHorizontal"
textBoxPos="TextBoxLeft" textBoxEditable="1" textBoxWidth="44" textBoxPos="TextBoxLeft" textBoxEditable="1" textBoxWidth="44"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="frequency label" id="7898903168ad06c2" memberName="frequencyLabel2" <LABEL name="frequency label" id="7898903168ad06c2" memberName="frequencyLabel2"
virtualName="" explicitFocusOrder="0" pos="248 120 152 24" textCol="ff007f00" virtualName="" explicitFocusOrder="0" pos="248 80 152 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Keyscale Attenuation" edTextCol="ff000000" edBkgCol="0" labelText="Keyscale Attenuation"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0" editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/> fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
<LABEL name="db label" id="b9b3cedf2b541262" memberName="dbLabel2" virtualName="" <LABEL name="db label" id="b9b3cedf2b541262" memberName="dbLabel2" virtualName=""
explicitFocusOrder="0" pos="368 88 40 40" textCol="ff007f00" explicitFocusOrder="0" pos="368 96 40 40" textCol="ff007f00"
outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB/&#10;8ve&#10;" outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB/&#10;8ve&#10;"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0" editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/> fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
<GROUPCOMPONENT name="new group" id="93b9aaeb75040aed" memberName="groupComponent2" <GROUPCOMPONENT name="new group" id="93b9aaeb75040aed" memberName="groupComponent2"
virtualName="" explicitFocusOrder="0" pos="16 320 392 296" outlinecol="ff007f00" virtualName="" explicitFocusOrder="0" pos="16 352 400 320" outlinecol="ff007f00"
textcol="ff007f00" title="Carrier" textpos="33"/> textcol="ff007f00" title="Carrier" textpos="33"/>
<COMBOBOX name="frequency combo box" id="30b8c81b6bd2a17" memberName="frequencyComboBox2" <COMBOBOX name="frequency combo box" id="30b8c81b6bd2a17" memberName="frequencyComboBox2"
virtualName="" explicitFocusOrder="0" pos="120 392 72 24" editable="0" virtualName="" explicitFocusOrder="0" pos="128 424 72 24" editable="0"
layout="33" items="" textWhenNonSelected="" textWhenNoItems="(no choices)"/> layout="33" items="" textWhenNonSelected="" textWhenNoItems="(no choices)"/>
<LABEL name="frequency label" id="65d58d2259c13bf1" memberName="frequencyLabel3" <LABEL name="frequency label" id="65d58d2259c13bf1" memberName="frequencyLabel3"
virtualName="" explicitFocusOrder="0" pos="16 392 96 24" textCol="ff007f00" virtualName="" explicitFocusOrder="0" pos="32 424 80 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Frequency" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="Frequency" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="33"/>
<SLIDER name="a slider" id="d6d2f4556ea9394" memberName="aSlider2" virtualName="" <SLIDER name="a slider" id="d6d2f4556ea9394" memberName="aSlider2" virtualName=""
explicitFocusOrder="0" pos="40 504 48 72" thumbcol="ff00af00" explicitFocusOrder="0" pos="40 536 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical" textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="a label" id="9ec6412cc79720bc" memberName="aLabel2" virtualName="" <LABEL name="a label" id="9ec6412cc79720bc" memberName="aLabel2" virtualName=""
explicitFocusOrder="0" pos="40 576 48 24" textCol="ff007f00" explicitFocusOrder="0" pos="40 608 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="A" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="A" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="d slider" id="4a1f1b6038500f67" memberName="dSlider2" virtualName="" <SLIDER name="d slider" id="4a1f1b6038500f67" memberName="dSlider2" virtualName=""
explicitFocusOrder="0" pos="104 504 48 72" thumbcol="ff00af00" explicitFocusOrder="0" pos="104 536 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical" textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="d label" id="10231adaf9e23e14" memberName="dLabel3" virtualName="" <LABEL name="d label" id="10231adaf9e23e14" memberName="dLabel3" virtualName=""
explicitFocusOrder="0" pos="104 576 48 24" textCol="ff007f00" explicitFocusOrder="0" pos="104 608 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="D" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="D" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="s slider" id="2fc057248a815958" memberName="sSlider2" virtualName="" <SLIDER name="s slider" id="2fc057248a815958" memberName="sSlider2" virtualName=""
explicitFocusOrder="0" pos="168 504 48 72" thumbcol="ff00af00" explicitFocusOrder="0" pos="168 536 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical" textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="d label" id="5b881f2381defac" memberName="dLabel4" virtualName="" <LABEL name="d label" id="5b881f2381defac" memberName="dLabel4" virtualName=""
explicitFocusOrder="0" pos="168 576 48 24" textCol="ff007f00" explicitFocusOrder="0" pos="168 608 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="S" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="S" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="r slider" id="5474ad005fb58e97" memberName="rSlider2" virtualName="" <SLIDER name="r slider" id="5474ad005fb58e97" memberName="rSlider2" virtualName=""
explicitFocusOrder="0" pos="232 504 48 72" thumbcol="ff00af00" explicitFocusOrder="0" pos="232 536 48 72" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical" textboxhighlight="ff00af00" min="0" max="15" int="1" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="r label" id="ca2834438bee82a9" memberName="rLabel2" virtualName="" <LABEL name="r label" id="ca2834438bee82a9" memberName="rLabel2" virtualName=""
explicitFocusOrder="0" pos="232 576 48 24" textCol="ff007f00" explicitFocusOrder="0" pos="232 608 48 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="R" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="R" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="attenuation slider" id="edb48da87d7535dd" memberName="attenuationSlider2" <SLIDER name="attenuation slider" id="edb48da87d7535dd" memberName="attenuationSlider2"
virtualName="" explicitFocusOrder="0" pos="296 464 72 112" thumbcol="ff00af00" virtualName="" explicitFocusOrder="0" pos="304 496 72 112" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="-47.25" max="0" int="0.75" style="LinearVertical" textboxhighlight="ff00af00" min="-47.25" max="0" int="0.75" style="LinearVertical"
textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="64" textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="64"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="attenuation label" id="958314f88253f461" memberName="attenuationLabel2" <LABEL name="attenuation label" id="958314f88253f461" memberName="attenuationLabel2"
virtualName="" explicitFocusOrder="0" pos="296 576 96 24" textCol="ff007f00" virtualName="" explicitFocusOrder="0" pos="304 608 96 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Attenuation" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="Attenuation" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="36"/>
<LABEL name="db label" id="7efc6195ef5e25d1" memberName="dbLabel3" virtualName="" <LABEL name="db label" id="7efc6195ef5e25d1" memberName="dbLabel3" virtualName=""
explicitFocusOrder="0" pos="360 552 40 24" textCol="ff007f00" explicitFocusOrder="0" pos="368 584 40 24" textCol="ff007f00"
outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB" outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0" editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/> fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
<IMAGEBUTTON name="sine image button" id="27e01d31ba835965" memberName="sineImageButton2" <IMAGEBUTTON name="sine image button" id="27e01d31ba835965" memberName="sineImageButton2"
virtualName="" explicitFocusOrder="0" pos="120 352 34 30" tooltip="sine" virtualName="" explicitFocusOrder="0" pos="120 384 34 30" tooltip="sine"
buttonText="Sine" connectedEdges="0" needsCallback="1" radioGroupId="2" buttonText="Sine" connectedEdges="0" needsCallback="1" radioGroupId="2"
keepProportions="1" resourceNormal="full_sine_png" opacityNormal="0.5" keepProportions="1" resourceNormal="full_sine_png" opacityNormal="0.5"
colourNormal="0" resourceOver="" opacityOver="0.5" colourOver="0" colourNormal="0" resourceOver="" opacityOver="0.5" colourOver="0"
resourceDown="" opacityDown="1" colourDown="0"/> resourceDown="" opacityDown="1" colourDown="0"/>
<IMAGEBUTTON name="half sine image button" id="6e9afdb08dd4edac" memberName="halfsineImageButton2" <IMAGEBUTTON name="half sine image button" id="6e9afdb08dd4edac" memberName="halfsineImageButton2"
virtualName="" explicitFocusOrder="0" pos="176 352 34 30" tooltip="half sine" virtualName="" explicitFocusOrder="0" pos="176 384 34 30" tooltip="half sine"
buttonText="Half Sine" connectedEdges="0" needsCallback="1" radioGroupId="2" buttonText="Half Sine" connectedEdges="0" needsCallback="1" radioGroupId="2"
keepProportions="1" resourceNormal="half_sine_png" opacityNormal="0.5" keepProportions="1" resourceNormal="half_sine_png" opacityNormal="0.5"
colourNormal="0" resourceOver="" opacityOver="0.5" colourOver="0" colourNormal="0" resourceOver="" opacityOver="0.5" colourOver="0"
resourceDown="" opacityDown="1" colourDown="0"/> resourceDown="" opacityDown="1" colourDown="0"/>
<IMAGEBUTTON name="abs sine image button" id="361941cfa04130c1" memberName="abssineImageButton2" <IMAGEBUTTON name="abs sine image button" id="361941cfa04130c1" memberName="abssineImageButton2"
virtualName="" explicitFocusOrder="0" pos="232 352 34 30" tooltip="abs sine" virtualName="" explicitFocusOrder="0" pos="232 384 34 30" tooltip="abs sine"
buttonText="Abs Sine" connectedEdges="0" needsCallback="1" radioGroupId="2" buttonText="Abs Sine" connectedEdges="0" needsCallback="1" radioGroupId="2"
keepProportions="1" resourceNormal="abs_sine_png" opacityNormal="0.5" keepProportions="1" resourceNormal="abs_sine_png" opacityNormal="0.5"
colourNormal="0" resourceOver="" opacityOver="0.5" colourOver="0" colourNormal="0" resourceOver="" opacityOver="0.5" colourOver="0"
resourceDown="" opacityDown="1" colourDown="0"/> resourceDown="" opacityDown="1" colourDown="0"/>
<IMAGEBUTTON name="quarter sine image button" id="3fa62f49fdd1a41f" memberName="quartersineImageButton2" <IMAGEBUTTON name="quarter sine image button" id="3fa62f49fdd1a41f" memberName="quartersineImageButton2"
virtualName="" explicitFocusOrder="0" pos="288 352 34 30" tooltip="quarter sine" virtualName="" explicitFocusOrder="0" pos="288 384 34 30" tooltip="quarter sine"
buttonText="Quarter Sine" connectedEdges="0" needsCallback="1" buttonText="Quarter Sine" connectedEdges="0" needsCallback="1"
radioGroupId="2" keepProportions="1" resourceNormal="quarter_sine_png" radioGroupId="2" keepProportions="1" resourceNormal="quarter_sine_png"
opacityNormal="0.5" colourNormal="0" resourceOver="" opacityOver="0.5" opacityNormal="0.5" colourNormal="0" resourceOver="" opacityOver="0.5"
colourOver="0" resourceDown="" opacityDown="1" colourDown="0"/> colourOver="0" resourceDown="" opacityDown="1" colourDown="0"/>
<LABEL name="wave label" id="c810628f3c772781" memberName="waveLabel2" <LABEL name="wave label" id="c810628f3c772781" memberName="waveLabel2"
virtualName="" explicitFocusOrder="0" pos="16 352 96 24" textCol="ff007f00" virtualName="" explicitFocusOrder="0" pos="32 384 80 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Wave" editableSingleClick="0" edTextCol="ff000000" edBkgCol="0" labelText="Wave" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font" editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/> fontsize="15" bold="0" italic="0" justification="33"/>
<TOGGLEBUTTON name="tremolo button" id="a517934e39704073" memberName="tremoloButton2" <TOGGLEBUTTON name="tremolo button" id="a517934e39704073" memberName="tremoloButton2"
virtualName="" explicitFocusOrder="0" pos="40 432 96 24" txtcol="ff007f00" virtualName="" explicitFocusOrder="0" pos="152 464 96 24" txtcol="ff007f00"
buttonText="Tremolo" connectedEdges="0" needsCallback="1" radioGroupId="0" buttonText="Tremolo" connectedEdges="0" needsCallback="1" radioGroupId="0"
state="0"/> state="0"/>
<TOGGLEBUTTON name="vibrato button" id="736b965a99641077" memberName="vibratoButton2" <TOGGLEBUTTON name="vibrato button" id="736b965a99641077" memberName="vibratoButton2"
@ -1229,29 +1356,75 @@ BEGIN_JUCER_METADATA
buttonText="Vibrato" connectedEdges="0" needsCallback="1" radioGroupId="0" buttonText="Vibrato" connectedEdges="0" needsCallback="1" radioGroupId="0"
state="0"/> state="0"/>
<TOGGLEBUTTON name="sustain button" id="a3832cb840cae1f2" memberName="sustainButton2" <TOGGLEBUTTON name="sustain button" id="a3832cb840cae1f2" memberName="sustainButton2"
virtualName="" explicitFocusOrder="0" pos="128 432 96 24" txtcol="ff007f00" virtualName="" explicitFocusOrder="0" pos="40 632 96 24" txtcol="ff007f00"
buttonText="Sustain" connectedEdges="0" needsCallback="1" radioGroupId="0" buttonText="Sustain" connectedEdges="0" needsCallback="1" radioGroupId="0"
state="0"/> state="0"/>
<TOGGLEBUTTON name="keyscale env button" id="4cd968dae86d143c" memberName="keyscaleEnvButton2" <TOGGLEBUTTON name="keyscale env button" id="4cd968dae86d143c" memberName="keyscaleEnvButton2"
virtualName="" explicitFocusOrder="0" pos="128 464 184 24" txtcol="ff007f00" virtualName="" explicitFocusOrder="0" pos="136 632 184 24" txtcol="ff007f00"
buttonText="Keyscale Envelope Rate" connectedEdges="0" needsCallback="1" buttonText="Keyscale Envelope Rate" connectedEdges="0" needsCallback="1"
radioGroupId="0" state="0"/> radioGroupId="0" state="0"/>
<SLIDER name="keyscale slider" id="57fc6e489a26a985" memberName="keyscaleSlider2" <SLIDER name="keyscale slider" id="57fc6e489a26a985" memberName="keyscaleSlider2"
virtualName="" explicitFocusOrder="0" pos="256 408 112 24" thumbcol="ff00af00" virtualName="" explicitFocusOrder="0" pos="256 448 112 24" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000" trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="-6" max="0" int="1.5" style="LinearHorizontal" textboxhighlight="ff00af00" min="-6" max="0" int="1.5" style="LinearHorizontal"
textBoxPos="TextBoxLeft" textBoxEditable="1" textBoxWidth="44" textBoxPos="TextBoxLeft" textBoxEditable="1" textBoxWidth="44"
textBoxHeight="20" skewFactor="1"/> textBoxHeight="20" skewFactor="1"/>
<LABEL name="frequency label" id="a1e2dd50c2835d73" memberName="frequencyLabel4" <LABEL name="frequency label" id="a1e2dd50c2835d73" memberName="frequencyLabel4"
virtualName="" explicitFocusOrder="0" pos="248 432 152 24" textCol="ff007f00" virtualName="" explicitFocusOrder="0" pos="248 424 152 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Keyscale Attenuation" edTextCol="ff000000" edBkgCol="0" labelText="Keyscale Attenuation"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0" editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/> fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
<LABEL name="db label" id="82d5ab731de2099e" memberName="dbLabel4" virtualName="" <LABEL name="db label" id="82d5ab731de2099e" memberName="dbLabel4" virtualName=""
explicitFocusOrder="0" pos="368 400 40 40" textCol="ff007f00" explicitFocusOrder="0" pos="368 440 40 40" textCol="ff007f00"
outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB/&#10;8ve&#10;" outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB/&#10;8ve&#10;"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0" editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/> fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
<GROUPCOMPONENT name="new group" id="7392f7d1c8cf6e74" memberName="groupComponent3"
virtualName="" explicitFocusOrder="0" pos="16 680 400 96" outlinecol="ff007f00"
textcol="ff007f00" title="Common" textpos="33"/>
<SLIDER name="tremolo slider" id="ab64abee7ac8874b" memberName="tremoloSlider"
virtualName="" explicitFocusOrder="0" pos="48 712 112 24" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="1" max="4.8" int="3.8" style="LinearHorizontal"
textBoxPos="TextBoxLeft" textBoxEditable="1" textBoxWidth="44"
textBoxHeight="20" skewFactor="1"/>
<LABEL name="frequency label" id="134ce8f87da62b88" memberName="frequencyLabel5"
virtualName="" explicitFocusOrder="0" pos="40 736 152 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Tremolo Depth&#10;"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
<LABEL name="db label" id="720df8e7c502dd91" memberName="dbLabel5" virtualName=""
explicitFocusOrder="0" pos="160 704 40 40" textCol="ff007f00"
outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="dB"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="vibrato slider" id="b45a1f20f22cf5ca" memberName="vibratoSlider"
virtualName="" explicitFocusOrder="0" pos="233 713 112 24" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="7" max="14" int="7" style="LinearHorizontal"
textBoxPos="TextBoxLeft" textBoxEditable="1" textBoxWidth="44"
textBoxHeight="20" skewFactor="1"/>
<LABEL name="frequency label" id="1412b9d14e37bcbe" memberName="frequencyLabel6"
virtualName="" explicitFocusOrder="0" pos="225 737 152 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Vibrato Depth" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="36"/>
<LABEL name="db label" id="e13e0aff8b974a36" memberName="dbLabel6" virtualName=""
explicitFocusOrder="0" pos="345 705 47 40" textCol="ff007f00"
outlineCol="0" edTextCol="ff000000" edBkgCol="0" labelText="cents&#10;"
editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
<SLIDER name="feedback slider" id="f9d22e12f5e417e4" memberName="feedbackSlider"
virtualName="" explicitFocusOrder="0" pos="120 168 136 24" thumbcol="ff00af00"
trackcol="7f007f00" textboxtext="ff007f00" textboxbkgd="ff000000"
textboxhighlight="ff00af00" min="0" max="7" int="1" style="LinearHorizontal"
textBoxPos="TextBoxRight" textBoxEditable="1" textBoxWidth="44"
textBoxHeight="20" skewFactor="1"/>
<LABEL name="frequency label" id="880eaf14af62578a" memberName="frequencyLabel7"
virtualName="" explicitFocusOrder="0" pos="32 168 80 24" textCol="ff007f00"
edTextCol="ff000000" edBkgCol="0" labelText="Feedback" editableSingleClick="0"
editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
fontsize="15" bold="0" italic="0" justification="33"/>
</JUCER_COMPONENT> </JUCER_COMPONENT>
END_JUCER_METADATA END_JUCER_METADATA

View file

@ -124,6 +124,15 @@ private:
ScopedPointer<Slider> keyscaleSlider2; ScopedPointer<Slider> keyscaleSlider2;
ScopedPointer<Label> frequencyLabel4; ScopedPointer<Label> frequencyLabel4;
ScopedPointer<Label> dbLabel4; ScopedPointer<Label> dbLabel4;
ScopedPointer<GroupComponent> groupComponent3;
ScopedPointer<Slider> tremoloSlider;
ScopedPointer<Label> frequencyLabel5;
ScopedPointer<Label> dbLabel5;
ScopedPointer<Slider> vibratoSlider;
ScopedPointer<Label> frequencyLabel6;
ScopedPointer<Label> dbLabel6;
ScopedPointer<Slider> feedbackSlider;
ScopedPointer<Label> frequencyLabel7;
//============================================================================== //==============================================================================

View file

@ -50,10 +50,16 @@ The VST was written using Juce, a cross-platform C++ library inspired by the Jav
The code I wrote is basically conversion glue between the DOSBox OPL emulator, the VST interface, and human friendly values. The code I wrote is basically conversion glue between the DOSBox OPL emulator, the VST interface, and human friendly values.
## Bulding ## ## Building ##
You need Juce and Microsoft Visual Studio to build this plugin. I used Visual Studio Express 2012. So far I've only built under Windows. Thanks to Juce, it should be possible to build under OSX and Linux too. Volunteers to build OSX/Linux releases would be appreciated (XCode required for OSX).
http://www.juce.com/downloads ### Windows Build Instructions ###
After downloading the code, build the "Introjucer" app and open JuceOPLVSTI.jucer (this is the project file). Go to File and hit "Save Project and Open in Visual Studio". This will generate a bunch of source code for you in the JuceLibraryCode directory, and a Visual Studio project file in the Builds directory. After that you should be able to build the project. 1) Download Juce (http://www.juce.com/)
2) Build and run "The Introjucer"
3) Open JuceOPLVSTi.jucer
- Make any changes to the GUI layout and components here (PluginEditor.cpp).
- Save PluginEditor.cpp if modified
4) Hit "Save Project and Open in Visual Studio". I used Visual Studio Express 2012.
5) Build!