diff --git a/Source/FloatParameter.h b/Source/FloatParameter.h old mode 100755 new mode 100644 index 944459e..98f93c2 --- a/Source/FloatParameter.h +++ b/Source/FloatParameter.h @@ -4,14 +4,14 @@ class FloatParameter { public: - FloatParameter(String name); + FloatParameter(juce::String name); virtual ~FloatParameter(void); float getParameter(void); void setParameter(float value); - String getName(void); - virtual String getParameterText(void) = 0; + juce::String getName(void); + virtual juce::String getParameterText(void) = 0; protected: float value; private: - String name; + juce::String name; }; diff --git a/Source/IntFloatParameter.cpp b/Source/IntFloatParameter.cpp index 284ab77..de47938 100755 --- a/Source/IntFloatParameter.cpp +++ b/Source/IntFloatParameter.cpp @@ -1,7 +1,7 @@ #include "IntFloatParameter.h" -IntFloatParameter::IntFloatParameter(String name, int min, int max) +IntFloatParameter::IntFloatParameter(juce::String name, int min, int max) :FloatParameter(name) { this->min = min; @@ -30,7 +30,7 @@ void IntFloatParameter::setParameterValue(int i) this->value = 1.0f; } -String IntFloatParameter::getParameterText(void) +juce::String IntFloatParameter::getParameterText(void) { - return String(this->getParameterValue()); + return juce::String(this->getParameterValue()); } diff --git a/Source/IntFloatParameter.h b/Source/IntFloatParameter.h index b9735ae..a7a7d0a 100755 --- a/Source/IntFloatParameter.h +++ b/Source/IntFloatParameter.h @@ -4,9 +4,9 @@ class IntFloatParameter : public FloatParameter { public: - IntFloatParameter(String name, int min, int max); + IntFloatParameter(juce::String name, int min, int max); ~IntFloatParameter(void); - String getParameterText(void); + juce::String getParameterText(void); int getParameterValue(void); void setParameterValue(int i); private: diff --git a/Source/PluginGui Desktop.cpp b/Source/PluginGui Desktop.cpp new file mode 100644 index 0000000..58244ee --- /dev/null +++ b/Source/PluginGui Desktop.cpp @@ -0,0 +1,5153 @@ +/* + ============================================================================== + + 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: 6.0.5 + + ------------------------------------------------------------------------------ + + The Projucer is part of the JUCE library. + Copyright (c) 2020 - Raw Material Software Limited. + + ============================================================================== +*/ + +//[Headers] You can add your own extra header files here... +//[/Headers] + +#include "PluginGui.h" + + +//[MiscUserDefs] You can add your own user definitions and misc code here... +void PluginGui::updateFromParameters() +{ + emulatorSlider->setValue(processor->getEnumParameter("Emulator"), juce::NotificationType::dontSendNotification); + + sineImageButton->setToggleState(false, dontSendNotification); + halfsineImageButton->setToggleState(false, dontSendNotification); + abssineImageButton->setToggleState(false, dontSendNotification); + quartersineImageButton->setToggleState(false, dontSendNotification); + alternatingsineImageButton->setToggleState(false, dontSendNotification); + camelsineImageButton->setToggleState(false, dontSendNotification); + squareImageButton->setToggleState(false, dontSendNotification); + logsawImageButton->setToggleState(false, dontSendNotification); + switch(processor->getEnumParameter("Modulator Wave")) { + case 0: sineImageButton->setToggleState(true, dontSendNotification); break; + case 1: halfsineImageButton->setToggleState(true, dontSendNotification); break; + case 2: abssineImageButton->setToggleState(true, dontSendNotification); break; + case 3: quartersineImageButton->setToggleState(true, dontSendNotification); break; + case 4: alternatingsineImageButton->setToggleState(true, dontSendNotification); break; + case 5: camelsineImageButton->setToggleState(true, dontSendNotification); break; + case 6: squareImageButton->setToggleState(true, dontSendNotification); break; + case 7: logsawImageButton->setToggleState(true, dontSendNotification); break; + } + + sineImageButton2->setToggleState(false, dontSendNotification); + halfsineImageButton2->setToggleState(false, dontSendNotification); + abssineImageButton2->setToggleState(false, dontSendNotification); + quartersineImageButton2->setToggleState(false, dontSendNotification); + alternatingsineImageButton2->setToggleState(false, dontSendNotification); + camelsineImageButton2->setToggleState(false, dontSendNotification); + squareImageButton2->setToggleState(false, dontSendNotification); + logsawImageButton2->setToggleState(false, dontSendNotification); + switch(processor->getEnumParameter("Carrier Wave")) { + case 0: sineImageButton2->setToggleState(true, dontSendNotification); break; + case 1: halfsineImageButton2->setToggleState(true, dontSendNotification); break; + case 2: abssineImageButton2->setToggleState(true, dontSendNotification); break; + case 3: quartersineImageButton2->setToggleState(true, dontSendNotification); break; + case 4: alternatingsineImageButton2->setToggleState(true, dontSendNotification); break; + case 5: camelsineImageButton2->setToggleState(true, dontSendNotification); break; + case 6: squareImageButton2->setToggleState(true, dontSendNotification); break; + case 7: logsawImageButton2->setToggleState(true, dontSendNotification); break; + } + + fmButton->setToggleState(false, dontSendNotification); + additiveButton->setToggleState(false, dontSendNotification); + switch (processor->getEnumParameter("Algorithm")) { + case 0: fmButton->setToggleState(true, dontSendNotification); break; + case 1: additiveButton->setToggleState(true, dontSendNotification); break; + } + + disablePercussionButton->setToggleState(false, dontSendNotification); + bassDrumButton->setToggleState(false, dontSendNotification); + snareDrumButton->setToggleState(false, dontSendNotification); + tomTomButton->setToggleState(false, dontSendNotification); + cymbalButton->setToggleState(false, dontSendNotification); + hiHatButton->setToggleState(false, dontSendNotification); + switch (processor->getEnumParameter("Percussion Mode")) { + case 0: disablePercussionButton->setToggleState(true, dontSendNotification); break; + case 1: bassDrumButton->setToggleState(true, dontSendNotification); break; + case 2: snareDrumButton->setToggleState(true, dontSendNotification); break; + case 3: tomTomButton->setToggleState(true, dontSendNotification); break; + case 4: cymbalButton->setToggleState(true, dontSendNotification); break; + case 5: hiHatButton->setToggleState(true, dontSendNotification); break; + } + + //DBG(" multipler " << processor->getEnumParameter("Modulator Frequency Multiplier")); + + int val = processor->getEnumParameter("Modulator Frequency Multiplier"); + if (val <=10 ){ + frequencyComboBox->setSelectedItemIndex (val, + sendNotificationAsync); + } + else if (val == 12){ + frequencyComboBox->setSelectedItemIndex (11, + sendNotificationAsync); + } + else if (val == 15){ + frequencyComboBox->setSelectedItemIndex (12, + sendNotificationAsync); + } + val = processor->getEnumParameter("Carrier Frequency Multiplier"); + if (val <=10 ){ + frequencyComboBox2->setSelectedItemIndex (val, + sendNotificationAsync); + } + else if (val == 12){ + frequencyComboBox2->setSelectedItemIndex (11, + sendNotificationAsync); + } + else if (val == 15){ + frequencyComboBox2->setSelectedItemIndex (12, + sendNotificationAsync); + } + + attenuationSlider->setValue(processor->getEnumParameter("Modulator Attenuation") * -0.75, juce::NotificationType::dontSendNotification); + attenuationSlider2->setValue(processor->getEnumParameter("Carrier Attenuation") * -0.75, juce::NotificationType::dontSendNotification); + + aSlider->setValue(processor->getIntParameter("Modulator Attack"), juce::NotificationType::dontSendNotification); + dSlider->setValue(processor->getIntParameter("Modulator Decay"), juce::NotificationType::dontSendNotification); + sSlider->setValue(processor->getIntParameter("Modulator Sustain Level"), juce::NotificationType::dontSendNotification); + rSlider->setValue(processor->getIntParameter("Modulator Release"), juce::NotificationType::dontSendNotification); + aSlider2->setValue(processor->getIntParameter("Carrier Attack"), juce::NotificationType::dontSendNotification); + dSlider2->setValue(processor->getIntParameter("Carrier Decay"), juce::NotificationType::dontSendNotification); + sSlider2->setValue(processor->getIntParameter("Carrier Sustain Level"), juce::NotificationType::dontSendNotification); + rSlider2->setValue(processor->getIntParameter("Carrier Release"), juce::NotificationType::dontSendNotification); + +/// Jeff-Russ replaced the second arg of "true" with "sendNotificationAsync": + + keyscaleAttenuationComboBox->setSelectedItemIndex ( + processor->getEnumParameter("Modulator Keyscale Level"), + sendNotificationAsync); + keyscaleAttenuationComboBox2->setSelectedItemIndex ( + processor->getEnumParameter("Carrier Keyscale Level"), + sendNotificationAsync); + + + tremoloButton->setToggleState(processor->getBoolParameter("Modulator Tremolo"), dontSendNotification); + vibratoButton->setToggleState(processor->getBoolParameter("Modulator Vibrato"), dontSendNotification); + sustainButton->setToggleState(processor->getBoolParameter("Modulator Sustain"), dontSendNotification); + keyscaleEnvButton->setToggleState(processor->getBoolParameter("Modulator Keyscale Rate"), dontSendNotification); + + tremoloButton2->setToggleState(processor->getBoolParameter("Carrier Tremolo"), dontSendNotification); + vibratoButton2->setToggleState(processor->getBoolParameter("Carrier Vibrato"), dontSendNotification); + sustainButton2->setToggleState(processor->getBoolParameter("Carrier Sustain"), dontSendNotification); + keyscaleEnvButton2->setToggleState(processor->getBoolParameter("Carrier Keyscale Rate"), dontSendNotification); + + vibratoSlider->setValue(processor->getEnumParameter("Vibrato Depth") * 7.0 + 7.0, juce::NotificationType::dontSendNotification); + tremoloSlider->setValue(processor->getEnumParameter("Tremolo Depth") * 3.8 + 1.0, juce::NotificationType::dontSendNotification); + feedbackSlider->setValue(processor->getIntParameter("Modulator Feedback"), juce::NotificationType::dontSendNotification); + +/// Jeff-Russ replaced the second arg of "true" with "sendNotificationAsync": + + velocityComboBox->setSelectedItemIndex ( + processor->getEnumParameter("Modulator Velocity Sensitivity"), + sendNotificationAsync); + velocityComboBox2->setSelectedItemIndex ( + processor->getEnumParameter("Carrier Velocity Sensitivity"), + sendNotificationAsync); + + tooltipWindow.setColour(tooltipWindow.backgroundColourId, Colour(0x0)); + tooltipWindow.setColour(tooltipWindow.textColourId, Colour(COLOUR_MID)); + + if (processor->lastLoadFile.length() > 0) { + File file(processor->lastLoadFile); + loadButton->setButtonText(file.getFileNameWithoutExtension()); + } +} + +void PluginGui::setRecordButtonState(bool recording) { + if (recording) { + recordButton->setColour(TextButton::buttonColourId, Colour(COLOUR_RECORDING)); + recordButton->setButtonText("Recording.."); + recordButton->setColour(ToggleButton::textColourId, Colour(COLOUR_RECORDING)); + } else { + recordButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + recordButton->setButtonText("Record to DRO"); + recordButton->setColour(ToggleButton::textColourId, Colour(COLOUR_MID)); + } +} + +//[/MiscUserDefs] + +//============================================================================== +PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) +{ + //[Constructor_pre] You can add your own custom stuff here.. + + //[/Constructor_pre] + + groupComponent2.reset (new juce::GroupComponent ("new group", + TRANS("Carrier"))); + addAndMakeVisible (groupComponent2.get()); + groupComponent2->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent2->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent2->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); + + groupComponent2->setBounds (440, 88, 408, 344); + + groupComponent4.reset (new juce::GroupComponent ("new group", + TRANS("Channels"))); + addAndMakeVisible (groupComponent4.get()); + groupComponent4->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent4->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent4->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); + + groupComponent4->setBounds (16, 8, 832, 64); + + groupComponent11.reset (new juce::GroupComponent ("new group", + TRANS("Percussion"))); + addAndMakeVisible (groupComponent11.get()); + groupComponent11->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent11->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent11->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); + + groupComponent11->setBounds (496, 440, 192, 120); + + groupComponent10.reset (new juce::GroupComponent ("new group", + TRANS("Algorithm"))); + addAndMakeVisible (groupComponent10.get()); + groupComponent10->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent10->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent10->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); + + groupComponent10->setBounds (280, 440, 200, 120); + + groupComponent9.reset (new juce::GroupComponent ("new group", + TRANS("File"))); + addAndMakeVisible (groupComponent9.get()); + groupComponent9->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent9->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent9->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); + + groupComponent9->setBounds (704, 440, 144, 120); + + groupComponent.reset (new juce::GroupComponent ("new group", + TRANS("Modulator"))); + addAndMakeVisible (groupComponent.get()); + groupComponent->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); + + groupComponent->setBounds (16, 88, 408, 344); + + frequencyComboBox.reset (new juce::ComboBox ("frequency combo box")); + addAndMakeVisible (frequencyComboBox.get()); + frequencyComboBox->setEditableText (false); + frequencyComboBox->setJustificationType (juce::Justification::centredLeft); + frequencyComboBox->setTextWhenNothingSelected (juce::String()); + frequencyComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + frequencyComboBox->addListener (this); + + frequencyComboBox->setBounds (200, 168, 64, 24); + + frequencyLabel.reset (new juce::Label ("frequency label", + TRANS("Frequency Multiplier"))); + addAndMakeVisible (frequencyLabel.get()); + frequencyLabel->setTooltip (TRANS("Multiplier applied to base note frequency")); + frequencyLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel->setJustificationType (juce::Justification::centredLeft); + frequencyLabel->setEditable (false, false, false); + frequencyLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + frequencyLabel->setBounds (40, 168, 152, 24); + + aSlider.reset (new juce::Slider ("a slider")); + addAndMakeVisible (aSlider.get()); + aSlider->setTooltip (TRANS("Envelope attack rate")); + aSlider->setRange (0, 15, 1); + aSlider->setSliderStyle (juce::Slider::LinearVertical); + aSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); + aSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + aSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + aSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + aSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + aSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + aSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + aSlider->addListener (this); + + aSlider->setBounds (40, 200, 30, 104); + + aLabel.reset (new juce::Label ("a label", + TRANS("A"))); + addAndMakeVisible (aLabel.get()); + aLabel->setTooltip (TRANS("Attack rate")); + aLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + aLabel->setJustificationType (juce::Justification::centred); + aLabel->setEditable (false, false, false); + aLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + aLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + aLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + aLabel->setBounds (40, 304, 30, 24); + + dSlider.reset (new juce::Slider ("d slider")); + addAndMakeVisible (dSlider.get()); + dSlider->setTooltip (TRANS("Envelope decay rate")); + dSlider->setRange (0, 15, 1); + dSlider->setSliderStyle (juce::Slider::LinearVertical); + dSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); + dSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + dSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + dSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + dSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + dSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + dSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + dSlider->addListener (this); + + dSlider->setBounds (88, 200, 30, 104); + + dLabel.reset (new juce::Label ("d label", + TRANS("D"))); + addAndMakeVisible (dLabel.get()); + dLabel->setTooltip (TRANS("Decay rate")); + dLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dLabel->setJustificationType (juce::Justification::centred); + dLabel->setEditable (false, false, false); + dLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dLabel->setBounds (88, 304, 30, 24); + + sSlider.reset (new juce::Slider ("s slider")); + addAndMakeVisible (sSlider.get()); + sSlider->setTooltip (TRANS("Envelope sustain level")); + sSlider->setRange (0, 15, 1); + sSlider->setSliderStyle (juce::Slider::LinearVertical); + sSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); + sSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + sSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + sSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + sSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + sSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + sSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + sSlider->addListener (this); + + sSlider->setBounds (136, 200, 30, 104); + + dLabel2.reset (new juce::Label ("d label", + TRANS("S"))); + addAndMakeVisible (dLabel2.get()); + dLabel2->setTooltip (TRANS("Sustain level")); + dLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dLabel2->setJustificationType (juce::Justification::centred); + dLabel2->setEditable (false, false, false); + dLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dLabel2->setBounds (136, 304, 30, 24); + + rSlider.reset (new juce::Slider ("r slider")); + addAndMakeVisible (rSlider.get()); + rSlider->setTooltip (TRANS("Envelope release rate")); + rSlider->setRange (0, 15, 1); + rSlider->setSliderStyle (juce::Slider::LinearVertical); + rSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); + rSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + rSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + rSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + rSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + rSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + rSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + rSlider->addListener (this); + + rSlider->setBounds (184, 200, 30, 104); + + rLabel.reset (new juce::Label ("r label", + TRANS("R"))); + addAndMakeVisible (rLabel.get()); + rLabel->setTooltip (TRANS("Release rate")); + rLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + rLabel->setJustificationType (juce::Justification::centred); + rLabel->setEditable (false, false, false); + rLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + rLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + rLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + rLabel->setBounds (184, 304, 30, 24); + + attenuationSlider.reset (new juce::Slider ("attenuation slider")); + addAndMakeVisible (attenuationSlider.get()); + attenuationSlider->setRange (-47.25, 0, 0.75); + attenuationSlider->setSliderStyle (juce::Slider::LinearVertical); + attenuationSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 64, 20); + attenuationSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + attenuationSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + attenuationSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + attenuationSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + attenuationSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + attenuationSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + attenuationSlider->addListener (this); + + attenuationSlider->setBounds (328, 184, 56, 142); + + attenuationLabel.reset (new juce::Label ("attenuation label", + TRANS("Attenuation"))); + addAndMakeVisible (attenuationLabel.get()); + attenuationLabel->setTooltip (TRANS("Final output level adjustment")); + attenuationLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel->setJustificationType (juce::Justification::centred); + attenuationLabel->setEditable (false, false, false); + attenuationLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + attenuationLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + attenuationLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + attenuationLabel->setBounds (304, 160, 112, 24); + + dbLabel.reset (new juce::Label ("db label", + TRANS("dB"))); + addAndMakeVisible (dbLabel.get()); + dbLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel->setJustificationType (juce::Justification::centred); + dbLabel->setEditable (false, false, false); + dbLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dbLabel->setBounds (384, 304, 32, 24); + + sineImageButton.reset (new juce::ImageButton ("sine image button")); + addAndMakeVisible (sineImageButton.get()); + sineImageButton->setButtonText (TRANS("Sine")); + sineImageButton->setRadioGroupId (1); + sineImageButton->addListener (this); + + sineImageButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + sineImageButton->setBounds (88, 113, 34, 30); + + halfsineImageButton.reset (new juce::ImageButton ("half sine image button")); + addAndMakeVisible (halfsineImageButton.get()); + halfsineImageButton->setButtonText (TRANS("Half Sine")); + halfsineImageButton->setRadioGroupId (1); + halfsineImageButton->addListener (this); + + halfsineImageButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + halfsineImageButton->setBounds (128, 113, 34, 30); + + abssineImageButton.reset (new juce::ImageButton ("abs sine image button")); + addAndMakeVisible (abssineImageButton.get()); + abssineImageButton->setButtonText (TRANS("Abs Sine")); + abssineImageButton->setRadioGroupId (1); + abssineImageButton->addListener (this); + + abssineImageButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + abssineImageButton->setBounds (168, 113, 34, 30); + + quartersineImageButton.reset (new juce::ImageButton ("quarter sine image button")); + addAndMakeVisible (quartersineImageButton.get()); + quartersineImageButton->setButtonText (TRANS("Quarter Sine")); + quartersineImageButton->setRadioGroupId (1); + quartersineImageButton->addListener (this); + + quartersineImageButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + quartersineImageButton->setBounds (208, 113, 34, 30); + + waveLabel.reset (new juce::Label ("wave label", + TRANS("Wave"))); + addAndMakeVisible (waveLabel.get()); + waveLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + waveLabel->setJustificationType (juce::Justification::centredLeft); + waveLabel->setEditable (false, false, false); + waveLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + waveLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + waveLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + waveLabel->setBounds (32, 115, 48, 24); + + tremoloButton.reset (new juce::ToggleButton ("tremolo button")); + addAndMakeVisible (tremoloButton.get()); + tremoloButton->setTooltip (TRANS("Modulate amplitude at 3.7 Hz")); + tremoloButton->setButtonText (TRANS("Tremolo")); + tremoloButton->addListener (this); + tremoloButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); + + tremoloButton->setBounds (120, 352, 80, 24); + + vibratoButton.reset (new juce::ToggleButton ("vibrato button")); + addAndMakeVisible (vibratoButton.get()); + vibratoButton->setTooltip (TRANS("Modulate frequency at 6.1 Hz")); + vibratoButton->setButtonText (TRANS("Vibrato")); + vibratoButton->addListener (this); + vibratoButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); + + vibratoButton->setBounds (32, 352, 72, 24); + + sustainButton.reset (new juce::ToggleButton ("sustain button")); + addAndMakeVisible (sustainButton.get()); + sustainButton->setTooltip (TRANS("Enable or disable sustain when note is held")); + sustainButton->setButtonText (TRANS("Sustain")); + sustainButton->addListener (this); + sustainButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); + + sustainButton->setBounds (32, 384, 70, 32); + + keyscaleEnvButton.reset (new juce::ToggleButton ("keyscale env button")); + addAndMakeVisible (keyscaleEnvButton.get()); + keyscaleEnvButton->setTooltip (TRANS("Speed up envelope rate with note frequency")); + keyscaleEnvButton->setButtonText (TRANS("Keyscale Env. Rate")); + keyscaleEnvButton->addListener (this); + keyscaleEnvButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); + + keyscaleEnvButton->setBounds (120, 376, 101, 48); + + dbLabel2.reset (new juce::Label ("db label", + TRANS("dB/8ve\n"))); + addAndMakeVisible (dbLabel2.get()); + dbLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel2->setJustificationType (juce::Justification::centred); + dbLabel2->setEditable (false, false, false); + dbLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel2->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dbLabel2->setBounds (792, 712, 72, 16); + + frequencyComboBox2.reset (new juce::ComboBox ("frequency combo box")); + addAndMakeVisible (frequencyComboBox2.get()); + frequencyComboBox2->setEditableText (false); + frequencyComboBox2->setJustificationType (juce::Justification::centredLeft); + frequencyComboBox2->setTextWhenNothingSelected (juce::String()); + frequencyComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + frequencyComboBox2->addListener (this); + + frequencyComboBox2->setBounds (624, 168, 66, 24); + + frequencyLabel3.reset (new juce::Label ("frequency label", + TRANS("Frequency Multiplier"))); + addAndMakeVisible (frequencyLabel3.get()); + frequencyLabel3->setTooltip (TRANS("Multiplier applied to base note frequency")); + frequencyLabel3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel3->setJustificationType (juce::Justification::centredLeft); + frequencyLabel3->setEditable (false, false, false); + frequencyLabel3->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel3->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + frequencyLabel3->setBounds (464, 168, 152, 24); + + aSlider2.reset (new juce::Slider ("a slider")); + addAndMakeVisible (aSlider2.get()); + aSlider2->setRange (0, 15, 1); + aSlider2->setSliderStyle (juce::Slider::LinearVertical); + aSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); + aSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + aSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + aSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + aSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + aSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + aSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + aSlider2->addListener (this); + + aSlider2->setBounds (464, 200, 30, 104); + + aLabel2.reset (new juce::Label ("a label", + TRANS("A"))); + addAndMakeVisible (aLabel2.get()); + aLabel2->setTooltip (TRANS("Attack rate")); + aLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + aLabel2->setJustificationType (juce::Justification::centred); + aLabel2->setEditable (false, false, false); + aLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + aLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + aLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + aLabel2->setBounds (464, 304, 30, 24); + + dSlider2.reset (new juce::Slider ("d slider")); + addAndMakeVisible (dSlider2.get()); + dSlider2->setRange (0, 15, 1); + dSlider2->setSliderStyle (juce::Slider::LinearVertical); + dSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); + dSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + dSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + dSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + dSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + dSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + dSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + dSlider2->addListener (this); + + dSlider2->setBounds (512, 200, 30, 104); + + dLabel3.reset (new juce::Label ("d label", + TRANS("D"))); + addAndMakeVisible (dLabel3.get()); + dLabel3->setTooltip (TRANS("Decay rate")); + dLabel3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dLabel3->setJustificationType (juce::Justification::centred); + dLabel3->setEditable (false, false, false); + dLabel3->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dLabel3->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dLabel3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dLabel3->setBounds (512, 304, 30, 24); + + sSlider2.reset (new juce::Slider ("s slider")); + addAndMakeVisible (sSlider2.get()); + sSlider2->setRange (0, 15, 1); + sSlider2->setSliderStyle (juce::Slider::LinearVertical); + sSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); + sSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + sSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + sSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + sSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + sSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + sSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + sSlider2->addListener (this); + + sSlider2->setBounds (560, 200, 30, 104); + + dLabel4.reset (new juce::Label ("d label", + TRANS("S"))); + addAndMakeVisible (dLabel4.get()); + dLabel4->setTooltip (TRANS("Sustain level")); + dLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dLabel4->setJustificationType (juce::Justification::centred); + dLabel4->setEditable (false, false, false); + dLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dLabel4->setBounds (560, 304, 30, 24); + + rSlider2.reset (new juce::Slider ("r slider")); + addAndMakeVisible (rSlider2.get()); + rSlider2->setRange (0, 15, 1); + rSlider2->setSliderStyle (juce::Slider::LinearVertical); + rSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); + rSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + rSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + rSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + rSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + rSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + rSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + rSlider2->addListener (this); + + rSlider2->setBounds (608, 200, 30, 104); + + rLabel2.reset (new juce::Label ("r label", + TRANS("R"))); + addAndMakeVisible (rLabel2.get()); + rLabel2->setTooltip (TRANS("Release rate")); + rLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + rLabel2->setJustificationType (juce::Justification::centred); + rLabel2->setEditable (false, false, false); + rLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + rLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + rLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + rLabel2->setBounds (608, 304, 30, 24); + + attenuationSlider2.reset (new juce::Slider ("attenuation slider")); + addAndMakeVisible (attenuationSlider2.get()); + attenuationSlider2->setRange (-47.25, 0, 0.75); + attenuationSlider2->setSliderStyle (juce::Slider::LinearVertical); + attenuationSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 64, 20); + attenuationSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + attenuationSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + attenuationSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + attenuationSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + attenuationSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + attenuationSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + attenuationSlider2->addListener (this); + + attenuationSlider2->setBounds (752, 184, 56, 142); + + attenuationLabel2.reset (new juce::Label ("attenuation label", + TRANS("Attenuation"))); + addAndMakeVisible (attenuationLabel2.get()); + attenuationLabel2->setTooltip (TRANS("Final output level adjustment")); + attenuationLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel2->setJustificationType (juce::Justification::centred); + attenuationLabel2->setEditable (false, false, false); + attenuationLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + attenuationLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + attenuationLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + attenuationLabel2->setBounds (728, 160, 112, 24); + + dbLabel3.reset (new juce::Label ("db label", + TRANS("dB"))); + addAndMakeVisible (dbLabel3.get()); + dbLabel3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel3->setJustificationType (juce::Justification::centred); + dbLabel3->setEditable (false, false, false); + dbLabel3->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel3->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel3->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dbLabel3->setBounds (800, 304, 40, 24); + + sineImageButton2.reset (new juce::ImageButton ("sine image button")); + addAndMakeVisible (sineImageButton2.get()); + sineImageButton2->setButtonText (TRANS("Sine")); + sineImageButton2->setRadioGroupId (2); + sineImageButton2->addListener (this); + + sineImageButton2->setImages (false, true, true, + juce::ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + sineImageButton2->setBounds (512, 113, 34, 30); + + halfsineImageButton2.reset (new juce::ImageButton ("half sine image button")); + addAndMakeVisible (halfsineImageButton2.get()); + halfsineImageButton2->setButtonText (TRANS("Half Sine")); + halfsineImageButton2->setRadioGroupId (2); + halfsineImageButton2->addListener (this); + + halfsineImageButton2->setImages (false, true, true, + juce::ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + halfsineImageButton2->setBounds (552, 113, 34, 30); + + abssineImageButton2.reset (new juce::ImageButton ("abs sine image button")); + addAndMakeVisible (abssineImageButton2.get()); + abssineImageButton2->setButtonText (TRANS("Abs Sine")); + abssineImageButton2->setRadioGroupId (2); + abssineImageButton2->addListener (this); + + abssineImageButton2->setImages (false, true, true, + juce::ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + abssineImageButton2->setBounds (592, 113, 34, 30); + + quartersineImageButton2.reset (new juce::ImageButton ("quarter sine image button")); + addAndMakeVisible (quartersineImageButton2.get()); + quartersineImageButton2->setButtonText (TRANS("Quarter Sine")); + quartersineImageButton2->setRadioGroupId (2); + quartersineImageButton2->addListener (this); + + quartersineImageButton2->setImages (false, true, true, + juce::ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + quartersineImageButton2->setBounds (632, 113, 34, 30); + + waveLabel2.reset (new juce::Label ("wave label", + TRANS("Wave"))); + addAndMakeVisible (waveLabel2.get()); + waveLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + waveLabel2->setJustificationType (juce::Justification::centredLeft); + waveLabel2->setEditable (false, false, false); + waveLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + waveLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + waveLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + waveLabel2->setBounds (456, 115, 48, 24); + + tremoloButton2.reset (new juce::ToggleButton ("tremolo button")); + addAndMakeVisible (tremoloButton2.get()); + tremoloButton2->setTooltip (TRANS("Modulate amplitude at 3.7 Hz")); + tremoloButton2->setButtonText (TRANS("Tremolo")); + tremoloButton2->addListener (this); + tremoloButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); + + tremoloButton2->setBounds (544, 352, 80, 24); + + vibratoButton2.reset (new juce::ToggleButton ("vibrato button")); + addAndMakeVisible (vibratoButton2.get()); + vibratoButton2->setTooltip (TRANS("Modulate frequency at 6.1 Hz")); + vibratoButton2->setButtonText (TRANS("Vibrato")); + vibratoButton2->addListener (this); + vibratoButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); + + vibratoButton2->setBounds (456, 352, 72, 24); + + sustainButton2.reset (new juce::ToggleButton ("sustain button")); + addAndMakeVisible (sustainButton2.get()); + sustainButton2->setTooltip (TRANS("Enable or disable sustain when note is held")); + sustainButton2->setButtonText (TRANS("Sustain")); + sustainButton2->addListener (this); + sustainButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); + + sustainButton2->setBounds (456, 384, 70, 24); + + keyscaleEnvButton2.reset (new juce::ToggleButton ("keyscale env button")); + addAndMakeVisible (keyscaleEnvButton2.get()); + keyscaleEnvButton2->setTooltip (TRANS("Speed up envelope rate with note frequency")); + keyscaleEnvButton2->setButtonText (TRANS("Keyscale Env. Rate")); + keyscaleEnvButton2->addListener (this); + keyscaleEnvButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); + + keyscaleEnvButton2->setBounds (544, 376, 102, 48); + + frequencyLabel4.reset (new juce::Label ("frequency label", + TRANS("Keyscale Attenuation"))); + addAndMakeVisible (frequencyLabel4.get()); + frequencyLabel4->setTooltip (TRANS("Attenuate amplitude with note frequency in dB per octave")); + frequencyLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel4->setJustificationType (juce::Justification::centred); + frequencyLabel4->setEditable (false, false, false); + frequencyLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + frequencyLabel4->setBounds (656, 376, 88, 48); + + groupComponent3.reset (new juce::GroupComponent ("new group", + TRANS("Effect depth"))); + addAndMakeVisible (groupComponent3.get()); + groupComponent3->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent3->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent3->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); + + groupComponent3->setBounds (16, 440, 248, 120); + + tremoloSlider.reset (new juce::Slider ("tremolo slider")); + addAndMakeVisible (tremoloSlider.get()); + tremoloSlider->setRange (1, 4.8, 3.8); + tremoloSlider->setSliderStyle (juce::Slider::LinearHorizontal); + tremoloSlider->setTextBoxStyle (juce::Slider::TextBoxRight, true, 32, 20); + tremoloSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + tremoloSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + tremoloSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + tremoloSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + tremoloSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + tremoloSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + tremoloSlider->addListener (this); + + tremoloSlider->setBounds (112, 472, 80, 24); + + frequencyLabel5.reset (new juce::Label ("frequency label", + TRANS("Tremolo\n"))); + addAndMakeVisible (frequencyLabel5.get()); + frequencyLabel5->setTooltip (TRANS("OPL global tremolo depth")); + frequencyLabel5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel5->setJustificationType (juce::Justification::centredLeft); + frequencyLabel5->setEditable (false, false, false); + frequencyLabel5->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel5->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + frequencyLabel5->setBounds (32, 472, 80, 24); + + dbLabel5.reset (new juce::Label ("db label", + TRANS("dB"))); + addAndMakeVisible (dbLabel5.get()); + dbLabel5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel5->setJustificationType (juce::Justification::centredLeft); + dbLabel5->setEditable (false, false, false); + dbLabel5->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel5->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel5->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dbLabel5->setBounds (200, 464, 32, 40); + + vibratoSlider.reset (new juce::Slider ("vibrato slider")); + addAndMakeVisible (vibratoSlider.get()); + vibratoSlider->setRange (7, 14, 7); + vibratoSlider->setSliderStyle (juce::Slider::LinearHorizontal); + vibratoSlider->setTextBoxStyle (juce::Slider::TextBoxRight, true, 32, 20); + vibratoSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + vibratoSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + vibratoSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + vibratoSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + vibratoSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + vibratoSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + vibratoSlider->addListener (this); + + vibratoSlider->setBounds (112, 512, 80, 24); + + frequencyLabel6.reset (new juce::Label ("frequency label", + TRANS("Vibrato"))); + addAndMakeVisible (frequencyLabel6.get()); + frequencyLabel6->setTooltip (TRANS("OPL global vibrato depth")); + frequencyLabel6->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel6->setJustificationType (juce::Justification::centredLeft); + frequencyLabel6->setEditable (false, false, false); + frequencyLabel6->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel6->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel6->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + frequencyLabel6->setBounds (32, 512, 80, 24); + + dbLabel6.reset (new juce::Label ("db label", + TRANS("cents\n"))); + addAndMakeVisible (dbLabel6.get()); + dbLabel6->setTooltip (TRANS("A unit of pitch; 100 cents per semitone")); + dbLabel6->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel6->setJustificationType (juce::Justification::centredLeft); + dbLabel6->setEditable (false, false, false); + dbLabel6->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel6->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel6->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel6->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dbLabel6->setBounds (200, 504, 48, 40); + + feedbackSlider.reset (new juce::Slider ("feedback slider")); + addAndMakeVisible (feedbackSlider.get()); + feedbackSlider->setRange (0, 7, 1); + feedbackSlider->setSliderStyle (juce::Slider::RotaryHorizontalVerticalDrag); + feedbackSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, true, 30, 20); + feedbackSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff00af00)); + feedbackSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + feedbackSlider->setColour (juce::Slider::rotarySliderFillColourId, juce::Colour (0xff00af00)); + feedbackSlider->setColour (juce::Slider::rotarySliderOutlineColourId, juce::Colour (0xff007f00)); + feedbackSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + feedbackSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + feedbackSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + feedbackSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); + feedbackSlider->addListener (this); + + feedbackSlider->setBounds (248, 237, 30, 67); + + frequencyLabel7.reset (new juce::Label ("frequency label", + TRANS("Feedback"))); + addAndMakeVisible (frequencyLabel7.get()); + frequencyLabel7->setTooltip (TRANS("Extent to which modulator output is fed back into itself")); + frequencyLabel7->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel7->setJustificationType (juce::Justification::centred); + frequencyLabel7->setEditable (false, false, false); + frequencyLabel7->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel7->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel7->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + frequencyLabel7->setBounds (224, 304, 80, 24); + + velocityComboBox.reset (new juce::ComboBox ("velocity combo box")); + addAndMakeVisible (velocityComboBox.get()); + velocityComboBox->setEditableText (false); + velocityComboBox->setJustificationType (juce::Justification::centredLeft); + velocityComboBox->setTextWhenNothingSelected (juce::String()); + velocityComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + velocityComboBox->addItem (TRANS("Off"), 1); + velocityComboBox->addItem (TRANS("Light"), 2); + velocityComboBox->addItem (TRANS("Heavy"), 3); + velocityComboBox->addListener (this); + + velocityComboBox->setBounds (328, 352, 76, 24); + + velocityComboBox2.reset (new juce::ComboBox ("velocity combo box")); + addAndMakeVisible (velocityComboBox2.get()); + velocityComboBox2->setEditableText (false); + velocityComboBox2->setJustificationType (juce::Justification::centredLeft); + velocityComboBox2->setTextWhenNothingSelected (juce::String()); + velocityComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + velocityComboBox2->addItem (TRANS("Off"), 1); + velocityComboBox2->addItem (TRANS("Light"), 2); + velocityComboBox2->addItem (TRANS("Heavy"), 3); + velocityComboBox2->addListener (this); + + velocityComboBox2->setBounds (760, 352, 72, 24); + + attenuationLabel4.reset (new juce::Label ("attenuation label", + TRANS("Velocity Sensitivity"))); + addAndMakeVisible (attenuationLabel4.get()); + attenuationLabel4->setTooltip (TRANS("Set or disable velocity senstivity")); + attenuationLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel4->setJustificationType (juce::Justification::centred); + attenuationLabel4->setEditable (false, false, false); + attenuationLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + attenuationLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + attenuationLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + attenuationLabel4->setBounds (760, 376, 80, 48); + + alternatingsineImageButton.reset (new juce::ImageButton ("alternating sine image button")); + addAndMakeVisible (alternatingsineImageButton.get()); + alternatingsineImageButton->setButtonText (TRANS("Alternating Sine")); + alternatingsineImageButton->setRadioGroupId (1); + alternatingsineImageButton->addListener (this); + + alternatingsineImageButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + alternatingsineImageButton->setBounds (288, 113, 34, 30); + + camelsineImageButton.reset (new juce::ImageButton ("camel sine image button")); + addAndMakeVisible (camelsineImageButton.get()); + camelsineImageButton->setButtonText (TRANS("Camel Sine")); + camelsineImageButton->setRadioGroupId (1); + camelsineImageButton->addListener (this); + + camelsineImageButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + camelsineImageButton->setBounds (248, 113, 34, 30); + + squareImageButton.reset (new juce::ImageButton ("square image button")); + addAndMakeVisible (squareImageButton.get()); + squareImageButton->setButtonText (TRANS("Square")); + squareImageButton->setRadioGroupId (1); + squareImageButton->addListener (this); + + squareImageButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + squareImageButton->setBounds (328, 113, 34, 30); + + logsawImageButton.reset (new juce::ImageButton ("logsaw image button")); + addAndMakeVisible (logsawImageButton.get()); + logsawImageButton->setButtonText (TRANS("Logarithmic Sawtooth")); + logsawImageButton->setRadioGroupId (1); + logsawImageButton->addListener (this); + + logsawImageButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + logsawImageButton->setBounds (368, 113, 34, 30); + + alternatingsineImageButton2.reset (new juce::ImageButton ("alternating sine image button")); + addAndMakeVisible (alternatingsineImageButton2.get()); + alternatingsineImageButton2->setButtonText (TRANS("Alternating Sine")); + alternatingsineImageButton2->setRadioGroupId (2); + alternatingsineImageButton2->addListener (this); + + alternatingsineImageButton2->setImages (false, true, true, + juce::ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + alternatingsineImageButton2->setBounds (714, 114, 34, 30); + + camelsineImageButton2.reset (new juce::ImageButton ("camel sine image button")); + addAndMakeVisible (camelsineImageButton2.get()); + camelsineImageButton2->setButtonText (TRANS("Camel Sine")); + camelsineImageButton2->setRadioGroupId (2); + camelsineImageButton2->addListener (this); + + camelsineImageButton2->setImages (false, true, true, + juce::ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + camelsineImageButton2->setBounds (674, 114, 34, 30); + + squareImageButton2.reset (new juce::ImageButton ("square image button")); + addAndMakeVisible (squareImageButton2.get()); + squareImageButton2->setButtonText (TRANS("Square")); + squareImageButton2->setRadioGroupId (2); + squareImageButton2->addListener (this); + + squareImageButton2->setImages (false, true, true, + juce::ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + squareImageButton2->setBounds (754, 114, 34, 30); + + logsawImageButton2.reset (new juce::ImageButton ("logsaw image button")); + addAndMakeVisible (logsawImageButton2.get()); + logsawImageButton2->setButtonText (TRANS("Logarithmic Sawtooth")); + logsawImageButton2->setRadioGroupId (2); + logsawImageButton2->addListener (this); + + logsawImageButton2->setImages (false, true, true, + juce::ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + logsawImageButton2->setBounds (794, 114, 34, 30); + + dbLabel4.reset (new juce::Label ("db label", + TRANS("dB/8ve\n"))); + addAndMakeVisible (dbLabel4.get()); + dbLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel4->setJustificationType (juce::Justification::centred); + dbLabel4->setEditable (false, false, false); + dbLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel4->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dbLabel4->setBounds (792, 688, 72, 16); + + keyscaleAttenuationComboBox2.reset (new juce::ComboBox ("keyscale combo box")); + addAndMakeVisible (keyscaleAttenuationComboBox2.get()); + keyscaleAttenuationComboBox2->setEditableText (false); + keyscaleAttenuationComboBox2->setJustificationType (juce::Justification::centredLeft); + keyscaleAttenuationComboBox2->setTextWhenNothingSelected (juce::String()); + keyscaleAttenuationComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + keyscaleAttenuationComboBox2->addItem (TRANS("-0.0"), 1); + keyscaleAttenuationComboBox2->addItem (TRANS("-3.0"), 2); + keyscaleAttenuationComboBox2->addItem (TRANS("-1.5"), 3); + keyscaleAttenuationComboBox2->addItem (TRANS("-6.0"), 4); + keyscaleAttenuationComboBox2->addListener (this); + + keyscaleAttenuationComboBox2->setBounds (664, 352, 76, 24); + + keyscaleAttenuationComboBox.reset (new juce::ComboBox ("keyscale combo box")); + addAndMakeVisible (keyscaleAttenuationComboBox.get()); + keyscaleAttenuationComboBox->setEditableText (false); + keyscaleAttenuationComboBox->setJustificationType (juce::Justification::centredLeft); + keyscaleAttenuationComboBox->setTextWhenNothingSelected (juce::String()); + keyscaleAttenuationComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + keyscaleAttenuationComboBox->addItem (TRANS("-0.0"), 1); + keyscaleAttenuationComboBox->addItem (TRANS("-3.0"), 2); + keyscaleAttenuationComboBox->addItem (TRANS("-1.5"), 3); + keyscaleAttenuationComboBox->addItem (TRANS("-6.0"), 4); + keyscaleAttenuationComboBox->addListener (this); + + keyscaleAttenuationComboBox->setBounds (232, 352, 76, 24); + + groupComponent5.reset (new juce::GroupComponent ("new group", + TRANS("Emulator (currently locked)"))); + addAndMakeVisible (groupComponent5.get()); + groupComponent5->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent5->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0xff007f00)); + groupComponent5->setColour (juce::GroupComponent::textColourId, juce::Colour (0xff007f00)); + + groupComponent5->setBounds (24, 712, 408, 64); + + emulatorSlider.reset (new juce::Slider ("emulator slider")); + addAndMakeVisible (emulatorSlider.get()); + emulatorSlider->setRange (0, 1, 1); + emulatorSlider->setSliderStyle (juce::Slider::LinearHorizontal); + emulatorSlider->setTextBoxStyle (juce::Slider::NoTextBox, true, 44, 20); + emulatorSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff00af00)); + emulatorSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + emulatorSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + emulatorSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + emulatorSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + emulatorSlider->addListener (this); + + emulatorSlider->setBounds (208, 736, 40, 24); + + emulatorLabel.reset (new juce::Label ("emulator label", + TRANS("DOSBox"))); + addAndMakeVisible (emulatorLabel.get()); + emulatorLabel->setTooltip (TRANS("Use the OPL emulator from the DOSBox project")); + emulatorLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + emulatorLabel->setJustificationType (juce::Justification::centredRight); + emulatorLabel->setEditable (false, false, false); + emulatorLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + emulatorLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + emulatorLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + emulatorLabel->setBounds (120, 736, 72, 24); + + emulatorLabel2.reset (new juce::Label ("emulator label", + TRANS("ZDoom"))); + addAndMakeVisible (emulatorLabel2.get()); + emulatorLabel2->setTooltip (TRANS("Use the OPL emulator from the ZDoom project")); + emulatorLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + emulatorLabel2->setJustificationType (juce::Justification::centredLeft); + emulatorLabel2->setEditable (false, false, false); + emulatorLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + emulatorLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + emulatorLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + emulatorLabel2->setBounds (256, 736, 72, 24); + + recordButton.reset (new juce::ToggleButton ("record button")); + addAndMakeVisible (recordButton.get()); + recordButton->setTooltip (TRANS("Start recording all register writes to a DRO file - an OPL recording file format defined by DOSBox")); + recordButton->setButtonText (TRANS("Record to DRO (not working yet)")); + recordButton->addListener (this); + recordButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); + + recordButton->setBounds (32, 680, 224, 24); + + exportButton.reset (new juce::TextButton ("export button")); + addAndMakeVisible (exportButton.get()); + exportButton->setButtonText (TRANS("Export")); + exportButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); + exportButton->addListener (this); + exportButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); + exportButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); + + exportButton->setBounds (728, 512, 48, 24); + + loadButton.reset (new juce::TextButton ("load button")); + addAndMakeVisible (loadButton.get()); + loadButton->setButtonText (TRANS("Load")); + loadButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); + loadButton->addListener (this); + loadButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); + loadButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); + + loadButton->setBounds (728, 472, 96, 24); + + versionLabel.reset (new juce::Label ("version label", + juce::String())); + addAndMakeVisible (versionLabel.get()); + versionLabel->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + versionLabel->setJustificationType (juce::Justification::centredRight); + versionLabel->setEditable (false, false, false); + versionLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + versionLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + versionLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + versionLabel->setBounds (648, 560, 198, 16); + + ToggleButtonOffExample.reset (new juce::ImageButton ("Toggle Button Off Example")); + addAndMakeVisible (ToggleButtonOffExample.get()); + ToggleButtonOffExample->setButtonText (TRANS("new button")); + ToggleButtonOffExample->addListener (this); + + ToggleButtonOffExample->setImages (false, true, true, + juce::ImageCache::getFromMemory (toggle_off_sq_png, toggle_off_sq_pngSize), 1.000f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + ToggleButtonOffExample->setBounds (1032, 584, 12, 12); + + ToggleButtonOnExample.reset (new juce::ImageButton ("Toggle Button On Example")); + addAndMakeVisible (ToggleButtonOnExample.get()); + ToggleButtonOnExample->setButtonText (TRANS("new button")); + ToggleButtonOnExample->addListener (this); + + ToggleButtonOnExample->setImages (false, true, true, + juce::ImageCache::getFromMemory (toggle_on_sq_png, toggle_on_sq_pngSize), 1.000f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + ToggleButtonOnExample->setBounds (1064, 584, 12, 12); + + label.reset (new juce::Label ("new label", + TRANS("Toggle buttons"))); + addAndMakeVisible (label.get()); + label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label->setJustificationType (juce::Justification::centred); + label->setEditable (false, false, false); + label->setColour (juce::Label::textColourId, juce::Colours::green); + label->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label->setBounds (1000, 608, 104, 24); + + label2.reset (new juce::Label ("new label", + TRANS("Line borders"))); + addAndMakeVisible (label2.get()); + label2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label2->setJustificationType (juce::Justification::centred); + label2->setEditable (false, false, false); + label2->setColour (juce::Label::textColourId, juce::Colours::green); + label2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label2->setBounds (872, 608, 104, 24); + + LineBorderButton1C.reset (new juce::ImageButton ("Line Border 1C")); + addAndMakeVisible (LineBorderButton1C.get()); + LineBorderButton1C->setButtonText (TRANS("new button")); + + LineBorderButton1C->setImages (false, true, false, + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); + LineBorderButton1C->setBounds (20, 336, 400, 6); + + LineBorderButton1A.reset (new juce::ImageButton ("Line Border 1A")); + addAndMakeVisible (LineBorderButton1A.get()); + LineBorderButton1A->setButtonText (TRANS("new button")); + + LineBorderButton1A->setImages (false, true, false, + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); + LineBorderButton1A->setBounds (20, 152, 400, 6); + + LineBorderButton1B.reset (new juce::ImageButton ("Line Border 1B")); + addAndMakeVisible (LineBorderButton1B.get()); + LineBorderButton1B->setButtonText (TRANS("new button")); + + LineBorderButton1B->setImages (false, true, false, + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000)); + LineBorderButton1B->setBounds (296, 156, 6, 182); + + label3.reset (new juce::Label ("new label", + TRANS("Temporarily removed labels to avoid making wider boxes."))); + addAndMakeVisible (label3.get()); + label3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label3->setJustificationType (juce::Justification::centred); + label3->setEditable (false, false, false); + label3->setColour (juce::Label::textColourId, juce::Colours::green); + label3->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label3->setBounds (776, 736, 104, 56); + + LineBorderButton1C2.reset (new juce::ImageButton ("Line Border 1C")); + addAndMakeVisible (LineBorderButton1C2.get()); + LineBorderButton1C2->setButtonText (TRANS("new button")); + + LineBorderButton1C2->setImages (false, true, false, + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); + LineBorderButton1C2->setBounds (444, 336, 400, 6); + + LineBorderButton1A2.reset (new juce::ImageButton ("Line Border 1A")); + addAndMakeVisible (LineBorderButton1A2.get()); + LineBorderButton1A2->setButtonText (TRANS("new button")); + + LineBorderButton1A2->setImages (false, true, false, + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); + LineBorderButton1A2->setBounds (444, 152, 400, 6); + + LineBorderButton1B2.reset (new juce::ImageButton ("Line Border 1B")); + addAndMakeVisible (LineBorderButton1B2.get()); + LineBorderButton1B2->setButtonText (TRANS("new button")); + + LineBorderButton1B2->setImages (false, true, false, + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000)); + LineBorderButton1B2->setBounds (720, 156, 6, 182); + + LineBorderButton1C3.reset (new juce::ImageButton ("Line Border 1C")); + addAndMakeVisible (LineBorderButton1C3.get()); + LineBorderButton1C3->setButtonText (TRANS("new button")); + + LineBorderButton1C3->setImages (false, true, false, + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); + LineBorderButton1C3->setBounds (892, 584, 20, 6); + + LineBorderButton1B3.reset (new juce::ImageButton ("Line Border 1B")); + addAndMakeVisible (LineBorderButton1B3.get()); + LineBorderButton1B3->setButtonText (TRANS("new button")); + + LineBorderButton1B3->setImages (false, true, false, + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000)); + LineBorderButton1B3->setBounds (936, 576, 6, 20); + + algoSwitchButtonOffEx1.reset (new juce::ImageButton ("Algorithm Switch Off AM")); + addAndMakeVisible (algoSwitchButtonOffEx1.get()); + algoSwitchButtonOffEx1->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx1->addListener (this); + + algoSwitchButtonOffEx1->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOffEx1->setBounds (952, 701, 64, 24); + + algoSwitchButtonOffEx2.reset (new juce::ImageButton ("Algorithm Switch Off FM")); + addAndMakeVisible (algoSwitchButtonOffEx2.get()); + algoSwitchButtonOffEx2->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx2->addListener (this); + + algoSwitchButtonOffEx2->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOffEx2->setBounds (952, 727, 64, 24); + + algoSwitchButtonOnEx1.reset (new juce::ImageButton ("Algorithm Switch On AM")); + addAndMakeVisible (algoSwitchButtonOnEx1.get()); + algoSwitchButtonOnEx1->setButtonText (TRANS("new button")); + algoSwitchButtonOnEx1->addListener (this); + + algoSwitchButtonOnEx1->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOnEx1->setBounds (1040, 701, 64, 24); + + algoSwitchButtonOnEx2.reset (new juce::ImageButton ("Algorithm Switch On FM")); + addAndMakeVisible (algoSwitchButtonOnEx2.get()); + algoSwitchButtonOnEx2->setButtonText (TRANS("new button")); + algoSwitchButtonOnEx2->addListener (this); + + algoSwitchButtonOnEx2->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOnEx2->setBounds (1040, 727, 64, 24); + + label4.reset (new juce::Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label4.get()); + label4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label4->setJustificationType (juce::Justification::centredLeft); + label4->setEditable (false, false, false); + label4->setColour (juce::Label::textColourId, juce::Colours::green); + label4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label4->setBounds (970, 701, 32, 24); + + label5.reset (new juce::Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label5.get()); + label5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label5->setJustificationType (juce::Justification::centredLeft); + label5->setEditable (false, false, false); + label5->setColour (juce::Label::textColourId, juce::Colours::green); + label5->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label5->setBounds (971, 727, 32, 24); + + label6.reset (new juce::Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label6.get()); + label6->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label6->setJustificationType (juce::Justification::centredLeft); + label6->setEditable (false, false, false); + label6->setColour (juce::Label::textColourId, juce::Colours::black); + label6->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label6->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label6->setBounds (1057, 701, 32, 24); + + label7.reset (new juce::Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label7.get()); + label7->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label7->setJustificationType (juce::Justification::centredLeft); + label7->setEditable (false, false, false); + label7->setColour (juce::Label::textColourId, juce::Colours::black); + label7->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label7->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label7->setBounds (1058, 727, 32, 24); + + label8.reset (new juce::Label ("new label", + TRANS("Example AM/FM switches"))); + addAndMakeVisible (label8.get()); + label8->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label8->setJustificationType (juce::Justification::centred); + label8->setEditable (false, false, false); + label8->setColour (juce::Label::textColourId, juce::Colours::green); + label8->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label8->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label8->setBounds (944, 816, 320, 24); + + algoSwitchButtonOn2Ex1.reset (new juce::ImageButton ("Algorithm Switch On2 AM")); + addAndMakeVisible (algoSwitchButtonOn2Ex1.get()); + algoSwitchButtonOn2Ex1->setButtonText (TRANS("new button")); + algoSwitchButtonOn2Ex1->addListener (this); + + algoSwitchButtonOn2Ex1->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOn2Ex1->setBounds (1128, 700, 64, 24); + + algoSwitchButtonOn2Ex2.reset (new juce::ImageButton ("Algorithm Switch On2 FM")); + addAndMakeVisible (algoSwitchButtonOn2Ex2.get()); + algoSwitchButtonOn2Ex2->setButtonText (TRANS("new button")); + algoSwitchButtonOn2Ex2->addListener (this); + + algoSwitchButtonOn2Ex2->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOn2Ex2->setBounds (1128, 727, 64, 24); + + label9.reset (new juce::Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label9.get()); + label9->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label9->setJustificationType (juce::Justification::centredLeft); + label9->setEditable (false, false, false); + label9->setColour (juce::Label::textColourId, juce::Colours::black); + label9->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label9->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label9->setBounds (1145, 700, 32, 24); + + label10.reset (new juce::Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label10.get()); + label10->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label10->setJustificationType (juce::Justification::centredLeft); + label10->setEditable (false, false, false); + label10->setColour (juce::Label::textColourId, juce::Colours::black); + label10->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label10->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label10->setBounds (1146, 727, 32, 24); + + algoSwitchButtonOn3Ex1.reset (new juce::ImageButton ("Algorithm Switch On3 AM")); + addAndMakeVisible (algoSwitchButtonOn3Ex1.get()); + algoSwitchButtonOn3Ex1->setButtonText (TRANS("new button")); + algoSwitchButtonOn3Ex1->addListener (this); + + algoSwitchButtonOn3Ex1->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOn3Ex1->setBounds (1216, 700, 64, 24); + + algoSwitchButtonOn3Ex2.reset (new juce::ImageButton ("Algorithm Switch On3 FM")); + addAndMakeVisible (algoSwitchButtonOn3Ex2.get()); + algoSwitchButtonOn3Ex2->setButtonText (TRANS("new button")); + algoSwitchButtonOn3Ex2->addListener (this); + + algoSwitchButtonOn3Ex2->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOn3Ex2->setBounds (1216, 727, 64, 24); + + label11.reset (new juce::Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label11.get()); + label11->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label11->setJustificationType (juce::Justification::centredLeft); + label11->setEditable (false, false, false); + label11->setColour (juce::Label::textColourId, juce::Colours::black); + label11->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label11->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label11->setBounds (1233, 700, 31, 24); + + label12.reset (new juce::Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label12.get()); + label12->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label12->setJustificationType (juce::Justification::centredLeft); + label12->setEditable (false, false, false); + label12->setColour (juce::Label::textColourId, juce::Colours::black); + label12->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label12->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label12->setBounds (1234, 727, 32, 24); + + TwoOpAMButton.reset (new juce::ImageButton ("Two OP AM Button")); + addAndMakeVisible (TwoOpAMButton.get()); + TwoOpAMButton->setButtonText (TRANS("new button")); + TwoOpAMButton->addListener (this); + + TwoOpAMButton->setImages (false, true, false, + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000)); + TwoOpAMButton->setBounds (1173, 484, 60, 56); + + TwoOpFMButton.reset (new juce::ImageButton ("Two OP FM Button")); + addAndMakeVisible (TwoOpFMButton.get()); + TwoOpFMButton->setButtonText (TRANS("new button")); + TwoOpFMButton->addListener (this); + + TwoOpFMButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000)); + TwoOpFMButton->setBounds (1156, 568, 80, 26); + + label13.reset (new juce::Label ("new label", + TRANS("M"))); + addAndMakeVisible (label13.get()); + label13->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label13->setJustificationType (juce::Justification::centred); + label13->setEditable (false, false, false); + label13->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label13->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label13->setBounds (1179, 489, 24, 24); + + label14.reset (new juce::Label ("new label", + TRANS("C"))); + addAndMakeVisible (label14.get()); + label14->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label14->setJustificationType (juce::Justification::centred); + label14->setEditable (false, false, false); + label14->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label14->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label14->setBounds (1179, 518, 24, 24); + + label15.reset (new juce::Label ("new label", + TRANS("M"))); + addAndMakeVisible (label15.get()); + label15->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label15->setJustificationType (juce::Justification::centred); + label15->setEditable (false, false, false); + label15->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label15->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label15->setBounds (1166, 572, 24, 24); + + label16.reset (new juce::Label ("new label", + TRANS("C"))); + addAndMakeVisible (label16.get()); + label16->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label16->setJustificationType (juce::Justification::centred); + label16->setEditable (false, false, false); + label16->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label16->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label16->setBounds (1195, 572, 24, 24); + + label17.reset (new juce::Label ("new label", + TRANS("Example Algorithms"))); + addAndMakeVisible (label17.get()); + label17->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label17->setJustificationType (juce::Justification::centred); + label17->setEditable (false, false, false); + label17->setColour (juce::Label::textColourId, juce::Colours::green); + label17->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label17->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label17->setBounds (1128, 608, 136, 24); + + groupComponent6.reset (new juce::GroupComponent ("new group", + juce::String())); + addAndMakeVisible (groupComponent6.get()); + groupComponent6->setColour (juce::GroupComponent::outlineColourId, juce::Colours::green); + + groupComponent6->setBounds (933, 56, 168, 95); + + algoSwitchButtonOnEx3.reset (new juce::ImageButton ("Algorithm Switch On AM")); + addAndMakeVisible (algoSwitchButtonOnEx3.get()); + algoSwitchButtonOnEx3->setButtonText (TRANS("new button")); + algoSwitchButtonOnEx3->addListener (this); + + algoSwitchButtonOnEx3->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOnEx3->setBounds (949, 82, 64, 24); + + label18.reset (new juce::Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label18.get()); + label18->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label18->setJustificationType (juce::Justification::centredLeft); + label18->setEditable (false, false, false); + label18->setColour (juce::Label::textColourId, juce::Colours::black); + label18->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label18->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label18->setBounds (966, 82, 32, 24); + + algoSwitchButtonOffEx3.reset (new juce::ImageButton ("Algorithm Switch Off FM")); + addAndMakeVisible (algoSwitchButtonOffEx3.get()); + algoSwitchButtonOffEx3->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx3->addListener (this); + + algoSwitchButtonOffEx3->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOffEx3->setBounds (949, 108, 64, 24); + + label19.reset (new juce::Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label19.get()); + label19->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label19->setJustificationType (juce::Justification::centredLeft); + label19->setEditable (false, false, false); + label19->setColour (juce::Label::textColourId, juce::Colours::green); + label19->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label19->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label19->setBounds (968, 108, 32, 24); + + TwoOpAMButton2.reset (new juce::ImageButton ("Two OP AM Button")); + addAndMakeVisible (TwoOpAMButton2.get()); + TwoOpAMButton2->setButtonText (TRANS("new button")); + TwoOpAMButton2->addListener (this); + + TwoOpAMButton2->setImages (false, true, false, + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000)); + TwoOpAMButton2->setBounds (1029, 77, 60, 56); + + label20.reset (new juce::Label ("new label", + TRANS("M"))); + addAndMakeVisible (label20.get()); + label20->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label20->setJustificationType (juce::Justification::centred); + label20->setEditable (false, false, false); + label20->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label20->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label20->setBounds (1035, 82, 24, 24); + + label21.reset (new juce::Label ("new label", + TRANS("C"))); + addAndMakeVisible (label21.get()); + label21->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label21->setJustificationType (juce::Justification::centred); + label21->setEditable (false, false, false); + label21->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label21->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label21->setBounds (1035, 111, 24, 24); + + label22.reset (new juce::Label ("new label", + TRANS("Example Algo Sections w/ Diagram"))); + addAndMakeVisible (label22.get()); + label22->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label22->setJustificationType (juce::Justification::centred); + label22->setEditable (false, false, false); + label22->setColour (juce::Label::textColourId, juce::Colours::green); + label22->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label22->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label22->setBounds (952, 160, 328, 40); + + algoSwitchButtonOffEx4.reset (new juce::ImageButton ("Algorithm Switch Off AM")); + addAndMakeVisible (algoSwitchButtonOffEx4.get()); + algoSwitchButtonOffEx4->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx4->addListener (this); + + algoSwitchButtonOffEx4->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOffEx4->setBounds (1125, 82, 64, 24); + + label23.reset (new juce::Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label23.get()); + label23->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label23->setJustificationType (juce::Justification::centredLeft); + label23->setEditable (false, false, false); + label23->setColour (juce::Label::textColourId, juce::Colours::green); + label23->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label23->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label23->setBounds (1143, 82, 32, 24); + + algoSwitchButtonOn3Ex3.reset (new juce::ImageButton ("Algorithm Switch On3 FM")); + addAndMakeVisible (algoSwitchButtonOn3Ex3.get()); + algoSwitchButtonOn3Ex3->setButtonText (TRANS("new button")); + algoSwitchButtonOn3Ex3->addListener (this); + + algoSwitchButtonOn3Ex3->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOn3Ex3->setBounds (1125, 109, 64, 24); + + label24.reset (new juce::Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label24.get()); + label24->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label24->setJustificationType (juce::Justification::centredLeft); + label24->setEditable (false, false, false); + label24->setColour (juce::Label::textColourId, juce::Colours::black); + label24->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label24->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label24->setBounds (1143, 109, 32, 24); + + TwoOpFMButton2.reset (new juce::ImageButton ("Two OP FM Button")); + addAndMakeVisible (TwoOpFMButton2.get()); + TwoOpFMButton2->setButtonText (TRANS("new button")); + TwoOpFMButton2->addListener (this); + + TwoOpFMButton2->setImages (false, true, true, + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000)); + TwoOpFMButton2->setBounds (1196, 94, 80, 26); + + label25.reset (new juce::Label ("new label", + TRANS("M"))); + addAndMakeVisible (label25.get()); + label25->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label25->setJustificationType (juce::Justification::centred); + label25->setEditable (false, false, false); + label25->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label25->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label25->setBounds (1206, 98, 24, 24); + + label26.reset (new juce::Label ("new label", + TRANS("C"))); + addAndMakeVisible (label26.get()); + label26->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label26->setJustificationType (juce::Justification::centred); + label26->setEditable (false, false, false); + label26->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label26->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label26->setBounds (1235, 98, 24, 24); + + groupComponent7.reset (new juce::GroupComponent ("new group", + juce::String())); + addAndMakeVisible (groupComponent7.get()); + groupComponent7->setColour (juce::GroupComponent::outlineColourId, juce::Colours::green); + + groupComponent7->setBounds (1112, 56, 168, 95); + + algoSwitchButtonOffEx5.reset (new juce::ImageButton ("Algorithm Switch Off AM")); + addAndMakeVisible (algoSwitchButtonOffEx5.get()); + algoSwitchButtonOffEx5->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx5->addListener (this); + + algoSwitchButtonOffEx5->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOffEx5->setBounds (1037, 250, 64, 24); + + label27.reset (new juce::Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label27.get()); + label27->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label27->setJustificationType (juce::Justification::centredLeft); + label27->setEditable (false, false, false); + label27->setColour (juce::Label::textColourId, juce::Colours::green); + label27->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label27->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label27->setBounds (1055, 250, 32, 24); + + algoSwitchButtonOn3Ex4.reset (new juce::ImageButton ("Algorithm Switch On3 FM")); + addAndMakeVisible (algoSwitchButtonOn3Ex4.get()); + algoSwitchButtonOn3Ex4->setButtonText (TRANS("new button")); + algoSwitchButtonOn3Ex4->addListener (this); + + algoSwitchButtonOn3Ex4->setImages (false, true, true, + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); + algoSwitchButtonOn3Ex4->setBounds (1103, 250, 64, 24); + + label28.reset (new juce::Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label28.get()); + label28->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label28->setJustificationType (juce::Justification::centredLeft); + label28->setEditable (false, false, false); + label28->setColour (juce::Label::textColourId, juce::Colours::black); + label28->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label28->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label28->setBounds (1121, 250, 32, 24); + + groupComponent8.reset (new juce::GroupComponent ("new group", + juce::String())); + addAndMakeVisible (groupComponent8.get()); + groupComponent8->setColour (juce::GroupComponent::outlineColourId, juce::Colours::green); + + groupComponent8->setBounds (1008, 208, 168, 95); + + frequencyLabel9.reset (new juce::Label ("frequency label", + TRANS("Algorithm"))); + addAndMakeVisible (frequencyLabel9.get()); + frequencyLabel9->setTooltip (TRANS("In additive mode, carrier and modulator output are simply summed rather than modulated")); + frequencyLabel9->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel9->setJustificationType (juce::Justification::centredLeft); + frequencyLabel9->setEditable (false, false, false); + frequencyLabel9->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel9->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel9->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + frequencyLabel9->setBounds (1067, 216, 72, 24); + + label29.reset (new juce::Label ("new label", + TRANS("Example Algo Section w/o Diagram"))); + addAndMakeVisible (label29.get()); + label29->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label29->setJustificationType (juce::Justification::centred); + label29->setEditable (false, false, false); + label29->setColour (juce::Label::textColourId, juce::Colours::green); + label29->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label29->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label29->setBounds (944, 304, 328, 40); + + label30.reset (new juce::Label ("new label", + TRANS("Off On (Bright) On (Dark) On (Solid)"))); + addAndMakeVisible (label30.get()); + label30->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label30->setJustificationType (juce::Justification::centred); + label30->setEditable (false, false, false); + label30->setColour (juce::Label::textColourId, juce::Colours::green); + label30->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label30->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + label30->setBounds (961, 768, 319, 24); + + frequencyLabel10.reset (new juce::Label ("frequency label", + TRANS("Keyscale Attenuation"))); + addAndMakeVisible (frequencyLabel10.get()); + frequencyLabel10->setTooltip (TRANS("Attenuate amplitude with note frequency in dB per octave")); + frequencyLabel10->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel10->setJustificationType (juce::Justification::centred); + frequencyLabel10->setEditable (false, false, false); + frequencyLabel10->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel10->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel10->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + frequencyLabel10->setBounds (224, 376, 88, 48); + + attenuationLabel5.reset (new juce::Label ("attenuation label", + TRANS("Velocity Sensitivity"))); + addAndMakeVisible (attenuationLabel5.get()); + attenuationLabel5->setTooltip (TRANS("Set or disable velocity senstivity")); + attenuationLabel5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel5->setJustificationType (juce::Justification::centred); + attenuationLabel5->setEditable (false, false, false); + attenuationLabel5->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + attenuationLabel5->setColour (juce::TextEditor::textColourId, juce::Colours::black); + attenuationLabel5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + attenuationLabel5->setBounds (328, 376, 80, 48); + + fmButton.reset (new juce::ImageButton ("fm button")); + addAndMakeVisible (fmButton.get()); + fmButton->setTooltip (TRANS("FM: carrier frequency is modulated by the modulator")); + fmButton->setButtonText (TRANS("FM")); + fmButton->setRadioGroupId (3); + fmButton->addListener (this); + + fmButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + fmButton->setBounds (298, 472, 72, 56); + + additiveButton.reset (new juce::ImageButton ("Additive mode button")); + addAndMakeVisible (additiveButton.get()); + additiveButton->setTooltip (TRANS("Additive: output the sum of the modulator and carrier")); + additiveButton->setButtonText (TRANS("Additive Mode")); + additiveButton->setRadioGroupId (3); + additiveButton->addListener (this); + + additiveButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + additiveButton->setBounds (400, 472, 56, 56); + + bassDrumButton.reset (new juce::ImageButton ("bass drum button")); + addAndMakeVisible (bassDrumButton.get()); + bassDrumButton->setTooltip (TRANS("Bass drum")); + bassDrumButton->setButtonText (TRANS("bass drum")); + bassDrumButton->setRadioGroupId (4); + bassDrumButton->addListener (this); + + bassDrumButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (bassdrum_png, bassdrum_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + bassDrumButton->setBounds (576, 464, 30, 30); + + snareDrumButton.reset (new juce::ImageButton ("snare drum button")); + addAndMakeVisible (snareDrumButton.get()); + snareDrumButton->setTooltip (TRANS("Snare")); + snareDrumButton->setButtonText (TRANS("snare")); + snareDrumButton->setRadioGroupId (4); + snareDrumButton->addListener (this); + + snareDrumButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (snare_png, snare_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + snareDrumButton->setBounds (632, 464, 30, 30); + + disablePercussionButton.reset (new juce::ImageButton ("percussion disabled button")); + addAndMakeVisible (disablePercussionButton.get()); + disablePercussionButton->setTooltip (TRANS("Disable percussion")); + disablePercussionButton->setButtonText (TRANS("disabled")); + disablePercussionButton->setRadioGroupId (4); + disablePercussionButton->addListener (this); + + disablePercussionButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (disabled_png, disabled_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + disablePercussionButton->setBounds (520, 464, 30, 30); + + tomTomButton.reset (new juce::ImageButton ("tom tom button")); + addAndMakeVisible (tomTomButton.get()); + tomTomButton->setTooltip (TRANS("Tom-tom")); + tomTomButton->setButtonText (TRANS("tom tom")); + tomTomButton->setRadioGroupId (4); + tomTomButton->addListener (this); + + tomTomButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (tom_png, tom_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + tomTomButton->setBounds (520, 512, 30, 30); + + cymbalButton.reset (new juce::ImageButton ("cymbalButton")); + addAndMakeVisible (cymbalButton.get()); + cymbalButton->setTooltip (TRANS("Cymbal")); + cymbalButton->setButtonText (TRANS("snare")); + cymbalButton->setRadioGroupId (4); + cymbalButton->addListener (this); + + cymbalButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (cymbal_png, cymbal_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + cymbalButton->setBounds (576, 512, 30, 30); + + hiHatButton.reset (new juce::ImageButton ("hi hat button")); + addAndMakeVisible (hiHatButton.get()); + hiHatButton->setTooltip (TRANS("Hi-hat")); + hiHatButton->setButtonText (TRANS("hi-hat")); + hiHatButton->setRadioGroupId (4); + hiHatButton->addListener (this); + + hiHatButton->setImages (false, true, true, + juce::ImageCache::getFromMemory (hihat_png, hihat_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); + hiHatButton->setBounds (632, 512, 30, 30); + + dbLabel7.reset (new juce::Label ("db label", + TRANS("FM"))); + addAndMakeVisible (dbLabel7.get()); + dbLabel7->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel7->setJustificationType (juce::Justification::centredLeft); + dbLabel7->setEditable (false, false, false); + dbLabel7->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel7->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel7->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel7->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dbLabel7->setBounds (320, 520, 32, 40); + + dbLabel8.reset (new juce::Label ("db label", + TRANS("Additive"))); + addAndMakeVisible (dbLabel8.get()); + dbLabel8->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel8->setJustificationType (juce::Justification::centred); + dbLabel8->setEditable (false, false, false); + dbLabel8->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel8->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel8->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel8->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); + + dbLabel8->setBounds (392, 520, 72, 40); + + previousButton.reset (new juce::TextButton ("previous button")); + addAndMakeVisible (previousButton.get()); + previousButton->setButtonText (TRANS("-")); + previousButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); + previousButton->addListener (this); + previousButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); + previousButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); + + previousButton->setBounds (776, 512, 24, 24); + + nextButton.reset (new juce::TextButton ("next button")); + addAndMakeVisible (nextButton.get()); + nextButton->setButtonText (TRANS("+")); + nextButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); + nextButton->addListener (this); + nextButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); + nextButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); + + nextButton->setBounds (800, 512, 24, 24); + + drawable1 = juce::Drawable::createFromImageData (gui_svg, gui_svgSize); + + //[UserPreSize] + oplLookAndFeel.reset(new OPLLookAndFeel()); + LookAndFeel::setDefaultLookAndFeel(oplLookAndFeel.get()); + + frequencyComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + frequencyComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + frequencyComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + frequencyComboBox->setColour (ComboBox::buttonColourId, Colours::black); + frequencyComboBox->setColour (ComboBox::backgroundColourId, Colours::black); + + frequencyComboBox->addItem ("x1/2", 16); // can't use 0 :( + frequencyComboBox->addItem ("x1", 1); + frequencyComboBox->addItem ("x2", 2); + frequencyComboBox->addItem ("x3", 3); + frequencyComboBox->addItem ("x4", 4); + frequencyComboBox->addItem ("x5", 5); + frequencyComboBox->addItem ("x6", 6); + frequencyComboBox->addItem ("x7", 7); + frequencyComboBox->addItem ("x8", 8); + frequencyComboBox->addItem ("x9", 9); + frequencyComboBox->addItem ("x10", 10); + frequencyComboBox->addItem ("x12", 12); + frequencyComboBox->addItem ("x15", 15); + + frequencyComboBox2->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + frequencyComboBox2->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + frequencyComboBox2->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + frequencyComboBox2->setColour (ComboBox::buttonColourId, Colours::black); + frequencyComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); + frequencyComboBox2->addItem ("x1/2", 16); // can't use 0 :( + frequencyComboBox2->addItem ("x1", 1); + frequencyComboBox2->addItem ("x2", 2); + frequencyComboBox2->addItem ("x3", 3); + frequencyComboBox2->addItem ("x4", 4); + frequencyComboBox2->addItem ("x5", 5); + frequencyComboBox2->addItem ("x6", 6); + frequencyComboBox2->addItem ("x7", 7); + frequencyComboBox2->addItem ("x8", 8); + frequencyComboBox2->addItem ("x9", 9); + frequencyComboBox2->addItem ("x10", 10); + frequencyComboBox2->addItem ("x12", 12); + frequencyComboBox2->addItem ("x15", 15); + + velocityComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + velocityComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + velocityComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + velocityComboBox->setColour (ComboBox::buttonColourId, Colours::black); + velocityComboBox->setColour (ComboBox::backgroundColourId, Colours::black); + velocityComboBox2->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + velocityComboBox2->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + velocityComboBox2->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + velocityComboBox2->setColour (ComboBox::buttonColourId, Colours::black); + velocityComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); + + keyscaleAttenuationComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox->setColour (ComboBox::buttonColourId, Colours::black); + keyscaleAttenuationComboBox->setColour (ComboBox::backgroundColourId, Colours::black); + keyscaleAttenuationComboBox2->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox2->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox2->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox2->setColour (ComboBox::buttonColourId, Colours::black); + keyscaleAttenuationComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); + + sineImageButton->setClickingTogglesState(true); + sineImageButton->setRepaintsOnMouseActivity(false); + abssineImageButton->setClickingTogglesState(true); + abssineImageButton->setRepaintsOnMouseActivity(false); + halfsineImageButton->setClickingTogglesState(true); + halfsineImageButton->setRepaintsOnMouseActivity(false); + quartersineImageButton->setClickingTogglesState(true); + quartersineImageButton->setRepaintsOnMouseActivity(false); + alternatingsineImageButton->setClickingTogglesState(true); + alternatingsineImageButton->setRepaintsOnMouseActivity(false); + camelsineImageButton->setClickingTogglesState(true); + camelsineImageButton->setRepaintsOnMouseActivity(false); + squareImageButton->setClickingTogglesState(true); + squareImageButton->setRepaintsOnMouseActivity(false); + logsawImageButton->setClickingTogglesState(true); + logsawImageButton->setRepaintsOnMouseActivity(false); + + sineImageButton2->setClickingTogglesState(true); + sineImageButton2->setRepaintsOnMouseActivity(false); + abssineImageButton2->setClickingTogglesState(true); + abssineImageButton2->setRepaintsOnMouseActivity(false); + halfsineImageButton2->setClickingTogglesState(true); + halfsineImageButton2->setRepaintsOnMouseActivity(false); + quartersineImageButton2->setClickingTogglesState(true); + quartersineImageButton2->setRepaintsOnMouseActivity(false); + alternatingsineImageButton2->setClickingTogglesState(true); + alternatingsineImageButton2->setRepaintsOnMouseActivity(false); + camelsineImageButton2->setClickingTogglesState(true); + camelsineImageButton2->setRepaintsOnMouseActivity(false); + squareImageButton2->setClickingTogglesState(true); + squareImageButton2->setRepaintsOnMouseActivity(false); + logsawImageButton2->setClickingTogglesState(true); + logsawImageButton2->setRepaintsOnMouseActivity(false); + + fmButton->setClickingTogglesState(true); + fmButton->setRepaintsOnMouseActivity(false); + additiveButton->setClickingTogglesState(true); + additiveButton->setRepaintsOnMouseActivity(false); + + disablePercussionButton->setClickingTogglesState(true); + disablePercussionButton->setRepaintsOnMouseActivity(false); + bassDrumButton->setClickingTogglesState(true); + bassDrumButton->setRepaintsOnMouseActivity(false); + snareDrumButton->setClickingTogglesState(true); + snareDrumButton->setRepaintsOnMouseActivity(false); + + tomTomButton->setClickingTogglesState(true); + tomTomButton->setRepaintsOnMouseActivity(false); + cymbalButton->setClickingTogglesState(true); + cymbalButton->setRepaintsOnMouseActivity(false); + hiHatButton->setClickingTogglesState(true); + hiHatButton->setRepaintsOnMouseActivity(false); + + recordButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + tremoloButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + vibratoButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + keyscaleEnvButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + sustainButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + tremoloButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + vibratoButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + keyscaleEnvButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + sustainButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + + Font fw(Font::getDefaultMonospacedFontName(), 14, Font::bold); + channelButtonLookAndFeel.reset(new ChannelButtonLookAndFeel()); + String context = String("Disable channel "); + for (unsigned int i = 0; i < channels.size(); ++i) + { + TextButton *channel = new TextButton(TRANS("-"), context + String(i + 1)); + channel->setLookAndFeel(channelButtonLookAndFeel.get()); + channel->setColour(TextButton::ColourIds::buttonColourId, Colours::black); + channel->setColour(TextButton::ColourIds::buttonOnColourId, Colours::black); + channel->setColour(TextButton::ColourIds::textColourOnId, OPLLookAndFeel::DOS_GREEN); + channel->setColour(TextButton::ColourIds::textColourOffId, OPLLookAndFeel::DOS_GREEN); + channel->addListener(this); + addAndMakeVisible(channel); + channels[i] = channel; + } + + versionLabel->setText(String(ProjectInfo::versionString).dropLastCharacters(2) +#if DEMOVERSION + += " Demo" +#endif + , NotificationType::dontSendNotification); + + // Change LookandFeelFree combobox + oplComboBoxLookAndFeel.reset(new OPLComboBoxLookAndFeelMethods()); + + for (auto comB : {frequencyComboBox.get(), frequencyComboBox2.get(), velocityComboBox.get(), velocityComboBox2.get(), keyscaleAttenuationComboBox2.get(), keyscaleAttenuationComboBox.get()}){ + comB->setLookAndFeel(oplComboBoxLookAndFeel.get()); + } + //[/UserPreSize] + + setSize (860, 580); + + + //[Constructor] You can add your own custom stuff here.. + processor = ownerFilter; + startTimer(1000/30); + // Update GUI Only + if (processor->lastLoadFile.length() > 0) { + File file(processor->lastLoadFile); + loadButton->setButtonText(file.getFileNameWithoutExtension()); + } + //[/Constructor] +} + +PluginGui::~PluginGui() +{ + //[Destructor_pre]. You can add your own custom destruction code here.. + //[/Destructor_pre] + + groupComponent2 = nullptr; + groupComponent4 = nullptr; + groupComponent11 = nullptr; + groupComponent10 = nullptr; + groupComponent9 = nullptr; + groupComponent = nullptr; + frequencyComboBox = nullptr; + frequencyLabel = nullptr; + aSlider = nullptr; + aLabel = nullptr; + dSlider = nullptr; + dLabel = nullptr; + sSlider = nullptr; + dLabel2 = nullptr; + rSlider = nullptr; + rLabel = nullptr; + attenuationSlider = nullptr; + attenuationLabel = nullptr; + dbLabel = nullptr; + sineImageButton = nullptr; + halfsineImageButton = nullptr; + abssineImageButton = nullptr; + quartersineImageButton = nullptr; + waveLabel = nullptr; + tremoloButton = nullptr; + vibratoButton = nullptr; + sustainButton = nullptr; + keyscaleEnvButton = nullptr; + dbLabel2 = nullptr; + frequencyComboBox2 = nullptr; + frequencyLabel3 = nullptr; + aSlider2 = nullptr; + aLabel2 = nullptr; + dSlider2 = nullptr; + dLabel3 = nullptr; + sSlider2 = nullptr; + dLabel4 = nullptr; + rSlider2 = nullptr; + rLabel2 = nullptr; + attenuationSlider2 = nullptr; + attenuationLabel2 = nullptr; + dbLabel3 = nullptr; + sineImageButton2 = nullptr; + halfsineImageButton2 = nullptr; + abssineImageButton2 = nullptr; + quartersineImageButton2 = nullptr; + waveLabel2 = nullptr; + tremoloButton2 = nullptr; + vibratoButton2 = nullptr; + sustainButton2 = nullptr; + keyscaleEnvButton2 = nullptr; + frequencyLabel4 = nullptr; + groupComponent3 = nullptr; + tremoloSlider = nullptr; + frequencyLabel5 = nullptr; + dbLabel5 = nullptr; + vibratoSlider = nullptr; + frequencyLabel6 = nullptr; + dbLabel6 = nullptr; + feedbackSlider = nullptr; + frequencyLabel7 = nullptr; + velocityComboBox = nullptr; + velocityComboBox2 = nullptr; + attenuationLabel4 = nullptr; + alternatingsineImageButton = nullptr; + camelsineImageButton = nullptr; + squareImageButton = nullptr; + logsawImageButton = nullptr; + alternatingsineImageButton2 = nullptr; + camelsineImageButton2 = nullptr; + squareImageButton2 = nullptr; + logsawImageButton2 = nullptr; + dbLabel4 = nullptr; + keyscaleAttenuationComboBox2 = nullptr; + keyscaleAttenuationComboBox = nullptr; + groupComponent5 = nullptr; + emulatorSlider = nullptr; + emulatorLabel = nullptr; + emulatorLabel2 = nullptr; + recordButton = nullptr; + exportButton = nullptr; + loadButton = nullptr; + versionLabel = nullptr; + ToggleButtonOffExample = nullptr; + ToggleButtonOnExample = nullptr; + label = nullptr; + label2 = nullptr; + LineBorderButton1C = nullptr; + LineBorderButton1A = nullptr; + LineBorderButton1B = nullptr; + label3 = nullptr; + LineBorderButton1C2 = nullptr; + LineBorderButton1A2 = nullptr; + LineBorderButton1B2 = nullptr; + LineBorderButton1C3 = nullptr; + LineBorderButton1B3 = nullptr; + algoSwitchButtonOffEx1 = nullptr; + algoSwitchButtonOffEx2 = nullptr; + algoSwitchButtonOnEx1 = nullptr; + algoSwitchButtonOnEx2 = nullptr; + label4 = nullptr; + label5 = nullptr; + label6 = nullptr; + label7 = nullptr; + label8 = nullptr; + algoSwitchButtonOn2Ex1 = nullptr; + algoSwitchButtonOn2Ex2 = nullptr; + label9 = nullptr; + label10 = nullptr; + algoSwitchButtonOn3Ex1 = nullptr; + algoSwitchButtonOn3Ex2 = nullptr; + label11 = nullptr; + label12 = nullptr; + TwoOpAMButton = nullptr; + TwoOpFMButton = nullptr; + label13 = nullptr; + label14 = nullptr; + label15 = nullptr; + label16 = nullptr; + label17 = nullptr; + groupComponent6 = nullptr; + algoSwitchButtonOnEx3 = nullptr; + label18 = nullptr; + algoSwitchButtonOffEx3 = nullptr; + label19 = nullptr; + TwoOpAMButton2 = nullptr; + label20 = nullptr; + label21 = nullptr; + label22 = nullptr; + algoSwitchButtonOffEx4 = nullptr; + label23 = nullptr; + algoSwitchButtonOn3Ex3 = nullptr; + label24 = nullptr; + TwoOpFMButton2 = nullptr; + label25 = nullptr; + label26 = nullptr; + groupComponent7 = nullptr; + algoSwitchButtonOffEx5 = nullptr; + label27 = nullptr; + algoSwitchButtonOn3Ex4 = nullptr; + label28 = nullptr; + groupComponent8 = nullptr; + frequencyLabel9 = nullptr; + label29 = nullptr; + label30 = nullptr; + frequencyLabel10 = nullptr; + attenuationLabel5 = nullptr; + fmButton = nullptr; + additiveButton = nullptr; + bassDrumButton = nullptr; + snareDrumButton = nullptr; + disablePercussionButton = nullptr; + tomTomButton = nullptr; + cymbalButton = nullptr; + hiHatButton = nullptr; + dbLabel7 = nullptr; + dbLabel8 = nullptr; + previousButton = nullptr; + nextButton = nullptr; + drawable1 = nullptr; + + + //[Destructor]. You can add your own custom destruction code here.. + + oplLookAndFeel = nullptr; + for (unsigned int i = 0; i < channels.size(); ++i) { + channels[i].reset(); + } + + channelButtonLookAndFeel = nullptr; + + //[/Destructor] +} + +//============================================================================== +void PluginGui::paint (juce::Graphics& g) +{ + //[UserPrePaint] Add your own custom painting code here.. + //[/UserPrePaint] + + g.fillAll (juce::Colours::black); + + { + int x = 0, y = 0, width = proportionOfWidth (1.0000f), height = proportionOfHeight (1.0000f); + //[UserPaintCustomArguments] Customize the painting arguments here.. + //[/UserPaintCustomArguments] + g.setColour (juce::Colours::black); + jassert (drawable1 != nullptr); + if (drawable1 != nullptr) + drawable1->drawWithin (g, juce::Rectangle (x, y, width, height).toFloat(), + juce::RectanglePlacement::stretchToFit, 1.000f); + } + + //[UserPaint] Add your own custom painting code here.. + //[/UserPaint] +} + +void PluginGui::resized() +{ + //[UserPreResize] Add your own custom resize code here.. + //[/UserPreResize] + + //[UserResized] Add your own custom resize handling here.. + for (unsigned int i = 0; i < channels.size(); ++i) + channels[i]->setBounds(64+88*i, 30, 28, 28); + //[/UserResized] +} + +void PluginGui::comboBoxChanged (juce::ComboBox* comboBoxThatHasChanged) +{ + //[UsercomboBoxChanged_Pre] + + //[/UsercomboBoxChanged_Pre] + + if (comboBoxThatHasChanged == frequencyComboBox.get()) + { + //[UserComboBoxCode_frequencyComboBox] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId(); + if (id > 15) id = 0; + processor->beginChangeGesture("Modulator Frequency Multiplier"); + processor->setEnumParameter("Modulator Frequency Multiplier", id); + processor->endChangeGesture("Modulator Frequency Multiplier"); + //[/UserComboBoxCode_frequencyComboBox] + } + else if (comboBoxThatHasChanged == frequencyComboBox2.get()) + { + //[UserComboBoxCode_frequencyComboBox2] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId(); + if (id > 15) id = 0; + processor->beginChangeGesture("Carrier Frequency Multiplier"); + processor->setEnumParameter("Carrier Frequency Multiplier", id); + processor->endChangeGesture("Carrier Frequency Multiplier"); + //[/UserComboBoxCode_frequencyComboBox2] + } + else if (comboBoxThatHasChanged == velocityComboBox.get()) + { + //[UserComboBoxCode_velocityComboBox] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId() - 1; + processor->beginChangeGesture("Modulator Velocity Sensitivity"); + processor->setEnumParameter("Modulator Velocity Sensitivity", id); + processor->endChangeGesture("Modulator Velocity Sensitivity"); + //[/UserComboBoxCode_velocityComboBox] + } + else if (comboBoxThatHasChanged == velocityComboBox2.get()) + { + //[UserComboBoxCode_velocityComboBox2] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId() - 1; + processor->beginChangeGesture("Carrier Velocity Sensitivity"); + processor->setEnumParameter("Carrier Velocity Sensitivity", id); + processor->endChangeGesture("Carrier Velocity Sensitivity"); + //[/UserComboBoxCode_velocityComboBox2] + } + else if (comboBoxThatHasChanged == keyscaleAttenuationComboBox2.get()) + { + //[UserComboBoxCode_keyscaleAttenuationComboBox2] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId() - 1; + processor->beginChangeGesture("Carrier Keyscale Level"); + processor->setEnumParameter("Carrier Keyscale Level", id); + processor->endChangeGesture("Carrier Keyscale Level"); + //[/UserComboBoxCode_keyscaleAttenuationComboBox2] + } + else if (comboBoxThatHasChanged == keyscaleAttenuationComboBox.get()) + { + //[UserComboBoxCode_keyscaleAttenuationComboBox] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId() - 1; + processor->beginChangeGesture("Modulator Keyscale Level"); + processor->setEnumParameter("Modulator Keyscale Level", id); + processor->endChangeGesture("Modulator Keyscale Level"); + //[/UserComboBoxCode_keyscaleAttenuationComboBox] + } + + //[UsercomboBoxChanged_Post] + //[/UsercomboBoxChanged_Post] +} + +void PluginGui::sliderValueChanged (juce::Slider* sliderThatWasMoved) +{ + //[UsersliderValueChanged_Pre] + //[/UsersliderValueChanged_Pre] + + if (sliderThatWasMoved == aSlider.get()) + { + //[UserSliderCode_aSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Attack", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_aSlider] + } + else if (sliderThatWasMoved == dSlider.get()) + { + //[UserSliderCode_dSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Decay", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_dSlider] + } + else if (sliderThatWasMoved == sSlider.get()) + { + //[UserSliderCode_sSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Sustain Level", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_sSlider] + } + else if (sliderThatWasMoved == rSlider.get()) + { + //[UserSliderCode_rSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Release", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_rSlider] + } + else if (sliderThatWasMoved == attenuationSlider.get()) + { + //[UserSliderCode_attenuationSlider] -- add your slider handling code here.. + processor->setEnumParameter("Modulator Attenuation", -(int)(sliderThatWasMoved->getValue()/0.75)); + //[/UserSliderCode_attenuationSlider] + } + else if (sliderThatWasMoved == aSlider2.get()) + { + //[UserSliderCode_aSlider2] -- add your slider handling code here.. + processor->setIntParameter("Carrier Attack", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_aSlider2] + } + else if (sliderThatWasMoved == dSlider2.get()) + { + //[UserSliderCode_dSlider2] -- add your slider handling code here.. + processor->setIntParameter("Carrier Decay", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_dSlider2] + } + else if (sliderThatWasMoved == sSlider2.get()) + { + //[UserSliderCode_sSlider2] -- add your slider handling code here.. + processor->setIntParameter("Carrier Sustain Level", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_sSlider2] + } + else if (sliderThatWasMoved == rSlider2.get()) + { + //[UserSliderCode_rSlider2] -- add your slider handling code here.. + processor->setIntParameter("Carrier Release", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_rSlider2] + } + else if (sliderThatWasMoved == attenuationSlider2.get()) + { + //[UserSliderCode_attenuationSlider2] -- add your slider handling code here.. + processor->setEnumParameter("Carrier Attenuation", -(int)(sliderThatWasMoved->getValue()/0.75)); + //[/UserSliderCode_attenuationSlider2] + } + else if (sliderThatWasMoved == tremoloSlider.get()) + { + //[UserSliderCode_tremoloSlider] -- add your slider handling code here.. + processor->setEnumParameter("Tremolo Depth", sliderThatWasMoved->getValue() < 2.0 ? 0 : 1); + //[/UserSliderCode_tremoloSlider] + } + else if (sliderThatWasMoved == vibratoSlider.get()) + { + //[UserSliderCode_vibratoSlider] -- add your slider handling code here.. + processor->setEnumParameter("Vibrato Depth", sliderThatWasMoved->getValue() < 8.0 ? 0 : 1); + //[/UserSliderCode_vibratoSlider] + } + else if (sliderThatWasMoved == feedbackSlider.get()) + { + //[UserSliderCode_feedbackSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Feedback", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_feedbackSlider] + } + else if (sliderThatWasMoved == emulatorSlider.get()) + { + //[UserSliderCode_emulatorSlider] -- add your slider handling code here.. + //[/UserSliderCode_emulatorSlider] + } + + //[UsersliderValueChanged_Post] + //[/UsersliderValueChanged_Post] +} + +void PluginGui::buttonClicked (juce::Button* buttonThatWasClicked) +{ + //[UserbuttonClicked_Pre] + // TODO: + // - fix button tooltip text + // - automatically select channel(s) by default? + // - record output to file + for (int i = 1; i <= Hiopl::CHANNELS; ++i) { + Button* channelButton = channels[i - 1]; + if (buttonThatWasClicked == channelButton) { + if (processor->nChannelsEnabled() > 1 || !processor->isChannelEnabled(i)) { + processor->toggleChannel(i); + } + const bool channelEnabled = processor->isChannelEnabled(i); + Colour textColour = channelEnabled ? OPLLookAndFeel::DOS_GREEN : OPLLookAndFeel::DOS_GREEN_DARK; + channelButton->setColour(TextButton::ColourIds::textColourOnId, textColour); + channelButton->setColour(TextButton::ColourIds::textColourOffId, textColour); + return; + } + } + //[/UserbuttonClicked_Pre] + + if (buttonThatWasClicked == sineImageButton.get()) + { + //[UserButtonCode_sineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 0); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_sineImageButton] + } + else if (buttonThatWasClicked == halfsineImageButton.get()) + { + //[UserButtonCode_halfsineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 1); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_halfsineImageButton] + } + else if (buttonThatWasClicked == abssineImageButton.get()) + { + //[UserButtonCode_abssineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 2); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_abssineImageButton] + } + else if (buttonThatWasClicked == quartersineImageButton.get()) + { + //[UserButtonCode_quartersineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 3); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_quartersineImageButton] + } + else if (buttonThatWasClicked == tremoloButton.get()) + { + //[UserButtonCode_tremoloButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Tremolo"); + processor->setEnumParameter("Modulator Tremolo", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Modulator Tremolo"); + updateFromHost=true; + //[/UserButtonCode_tremoloButton] + } + else if (buttonThatWasClicked == vibratoButton.get()) + { + //[UserButtonCode_vibratoButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Vibrato"); + processor->setEnumParameter("Modulator Vibrato", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Modulator Vibrato"); + updateFromHost=true; + //[/UserButtonCode_vibratoButton] + } + else if (buttonThatWasClicked == sustainButton.get()) + { + //[UserButtonCode_sustainButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Sustain"); + processor->setEnumParameter("Modulator Sustain", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Modulator Sustain"); + updateFromHost=true; + //[/UserButtonCode_sustainButton] + } + else if (buttonThatWasClicked == keyscaleEnvButton.get()) + { + //[UserButtonCode_keyscaleEnvButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Keyscale Rate"); + processor->setEnumParameter("Modulator Keyscale Rate", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Modulator Keyscale Rate"); + updateFromHost=true; + //[/UserButtonCode_keyscaleEnvButton] + } + else if (buttonThatWasClicked == sineImageButton2.get()) + { + //[UserButtonCode_sineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 0); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_sineImageButton2] + } + else if (buttonThatWasClicked == halfsineImageButton2.get()) + { + //[UserButtonCode_halfsineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 1); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_halfsineImageButton2] + } + else if (buttonThatWasClicked == abssineImageButton2.get()) + { + //[UserButtonCode_abssineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 2); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_abssineImageButton2] + } + else if (buttonThatWasClicked == quartersineImageButton2.get()) + { + //[UserButtonCode_quartersineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 3); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_quartersineImageButton2] + } + else if (buttonThatWasClicked == tremoloButton2.get()) + { + //[UserButtonCode_tremoloButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Tremolo"); + processor->setEnumParameter("Carrier Tremolo", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Carrier Tremolo"); + updateFromHost=true; + //[/UserButtonCode_tremoloButton2] + } + else if (buttonThatWasClicked == vibratoButton2.get()) + { + //[UserButtonCode_vibratoButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Vibrato"); + processor->setEnumParameter("Carrier Vibrato", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Carrier Vibrato"); + updateFromHost=true; + //[/UserButtonCode_vibratoButton2] + } + else if (buttonThatWasClicked == sustainButton2.get()) + { + //[UserButtonCode_sustainButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Sustain"); + processor->setEnumParameter("Carrier Sustain", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Carrier Sustain"); + updateFromHost=true; + //[/UserButtonCode_sustainButton2] + } + else if (buttonThatWasClicked == keyscaleEnvButton2.get()) + { + //[UserButtonCode_keyscaleEnvButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Keyscale Rate"); + processor->setEnumParameter("Carrier Keyscale Rate", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Carrier Keyscale Rate"); + updateFromHost=true; + //[/UserButtonCode_keyscaleEnvButton2] + } + else if (buttonThatWasClicked == alternatingsineImageButton.get()) + { + //[UserButtonCode_alternatingsineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 4); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_alternatingsineImageButton] + } + else if (buttonThatWasClicked == camelsineImageButton.get()) + { + //[UserButtonCode_camelsineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 5); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_camelsineImageButton] + } + else if (buttonThatWasClicked == squareImageButton.get()) + { + //[UserButtonCode_squareImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 6); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_squareImageButton] + } + else if (buttonThatWasClicked == logsawImageButton.get()) + { + //[UserButtonCode_logsawImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 7); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_logsawImageButton] + } + else if (buttonThatWasClicked == alternatingsineImageButton2.get()) + { + //[UserButtonCode_alternatingsineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 4); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_alternatingsineImageButton2] + } + else if (buttonThatWasClicked == camelsineImageButton2.get()) + { + //[UserButtonCode_camelsineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 5); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_camelsineImageButton2] + } + else if (buttonThatWasClicked == squareImageButton2.get()) + { + //[UserButtonCode_squareImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 6); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_squareImageButton2] + } + else if (buttonThatWasClicked == logsawImageButton2.get()) + { + //[UserButtonCode_logsawImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 7); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_logsawImageButton2] + } + else if (buttonThatWasClicked == recordButton.get()) + { + //[UserButtonCode_recordButton] -- add your button handler code here.. + //[/UserButtonCode_recordButton] + } + else if (buttonThatWasClicked == exportButton.get()) + { + //[UserButtonCode_exportButton] -- add your button handler code here.. + FileChooser browser("Select SBI instrument file", + instrumentLoadDirectory, +#ifdef JUCE_IOS + "*"); +#endif + +#ifndef JUCE_IOS + "*.sbi"); +#endif + if (browser.browseForFileToSave(true)){ + File selectedFile = browser.getResult(); + instrumentSaveDirectory = selectedFile.getParentDirectory(); + processor->saveInstrumentToFile(selectedFile.getFullPathName()); + } + /*WildcardFileFilter wildcardFilter("*.sbi", String(), "SBI files"); + FileBrowserComponent browser(FileBrowserComponent::saveMode + FileBrowserComponent::canSelectFiles, + instrumentSaveDirectory, + &wildcardFilter, + nullptr); + FileChooserDialogBox dialogBox("Export to", + "Specify SBI output file", + browser, + true, + Colours::darkgreen, this); + if (dialogBox.show()) + { + File selectedFile = browser.getSelectedFile(0); + instrumentSaveDirectory = browser.getRoot(); + processor->saveInstrumentToFile(selectedFile.getFullPathName()); + }*/ + //[/UserButtonCode_exportButton] + } + else if (buttonThatWasClicked == loadButton.get()) + { + //[UserButtonCode_loadButton] -- add your button handler code here.. + + if (!showLoadMenu()){ + loadBrowserFile(); + } + /*WildcardFileFilter wildcardFilter("*.sbi", String(), "SBI files"); + FileBrowserComponent browser(FileBrowserComponent::openMode + FileBrowserComponent::canSelectFiles, + instrumentLoadDirectory, + &wildcardFilter, + nullptr); + FileChooserDialogBox dialogBox("Load", + "Select SBI instrument file", + browser, + false, + Colours::darkgreen, this); + if (dialogBox.show()) + { + File selectedFile = browser.getSelectedFile(0); + instrumentLoadDirectory = browser.getRoot(); + processor->loadInstrumentFromFile(selectedFile.getFullPathName()); + }*/ + //[/UserButtonCode_loadButton] + } + else if (buttonThatWasClicked == ToggleButtonOffExample.get()) + { + //[UserButtonCode_ToggleButtonOffExample] -- add your button handler code here.. + //[/UserButtonCode_ToggleButtonOffExample] + } + else if (buttonThatWasClicked == ToggleButtonOnExample.get()) + { + //[UserButtonCode_ToggleButtonOnExample] -- add your button handler code here.. + //[/UserButtonCode_ToggleButtonOnExample] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx1.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx1] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx1] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx2.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx2] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx2] + } + else if (buttonThatWasClicked == algoSwitchButtonOnEx1.get()) + { + //[UserButtonCode_algoSwitchButtonOnEx1] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOnEx1] + } + else if (buttonThatWasClicked == algoSwitchButtonOnEx2.get()) + { + //[UserButtonCode_algoSwitchButtonOnEx2] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOnEx2] + } + else if (buttonThatWasClicked == algoSwitchButtonOn2Ex1.get()) + { + //[UserButtonCode_algoSwitchButtonOn2Ex1] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn2Ex1] + } + else if (buttonThatWasClicked == algoSwitchButtonOn2Ex2.get()) + { + //[UserButtonCode_algoSwitchButtonOn2Ex2] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn2Ex2] + } + else if (buttonThatWasClicked == algoSwitchButtonOn3Ex1.get()) + { + //[UserButtonCode_algoSwitchButtonOn3Ex1] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn3Ex1] + } + else if (buttonThatWasClicked == algoSwitchButtonOn3Ex2.get()) + { + //[UserButtonCode_algoSwitchButtonOn3Ex2] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn3Ex2] + } + else if (buttonThatWasClicked == TwoOpAMButton.get()) + { + //[UserButtonCode_TwoOpAMButton] -- add your button handler code here.. + //[/UserButtonCode_TwoOpAMButton] + } + else if (buttonThatWasClicked == TwoOpFMButton.get()) + { + //[UserButtonCode_TwoOpFMButton] -- add your button handler code here.. + //[/UserButtonCode_TwoOpFMButton] + } + else if (buttonThatWasClicked == algoSwitchButtonOnEx3.get()) + { + //[UserButtonCode_algoSwitchButtonOnEx3] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOnEx3] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx3.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx3] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx3] + } + else if (buttonThatWasClicked == TwoOpAMButton2.get()) + { + //[UserButtonCode_TwoOpAMButton2] -- add your button handler code here.. + //[/UserButtonCode_TwoOpAMButton2] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx4.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx4] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx4] + } + else if (buttonThatWasClicked == algoSwitchButtonOn3Ex3.get()) + { + //[UserButtonCode_algoSwitchButtonOn3Ex3] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn3Ex3] + } + else if (buttonThatWasClicked == TwoOpFMButton2.get()) + { + //[UserButtonCode_TwoOpFMButton2] -- add your button handler code here.. + //[/UserButtonCode_TwoOpFMButton2] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx5.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx5] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx5] + } + else if (buttonThatWasClicked == algoSwitchButtonOn3Ex4.get()) + { + //[UserButtonCode_algoSwitchButtonOn3Ex4] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn3Ex4] + } + else if (buttonThatWasClicked == fmButton.get()) + { + //[UserButtonCode_fmButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Algorithm"); + processor->setEnumParameter("Algorithm", 0); + processor->endChangeGesture("Algorithm"); + updateFromHost=true; + //[/UserButtonCode_fmButton] + } + else if (buttonThatWasClicked == additiveButton.get()) + { + //[UserButtonCode_additiveButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Algorithm"); + processor->setEnumParameter("Algorithm", 1); + processor->endChangeGesture("Algorithm"); + updateFromHost=true; + //[/UserButtonCode_additiveButton] + } + else if (buttonThatWasClicked == bassDrumButton.get()) + { + //[UserButtonCode_bassDrumButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 1); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_bassDrumButton] + } + else if (buttonThatWasClicked == snareDrumButton.get()) + { + //[UserButtonCode_snareDrumButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 2); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_snareDrumButton] + } + else if (buttonThatWasClicked == disablePercussionButton.get()) + { + //[UserButtonCode_disablePercussionButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 0); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_disablePercussionButton] + } + else if (buttonThatWasClicked == tomTomButton.get()) + { + //[UserButtonCode_tomTomButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 3); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_tomTomButton] + } + else if (buttonThatWasClicked == cymbalButton.get()) + { + //[UserButtonCode_cymbalButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 4); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_cymbalButton] + } + else if (buttonThatWasClicked == hiHatButton.get()) + { + //[UserButtonCode_hiHatButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 5); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_hiHatButton] + } + else if (buttonThatWasClicked == previousButton.get()) + { + //[UserButtonCode_previousButton] -- add your button handler code here.. + loadPreNextFile(true); + //[/UserButtonCode_previousButton] + } + else if (buttonThatWasClicked == nextButton.get()) + { + //[UserButtonCode_nextButton] -- add your button handler code here.. + loadPreNextFile(false); + //[/UserButtonCode_nextButton] + } + + //[UserbuttonClicked_Post] + //[/UserbuttonClicked_Post] +} + + + +//[MiscUserCode] You can add your own definitions of your custom methods or any other code here... + void PluginGui::sliderDragStarted (Slider* sliderThatWasMoved) { + //[UsersliderValueChanged_Pre] + DBG("Slider -> Start"); + updateFromHost=false; + //[/UsersliderValueChanged_Pre] + + if (sliderThatWasMoved == aSlider.get()) + { + //[UserSliderCode_aSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Attack"); + //[/UserSliderCode_aSlider] + } + else if (sliderThatWasMoved == dSlider.get()) + { + //[UserSliderCode_dSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Decay"); + //[/UserSliderCode_dSlider] + } + else if (sliderThatWasMoved == sSlider.get()) + { + //[UserSliderCode_sSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Sustain Level"); + //[/UserSliderCode_sSlider] + } + else if (sliderThatWasMoved == rSlider.get()) + { + //[UserSliderCode_rSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Release"); + //[/UserSliderCode_rSlider] + } + else if (sliderThatWasMoved == attenuationSlider.get()) + { + //[UserSliderCode_attenuationSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Attenuation"); + //[/UserSliderCode_attenuationSlider] + } + else if (sliderThatWasMoved == aSlider2.get()) + { + //[UserSliderCode_aSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Attack"); + //[/UserSliderCode_aSlider2] + } + else if (sliderThatWasMoved == dSlider2.get()) + { + //[UserSliderCode_dSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Decay"); + //[/UserSliderCode_dSlider2] + } + else if (sliderThatWasMoved == sSlider2.get()) + { + //[UserSliderCode_sSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Sustain Level"); + //[/UserSliderCode_sSlider2] + } + else if (sliderThatWasMoved == rSlider2.get()) + { + //[UserSliderCode_rSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Release"); + //[/UserSliderCode_rSlider2] + } + else if (sliderThatWasMoved == attenuationSlider2.get()) + { + //[UserSliderCode_attenuationSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Attenuation"); + //[/UserSliderCode_attenuationSlider2] + } + else if (sliderThatWasMoved == tremoloSlider.get()) + { + //[UserSliderCode_tremoloSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Tremolo Depth"); + //[/UserSliderCode_tremoloSlider] + } + else if (sliderThatWasMoved == vibratoSlider.get()) + { + //[UserSliderCode_vibratoSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Vibrato Depth"); + //[/UserSliderCode_vibratoSlider] + } + else if (sliderThatWasMoved == feedbackSlider.get()) + { + //[UserSliderCode_feedbackSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Feedback"); + //[/UserSliderCode_feedbackSlider] + } + else if (sliderThatWasMoved == emulatorSlider.get()) + { + //[UserSliderCode_emulatorSlider] -- add your slider handling code here.. + //[/UserSliderCode_emulatorSlider] + } + + //[UsersliderValueChanged_Post] + //[/UsersliderValueChanged_Post] + } + void PluginGui::sliderDragEnded (Slider* sliderThatWasMoved) { + //[UsersliderValueChanged_Pre] + + //[/UsersliderValueChanged_Pre] + + if (sliderThatWasMoved == aSlider.get()) + { + //[UserSliderCode_aSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Attack"); + //[/UserSliderCode_aSlider] + } + else if (sliderThatWasMoved == dSlider.get()) + { + //[UserSliderCode_dSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Decay"); + //[/UserSliderCode_dSlider] + } + else if (sliderThatWasMoved == sSlider.get()) + { + //[UserSliderCode_sSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Sustain Level"); + //[/UserSliderCode_sSlider] + } + else if (sliderThatWasMoved == rSlider.get()) + { + //[UserSliderCode_rSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Release"); + //[/UserSliderCode_rSlider] + } + else if (sliderThatWasMoved == attenuationSlider.get()) + { + //[UserSliderCode_attenuationSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Attenuation"); + //[/UserSliderCode_attenuationSlider] + } + else if (sliderThatWasMoved == aSlider2.get()) + { + //[UserSliderCode_aSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Attack"); + //[/UserSliderCode_aSlider2] + } + else if (sliderThatWasMoved == dSlider2.get()) + { + //[UserSliderCode_dSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Decay"); + //[/UserSliderCode_dSlider2] + } + else if (sliderThatWasMoved == sSlider2.get()) + { + //[UserSliderCode_sSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Sustain Level"); + //[/UserSliderCode_sSlider2] + } + else if (sliderThatWasMoved == rSlider2.get()) + { + //[UserSliderCode_rSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Release"); + //[/UserSliderCode_rSlider2] + } + else if (sliderThatWasMoved == attenuationSlider2.get()) + { + //[UserSliderCode_attenuationSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Attenuation"); + //[/UserSliderCode_attenuationSlider2] + } + else if (sliderThatWasMoved == tremoloSlider.get()) + { + //[UserSliderCode_tremoloSlider] -- add your slider handling code here.. + processor->endChangeGesture("Tremolo Depth"); + //[/UserSliderCode_tremoloSlider] + } + else if (sliderThatWasMoved == vibratoSlider.get()) + { + //[UserSliderCode_vibratoSlider] -- add your slider handling code here.. + processor->endChangeGesture("Vibrato Depth"); + //[/UserSliderCode_vibratoSlider] + } + else if (sliderThatWasMoved == feedbackSlider.get()) + { + //[UserSliderCode_feedbackSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Feedback"); + //[/UserSliderCode_feedbackSlider] + } + else if (sliderThatWasMoved == emulatorSlider.get()) + { + //[UserSliderCode_emulatorSlider] -- add your slider handling code here.. + //[/UserSliderCode_emulatorSlider] + } + + //[UsersliderValueChanged_Post] + updateFromHost=true; + DBG("Slider -> End"); + //[/UsersliderValueChanged_Post] + } + //============================================================================== + // These methods implement the FileDragAndDropTarget interface, and allow our component + // to accept drag-and-drop of files.. + + bool PluginGui::isInterestedInFileDrag (const StringArray& files) + { + return 1 == files.size() && ( + files[0].toLowerCase().endsWith(".sbi") + || files[0].toLowerCase().endsWith(".sb2") + || files[0].toLowerCase().endsWith(".sb0") + ); + } + + void PluginGui::fileDragEnter (const StringArray& files, int x, int y) + { + } + + void PluginGui::fileDragMove (const StringArray& files, int x, int y) + { + } + + void PluginGui::fileDragExit (const StringArray& files) + { + } + + void PluginGui::filesDropped (const StringArray& files, int x, int y) + { + if (isInterestedInFileDrag(files)) { + this->loadandUpdateInstrument(files[0]); + } + } + + void PluginGui::timerCallback() + { + for (int i = 0; i < Hiopl::CHANNELS; ++i) { + channels[i]->setButtonText(processor->getChannelEnvelopeStage(i + 1)); + } + syncGUI(); + } + void PluginGui::loadPreNextFile(bool pre){ + if (pre){ + processor->selectedIdxFile -=1; + } + else{ + processor->selectedIdxFile +=1; + } + if (allSbiFiles.size() > 0){ + if (processor->selectedIdxFile > allSbiFiles.size() -1 ){ + processor->selectedIdxFile = 0; + } + if (processor->selectedIdxFile <0 ){ + processor->selectedIdxFile = allSbiFiles.size() - 1; + } + if (allSbiFiles[processor->selectedIdxFile].existsAsFile()){ + this->loadandUpdateInstrument(allSbiFiles[processor->selectedIdxFile].getFullPathName()); + } else { + loadBrowserFile(); + } + } + else{ + Array dirs; + instrumentLoadDirectory.findChildFiles(dirs, File::findDirectories, false); + bool hasFile = false; + dirs.sort(); + for (auto dir: dirs){ + Array files; + dir.findChildFiles (files, File::findFiles, false, "*.sbi"); + files.sort(); + if (files.size() > 0){ + for (auto file : files){ + hasFile = true; + allSbiFiles.add(file); + } + } + } + if (processor->selectedIdxFile > allSbiFiles.size() - 1){ + processor->selectedIdxFile = 0; + } + if (processor->selectedIdxFile <0 ){ + processor->selectedIdxFile = allSbiFiles.size() - 1; + } + if(hasFile){ + if (allSbiFiles[processor->selectedIdxFile].existsAsFile()){ + this->loadandUpdateInstrument(allSbiFiles[processor->selectedIdxFile].getFullPathName()); + } else { + loadBrowserFile(); + } + } + else { + loadBrowserFile(); + } + } + + } + bool PluginGui::loadBrowserFile(){ + + FileChooser browser("Select SBI instrument file", + instrumentLoadDirectory, + #ifdef JUCE_IOS + "*.sbi"); + #endif + + #ifndef JUCE_IOS + "*.sbi"); + #endif + if (browser.browseForFileToOpen()){ + File selectedFile = browser.getResult(); + instrumentLoadDirectory = selectedFile.getParentDirectory(); + this->loadandUpdateInstrument(selectedFile.getFullPathName()); + } + return 0; + } + + bool PluginGui::showLoadMenu() + { + menuLoad.clear(); + Array dirs; + allSbiFiles.clear(); + bool hasFile = false; + instrumentLoadDirectory.findChildFiles(dirs, File::findDirectories, false); + dirs.sort(); + for (auto dir: dirs) + { + Array files; + dir.findChildFiles (files, File::findFiles, false, "*.sbi"); + files.sort(); + if (files.size() > 0) + { + bool selectedSub = false; + PopupMenu subMenu; + for (auto file : files) + { + allSbiFiles.add(file); + hasFile = true; + if (processor->lastLoadFile == file.getFullPathName()) + { + selectedSub = true; + subMenu.addItem(allSbiFiles.size(), file.getFileNameWithoutExtension(), true, true); + } + else + subMenu.addItem(allSbiFiles.size(), file.getFileNameWithoutExtension()); + } + if(selectedSub) + menuLoad.addSubMenu (dir.getFileName(), std::move (subMenu), true, nullptr, true, 0); + else + menuLoad.addSubMenu(dir.getFileName(), subMenu); + + } + } + if(hasFile) + { + //int id = menuLoad.show(); + menuLoad.showMenuAsync (PopupMenu::Options().withParentComponent (this->getTopLevelComponent()), [this](int id) + { + if (id > 0) + { + auto fileId = id - 1; + processor->selectedIdxFile = fileId; + auto sbiFile = this->allSbiFiles[fileId]; + + if (sbiFile.existsAsFile()) + this->loadandUpdateInstrument(sbiFile.getFullPathName()); + else + this->loadBrowserFile(); + } + // No select, return true to ignore the popup menu + else + { + return; + } + }); + + } + return hasFile; + } + + void PluginGui::loadandUpdateInstrument(String path) { + + processor->loadInstrumentFromFile(path); + + File file(path); + loadButton->setButtonText(file.getFileNameWithoutExtension()); + } + + void PluginGui::syncGUI(){ + if (updateFromHost){ + updateFromParameters(); + } + } +//[/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 + + + + + + + + + + + + + + +END_JUCER_METADATA +*/ +#endif + +//============================================================================== +// Binary resources - be careful not to edit any of these sections! + +// JUCER_RESOURCE: full_sine_png, 203, "../img/full_sine.png" +static const unsigned char resource_PluginGui_full_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,146,73,68,65,84,88,133,237,151,81,14,64, +48,16,68,183,226,94,110,225,18,110,230,146,252,116,35,153,166,97,219,21,131,125,63,66,144,241,76,75,147,136,108,66,192,240,116,0,101,60,61,99,133,253,249,158,32,47,48,162,38,208,64,237,120,39,52,70,146, +224,168,185,250,196,206,102,104,140,68,16,228,232,72,235,59,119,234,10,141,145,8,130,148,51,235,212,120,39,235,117,75,222,230,110,209,24,41,103,86,43,78,163,141,198,72,4,65,250,59,162,116,126,181,105, +140,68,16,196,175,35,74,227,191,238,135,141,40,198,245,208,15,140,24,161,49,178,3,63,99,23,114,126,178,233,88,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::full_sine_png = (const char*) resource_PluginGui_full_sine_png; +const int PluginGui::full_sine_pngSize = 203; + +// JUCER_RESOURCE: half_sine_png, 179, "../img/half_sine.png" +static const unsigned char resource_PluginGui_half_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,122,73,68,65,84,88,133,237,148,65,10,128, +32,20,5,191,209,189,186,69,135,236,22,157,172,22,33,193,72,20,102,248,130,55,155,40,50,198,73,77,17,177,133,0,67,111,129,204,120,251,198,130,251,249,27,145,31,20,201,37,88,224,234,249,75,100,138,164,224, +174,121,58,227,198,101,100,138,88,132,156,107,164,246,159,55,90,43,50,69,44,66,202,147,117,170,252,82,237,184,245,184,200,20,41,79,214,78,200,20,177,8,177,8,177,8,177,8,177,8,177,8,217,1,254,115,12,122, +78,109,41,249,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::half_sine_png = (const char*) resource_PluginGui_half_sine_png; +const int PluginGui::half_sine_pngSize = 179; + +// JUCER_RESOURCE: abs_sine_png, 181, "../img/abs_sine.png" +static const unsigned char resource_PluginGui_abs_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,124,73,68,65,84,88,133,237,148,81,10,128, +32,16,5,215,232,94,221,162,67,118,201,250,81,130,17,209,182,192,13,222,252,21,62,153,125,150,201,204,78,11,192,50,91,160,176,118,87,28,120,222,7,119,126,152,251,65,35,101,34,78,210,122,255,50,23,166,145, +100,252,107,122,19,183,214,121,115,153,48,141,72,132,220,223,200,232,25,147,143,114,97,26,145,8,169,111,214,205,185,147,55,151,9,211,72,125,179,78,34,76,35,18,33,18,33,18,33,18,33,18,33,18,33,23,197,62, +17,185,230,123,254,103,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::abs_sine_png = (const char*) resource_PluginGui_abs_sine_png; +const int PluginGui::abs_sine_pngSize = 181; + +// JUCER_RESOURCE: quarter_sine_png, 181, "../img/quarter_sine.png" +static const unsigned char resource_PluginGui_quarter_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,124,73,68,65,84,88,133,237,150,81,10, +128,32,16,68,215,232,94,221,162,67,118,139,78,150,31,41,209,196,162,174,31,205,199,60,8,177,28,120,77,33,38,51,187,140,128,229,111,129,74,91,228,40,215,40,131,57,154,70,86,247,73,164,133,137,28,113,35, +245,141,118,152,183,136,230,10,52,141,72,4,121,254,17,252,198,189,68,115,0,77,35,18,65,190,251,200,230,172,244,238,207,230,206,123,160,105,36,153,206,35,111,36,130,72,4,145,8,34,17,68,34,136,68,144,12, +123,138,13,78,65,207,81,74,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::quarter_sine_png = (const char*) resource_PluginGui_quarter_sine_png; +const int PluginGui::quarter_sine_pngSize = 181; + +// JUCER_RESOURCE: camel_sine_png, 174, "../img/camel_sine.png" +static const unsigned char resource_PluginGui_camel_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,117,73,68,65,84,88,133,237,148,209,9,192, +32,12,68,99,233,94,221,162,67,118,139,78,86,63,218,80,56,41,129,40,245,62,238,129,136,6,225,229,132,20,51,187,140,128,101,182,128,243,45,114,60,43,91,31,38,242,51,107,115,227,93,238,201,115,18,154,68, +36,130,20,243,57,18,253,117,111,61,128,38,17,137,32,18,65,218,201,186,5,47,122,235,200,121,111,52,137,188,115,100,50,52,137,72,4,145,8,34,17,68,34,136,68,16,137,32,21,146,46,14,97,109,79,27,36,0,0,0,0, +73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::camel_sine_png = (const char*) resource_PluginGui_camel_sine_png; +const int PluginGui::camel_sine_pngSize = 174; + +// JUCER_RESOURCE: alternating_sine_png, 197, "../img/alternating_sine.png" +static const unsigned char resource_PluginGui_alternating_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,140,73,68,65,84,88,133,99,100,96, +96,248,207,48,8,0,211,64,59,0,6,112,59,100,21,20,15,184,67,232,12,88,48,68,96,161,16,134,131,79,35,48,104,66,100,212,33,232,128,145,1,86,142,16,74,11,52,78,43,131,38,68,70,29,130,14,70,29,130,14,48,75, +86,123,2,58,112,201,103,67,233,169,36,186,224,32,132,26,52,33,130,40,71,8,1,26,151,51,131,38,68,70,29,130,14,70,29,130,14,136,207,53,48,64,163,22,220,160,9,145,81,135,160,3,210,211,8,12,80,185,197,54, +12,66,132,202,96,208,132,8,0,67,200,18,200,95,246,147,104,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::alternating_sine_png = (const char*) resource_PluginGui_alternating_sine_png; +const int PluginGui::alternating_sine_pngSize = 197; + +// JUCER_RESOURCE: square_png, 179, "../img/square.png" +static const unsigned char resource_PluginGui_square_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,122,73,68,65,84,88,133,237,150,177,17,128,48, +12,3,29,142,189,216,130,37,216,44,75,66,99,83,40,85,34,238,80,161,111,146,198,190,143,10,59,45,34,238,16,96,251,91,160,216,223,91,39,59,157,92,185,96,34,197,236,203,216,36,19,153,68,44,130,88,4,177,8, +98,17,100,156,172,199,98,167,217,186,43,207,156,228,50,137,180,96,255,35,181,107,86,119,148,90,34,22,65,44,130,88,4,177,8,50,238,154,85,200,223,188,76,34,252,174,249,8,153,68,30,246,154,9,40,60,195,35, +102,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::square_png = (const char*) resource_PluginGui_square_png; +const int PluginGui::square_pngSize = 179; + +// JUCER_RESOURCE: logarithmic_saw_png, 206, "../img/logarithmic_saw.png" +static const unsigned char resource_PluginGui_logarithmic_saw_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,149,73,68,65,84,88,133,237,150,81, +10,128,32,16,68,215,232,94,221,194,75,116,158,46,225,37,235,103,37,24,19,139,218,118,64,31,136,172,32,12,15,87,13,34,178,11,1,147,119,128,204,25,36,233,112,15,226,204,8,130,148,65,156,206,10,177,17,39, +104,130,204,197,74,212,57,65,109,12,177,145,12,154,193,245,143,33,54,178,64,189,65,125,247,142,193,125,200,170,179,26,166,49,18,196,234,63,210,58,91,208,149,52,70,234,93,243,150,134,1,164,3,35,72,237, +94,82,104,140,140,32,200,255,65,162,92,118,78,199,70,42,208,4,177,123,107,30,66,99,228,0,184,114,16,107,149,79,109,141,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::logarithmic_saw_png = (const char*) resource_PluginGui_logarithmic_saw_png; +const int PluginGui::logarithmic_saw_pngSize = 206; + +// JUCER_RESOURCE: channeloff_png, 414, "../img/channeloff.png" +static const unsigned char resource_PluginGui_channeloff_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,0,31,243,255,97,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127, +0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,222,8,25,20,6,56,156,246,144,159,0,0,0,29,105,84,88,116,67,111,109,109,101,110,116,0,0,0,0,0,67,114,101,97,116,101,100,32, +119,105,116,104,32,71,73,77,80,100,46,101,7,0,0,1,2,73,68,65,84,56,203,165,211,61,78,66,65,20,5,224,143,193,82,119,224,62,104,40,166,196,194,202,10,66,65,137,149,75,120,121,193,21,216,104,108,164,32,178, +128,183,1,94,66,67,66,172,172,140,27,176,178,192,202,70,139,55,26,2,138,2,39,153,102,230,220,159,185,231,220,154,85,100,14,113,138,46,154,233,118,138,17,10,185,183,101,122,88,9,110,99,129,11,20,104,164, +83,164,187,69,226,252,128,204,64,230,67,166,239,55,100,250,137,51,176,86,185,122,104,249,11,153,86,226,182,161,150,254,188,192,185,220,141,255,160,234,242,26,71,117,209,25,142,229,27,90,95,69,105,46,58, +193,107,72,211,30,218,30,67,116,67,146,106,178,67,130,9,154,193,158,8,201,36,113,135,216,136,105,72,14,235,237,144,160,135,81,248,118,92,182,133,10,21,183,129,162,174,244,46,122,194,157,104,166,244,252, +167,145,24,163,35,247,80,79,186,62,138,14,112,43,122,81,154,111,168,60,198,165,220,85,229,196,245,101,186,199,44,233,60,89,26,88,47,181,221,145,27,127,133,212,246,93,231,79,44,229,73,181,37,137,229,213, +0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::channeloff_png = (const char*) resource_PluginGui_channeloff_png; +const int PluginGui::channeloff_pngSize = 414; + +// JUCER_RESOURCE: channelon_png, 326, "../img/channelon.png" +static const unsigned char resource_PluginGui_channelon_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,0,31,243,255,97,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127, +0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,222,8,25,20,6,39,17,254,157,106,0,0,0,29,105,84,88,116,67,111,109,109,101,110,116,0,0,0,0,0,67,114,101,97,116,101,100,32, +119,105,116,104,32,71,73,77,80,100,46,101,7,0,0,0,170,73,68,65,84,56,203,173,147,177,13,194,48,16,69,159,143,148,176,81,20,101,129,84,84,68,217,5,89,176,0,204,16,193,0,30,0,69,202,8,169,88,131,12,64,145, +139,176,82,64,116,230,117,182,252,206,242,249,159,99,201,145,45,80,1,13,144,235,110,15,180,64,192,51,198,199,221,66,62,0,55,190,83,227,185,207,139,77,36,159,128,11,191,217,83,146,209,241,248,20,152,110, +94,35,207,20,148,60,233,24,156,190,249,133,141,157,104,195,172,84,162,221,182,210,72,244,85,22,114,33,17,209,144,88,233,69,19,102,165,21,32,36,20,8,162,217,174,13,114,141,103,156,146,216,49,80,146,1,197, +74,249,140,231,250,151,97,114,169,227,252,6,230,208,38,246,228,75,209,233,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::channelon_png = (const char*) resource_PluginGui_channelon_png; +const int PluginGui::channelon_pngSize = 326; + +// JUCER_RESOURCE: toggle_off_sq_png, 118, "../img/toggle_off_sq.png" +static const unsigned char resource_PluginGui_toggle_off_sq_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0,0,86,117,92,231,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0, +0,48,73,68,65,84,40,21,99,100,172,103,248,207,64,2,96,1,169,253,223,72,156,14,160,225,12,76,196,41,69,168,26,213,128,8,11,220,44,218,135,18,56,166,65,49,72,44,0,0,186,23,4,27,1,178,34,38,0,0,0,0,73,69, +78,68,174,66,96,130,0,0}; + +const char* PluginGui::toggle_off_sq_png = (const char*) resource_PluginGui_toggle_off_sq_png; +const int PluginGui::toggle_off_sq_pngSize = 118; + +// JUCER_RESOURCE: toggle_on_sq_png, 134, "../img/toggle_on_sq.png" +static const unsigned char resource_PluginGui_toggle_on_sq_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0,0,86,117,92,231,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0, +64,73,68,65,84,40,21,99,100,172,103,248,207,64,2,96,1,169,253,223,72,156,14,160,225,12,96,13,32,229,32,14,62,0,51,148,9,159,34,108,114,163,26,176,133,10,186,24,60,30,96,225,140,174,0,157,15,214,64,40, +210,144,53,1,0,212,234,7,159,245,36,0,105,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::toggle_on_sq_png = (const char*) resource_PluginGui_toggle_on_sq_png; +const int PluginGui::toggle_on_sq_pngSize = 134; + +// JUCER_RESOURCE: line_border_horiz_png, 108, "../img/line_border_horiz.png" +static const unsigned char resource_PluginGui_line_border_horiz_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,6,8,6,0,0,0,199,98,110,160,0,0,0,1,115,82,71,66,0,174,206,28,233, +0,0,0,38,73,68,65,84,40,21,99,100,96,96,248,15,196,84,7,76,84,55,17,106,32,11,67,176,32,77,204,166,153,139,25,129,206,29,90,97,12,0,88,84,2,111,238,165,1,44,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::line_border_horiz_png = (const char*) resource_PluginGui_line_border_horiz_png; +const int PluginGui::line_border_horiz_pngSize = 108; + +// JUCER_RESOURCE: line_border_vert_png, 107, "../img/line_border_vert.png" +static const unsigned char resource_PluginGui_line_border_vert_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,6,0,0,0,22,8,6,0,0,0,227,26,237,211,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,37,73,68,65,84,40,21,99,100,96,96,248,15,196,12,12,193,130,96,138,97,237,123,48,205,4,225,97,146,163,18,24,97,50,236,131,4,0,123,194,3,43,141,43,209,32,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::line_border_vert_png = (const char*) resource_PluginGui_line_border_vert_png; +const int PluginGui::line_border_vert_pngSize = 107; + +// JUCER_RESOURCE: algo_switch_off_png, 162, "../img/algo_switch_off.png" +static const unsigned char resource_PluginGui_algo_switch_off_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,92,73,68,65,84,88,9,237,151,177,13,0,32,12,195,90,196,223,136,203,129,178,248,133,168,74,167,140,113,60,53,115,197,137,70,55,139,229,236,30,68,79,78,140,30,40,80,24,136,45,52,147,13,105,122,161,149, +13,177,133,102,178,33,77,47,180,178,33,182,208,76,54,164,233,133,86,54,196,22,154,201,134,52,189,208,234,127,172,245,233,117,185,11,224,6,4,43,49,160,14,163,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::algo_switch_off_png = (const char*) resource_PluginGui_algo_switch_off_png; +const int PluginGui::algo_switch_off_pngSize = 162; + +// JUCER_RESOURCE: algo_switch_on_png, 168, "../img/algo_switch_on.png" +static const unsigned char resource_PluginGui_algo_switch_on_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,98,73,68,65,84,88,9,237,151,177,13,192,48,12,195,236,52,223,244,200,92,153,115,10,7,233,196,19,4,67,158,52,138,226,228,204,21,21,141,110,94,150,231,205,22,72,223,174,24,45,72,0,97,32,140,33,25,109, +72,82,11,74,217,16,198,144,140,54,36,169,5,165,108,8,99,72,70,27,146,212,130,82,54,132,49,36,163,13,73,106,65,169,255,99,189,159,94,151,59,99,230,7,124,25,120,111,199,0,0,0,0,73,69,78,68,174,66,96,130, +0,0}; + +const char* PluginGui::algo_switch_on_png = (const char*) resource_PluginGui_algo_switch_on_png; +const int PluginGui::algo_switch_on_pngSize = 168; + +// JUCER_RESOURCE: algo_switch_on2_png, 169, "../img/algo_switch_on2.png" +static const unsigned char resource_PluginGui_algo_switch_on2_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,99,73,68,65,84,88,9,237,151,177,13,128,48,16,3,31,68,145,58,115,48,123,166,201,48,116,33,130,226,86,176,44,127,229,210,231,171,254,168,209,87,25,221,245,177,204,199,3,233,110,117,122,144,64,17,32, +182,208,76,49,164,233,133,86,49,196,22,154,41,134,52,189,208,42,134,216,66,51,197,144,166,23,90,197,16,91,104,166,24,210,244,66,171,255,99,221,159,158,203,189,241,194,4,31,18,119,100,16,0,0,0,0,73,69, +78,68,174,66,96,130,0,0}; + +const char* PluginGui::algo_switch_on2_png = (const char*) resource_PluginGui_algo_switch_on2_png; +const int PluginGui::algo_switch_on2_pngSize = 169; + +// JUCER_RESOURCE: algo_switch_on3_png, 151, "../img/algo_switch_on3.png" +static const unsigned char resource_PluginGui_algo_switch_on3_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,81,73,68,65,84,88,9,237,146,65,10,0,32,12,195,166,71,159,237,199,21,252,65,47,65,70,118,47,165,201,70,237,117,170,209,205,70,91,222,20,7,253,110,84,67,26,130,9,248,114,48,240,184,78,67,49,50,56,160, +33,24,120,92,167,161,24,25,28,208,16,12,60,174,211,80,140,12,14,180,51,116,1,132,232,1,179,41,122,114,149,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::algo_switch_on3_png = (const char*) resource_PluginGui_algo_switch_on3_png; +const int PluginGui::algo_switch_on3_pngSize = 151; + +// JUCER_RESOURCE: twoopAm_png, 1872, "../img/Two-OP AM.png" +static const unsigned char resource_PluginGui_twoopAm_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,183,0,0,0,171,8,6,0,0,0,36,122,13,127,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,7,10, +73,68,65,84,120,1,237,157,191,110,84,71,20,135,231,174,221,208,145,221,164,67,72,116,161,112,30,0,185,72,73,210,217,239,1,72,32,37,101,156,50,145,82,36,77,222,194,86,20,41,166,11,5,242,3,64,65,164,20, +150,44,58,194,138,138,10,103,178,70,1,123,61,123,175,239,222,57,103,207,153,217,143,6,239,253,115,230,204,247,251,52,26,95,175,215,77,216,31,199,80,235,191,102,244,125,216,249,103,175,214,233,49,175,110, +2,163,238,211,156,133,64,185,4,144,187,220,236,232,252,10,2,200,125,5,32,78,151,75,0,185,203,205,142,206,175,32,128,220,87,0,226,116,185,4,54,91,91,223,157,54,173,231,188,157,56,248,116,47,196,127,191, +243,214,22,253,216,18,96,229,182,229,207,232,138,4,144,91,17,46,165,109,9,32,183,45,127,70,87,36,128,220,138,112,41,109,75,0,185,109,249,51,186,34,1,228,86,132,75,105,91,2,200,109,203,159,209,21,9,32, +183,34,92,74,219,18,64,110,91,254,140,174,72,0,185,21,225,82,218,150,0,114,219,242,103,116,69,2,200,173,8,151,210,182,4,144,219,150,63,163,43,18,64,110,69,184,148,182,37,208,180,254,130,176,208,91,94, +155,237,141,122,127,1,121,65,118,241,233,105,57,111,21,94,208,127,77,135,88,185,107,74,147,185,204,17,64,238,57,28,188,168,137,64,251,111,226,40,204,242,214,157,155,10,85,237,75,30,31,157,216,55,65,7, +9,1,86,238,4,9,7,106,33,128,220,181,36,201,60,18,2,200,157,32,225,64,45,4,144,187,150,36,153,71,66,0,185,19,36,28,168,133,0,114,215,146,36,243,72,8,32,119,130,132,3,181,16,64,238,90,146,100,30,9,1,228, +78,144,112,160,22,2,200,93,75,146,204,35,33,128,220,9,18,14,212,66,0,185,107,73,146,121,36,4,144,59,65,194,129,90,8,32,119,45,73,50,143,132,0,114,39,72,56,80,11,1,228,174,37,73,230,145,16,64,238,4,9,7, +106,33,128,220,181,36,201,60,18,2,200,157,32,225,64,45,4,144,187,150,36,153,71,66,0,185,19,36,28,168,133,0,114,215,146,36,243,72,8,32,119,130,132,3,181,16,88,233,231,150,212,2,173,115,30,251,99,95,31, +31,39,244,177,120,157,115,118,122,146,149,219,105,48,180,149,79,160,125,229,62,152,252,144,95,126,86,225,167,55,34,101,40,2,129,101,9,180,203,29,227,55,203,22,227,122,8,120,34,192,182,196,83,26,244,34, +74,0,185,69,113,82,204,19,129,246,109,137,167,46,75,234,197,234,233,132,183,167,52,14,50,99,229,118,16,2,45,232,16,216,12,77,243,173,78,233,143,85,101,158,186,124,44,199,23,16,232,71,96,51,236,188,254, +177,223,165,3,175,218,222,64,238,129,232,184,45,143,0,219,146,60,126,220,237,152,0,114,59,14,135,214,242,8,32,119,30,63,238,118,76,0,185,29,135,67,107,121,4,144,59,143,31,119,59,38,128,220,142,195,161, +181,60,2,200,157,199,143,187,29,19,64,110,199,225,208,90,30,1,228,206,227,199,221,142,9,32,183,227,112,104,45,143,0,114,231,241,227,110,199,4,144,219,113,56,180,150,71,0,185,243,248,113,183,99,2,200,237, +56,28,90,203,35,128,220,121,252,184,219,49,1,228,118,28,14,173,229,17,64,238,60,126,220,237,152,0,114,59,14,135,214,242,8,32,119,30,63,238,118,76,0,185,29,135,67,107,121,4,86,250,185,37,199,71,39,121, +221,114,55,4,150,32,192,202,189,4,44,46,45,139,0,114,151,149,23,221,46,65,64,125,91,18,159,158,54,75,244,195,165,16,16,35,192,202,45,134,146,66,222,8,32,183,183,68,232,71,140,0,114,139,161,164,80,22,129, +131,241,31,225,247,201,231,89,53,46,221,140,220,151,128,240,210,136,64,12,95,133,119,241,121,216,159,252,28,30,223,24,75,116,129,220,18,20,169,33,67,32,134,217,3,142,120,63,188,125,251,119,56,152,220, +11,127,126,153,245,192,3,185,101,98,161,138,44,129,113,136,241,151,240,230,249,179,240,219,103,119,135,150,70,238,161,228,184,79,159,64,140,183,195,233,233,97,24,184,31,71,110,253,136,24,33,151,192,192, +253,56,114,231,130,231,254,213,16,24,176,31,71,238,213,68,195,40,114,4,122,239,199,145,91,14,58,149,86,73,224,226,126,124,127,114,123,209,208,188,239,99,17,149,18,143,173,243,159,234,107,194,187,16,154, +95,195,181,107,123,225,238,203,233,135,248,88,185,63,144,224,255,114,9,156,237,199,99,188,119,249,249,56,43,119,185,145,206,119,190,206,43,247,60,137,217,34,222,188,8,97,244,136,149,251,50,24,94,151,79, +32,134,247,139,54,114,151,31,37,51,56,39,48,13,163,230,65,248,100,107,43,236,188,58,204,250,217,253,121,77,190,130,128,33,129,228,27,202,39,239,155,65,110,195,76,86,50,244,238,180,140,239,171,134,127, +207,240,56,196,230,97,216,125,61,219,103,207,255,67,238,121,30,188,42,134,64,243,87,104,70,15,207,182,31,109,45,179,231,110,35,195,113,175,4,230,246,213,93,77,178,114,119,209,225,156,31,2,45,251,234,174, +6,145,187,139,14,231,188,16,104,221,87,119,53,136,220,93,116,56,103,75,224,255,31,198,116,237,171,187,26,100,207,221,69,135,115,86,4,166,179,159,50,222,15,215,183,190,24,42,246,89,227,172,220,86,241,49, +110,74,96,192,190,58,45,114,126,4,185,207,89,240,149,37,129,38,28,206,158,87,63,90,244,188,122,104,91,200,61,148,28,247,201,18,216,153,126,45,91,112,246,214,41,233,130,212,131,128,23,2,200,237,37,9,250, +16,39,160,190,45,105,182,55,162,120,215,142,11,242,169,182,126,194,97,229,246,147,5,157,8,19,64,110,97,160,148,243,67,64,125,91,114,113,170,183,238,220,188,248,178,154,175,249,91,63,62,163,100,229,246, +153,11,93,9,16,64,110,1,136,148,240,73,0,185,125,230,66,87,2,4,144,91,0,34,37,124,18,64,110,159,185,208,149,0,1,228,22,128,72,9,159,4,144,219,103,46,116,37,64,0,185,5,32,82,194,39,1,228,246,153,11,93, +9,16,64,110,1,136,148,240,73,0,185,125,230,66,87,2,4,144,91,0,34,37,124,18,64,110,159,185,208,149,0,1,228,22,128,72,9,159,4,144,219,103,46,116,37,64,0,185,5,32,82,194,39,1,228,246,153,11,93,9,16,64,110, +1,136,148,240,73,0,185,125,230,66,87,2,4,144,91,0,34,37,124,18,64,110,159,185,208,149,0,1,228,22,128,72,9,159,4,144,219,103,46,116,37,64,96,165,159,91,34,208,175,255,18,195,255,228,156,255,185,21,214, +33,43,119,97,129,209,110,127,2,200,221,159,21,87,22,70,0,185,11,11,140,118,251,19,64,238,254,172,184,178,48,2,200,93,88,96,180,219,159,0,79,75,250,179,234,119,229,238,180,233,119,33,87,105,19,96,229,214, +38,76,125,51,2,200,109,134,158,129,181,9,32,183,54,97,234,155,17,64,110,51,244,12,172,77,0,185,181,9,83,223,140,0,114,155,161,103,96,109,2,200,173,77,152,250,102,4,144,219,12,61,3,107,19,64,110,109,194, +212,55,35,128,220,102,232,25,88,155,0,114,107,19,166,190,25,1,228,54,67,207,192,218,4,144,91,155,48,245,205,8,32,183,25,122,6,214,38,128,220,218,132,169,111,70,0,185,205,208,51,176,54,1,228,214,38,76, +125,51,2,200,109,134,158,129,181,9,32,183,54,97,234,155,17,64,110,51,244,12,172,77,0,185,181,9,83,223,140,0,114,155,161,103,96,109,2,200,173,77,152,250,102,4,86,250,185,37,199,71,39,102,19,101,224,245, +35,192,202,189,126,153,175,205,140,145,123,109,162,94,191,137,254,7,149,161,178,110,197,68,224,25,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::twoopAm_png = (const char*) resource_PluginGui_twoopAm_png; +const int PluginGui::twoopAm_pngSize = 1872; + +// JUCER_RESOURCE: twoopFm_png, 1203, "../img/Two-OP FM.png" +static const unsigned char resource_PluginGui_twoopFm_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,219,0,0,0,81,8,6,0,0,0,91,168,211,254,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,4,109, +73,68,65,84,120,1,237,221,177,79,147,65,24,199,241,231,10,11,147,218,202,102,76,220,100,168,127,128,97,208,193,4,221,202,127,225,0,38,144,232,40,140,154,104,162,131,254,23,109,140,137,176,201,96,248,3, +100,208,196,129,132,184,41,13,46,76,224,249,86,36,185,148,247,170,190,125,142,222,221,251,197,193,151,123,233,241,220,231,233,47,111,175,77,139,145,110,211,74,174,95,166,177,46,157,239,107,185,46,143, +117,165,37,208,72,171,92,170,69,32,93,1,194,150,110,239,168,60,49,1,194,150,88,195,40,55,93,1,194,150,110,239,168,60,49,1,194,150,88,195,40,55,93,129,105,111,233,139,125,227,61,23,219,137,222,229,53,177, +63,31,199,86,22,245,32,224,10,112,101,115,53,56,70,32,160,0,97,11,136,203,212,8,184,2,132,205,213,224,24,129,128,2,132,45,32,46,83,35,224,10,16,54,87,131,99,4,2,10,16,182,128,184,76,141,128,43,64,216, +92,13,142,17,8,40,64,216,2,226,50,53,2,174,0,97,115,53,56,70,32,160,0,97,11,136,203,212,8,184,2,132,205,213,224,24,129,128,2,132,45,32,46,83,35,224,10,16,54,87,131,99,4,2,10,16,182,128,184,76,141,128, +43,96,188,31,248,163,244,22,27,51,63,149,239,7,10,185,146,127,142,237,135,227,137,188,53,9,231,146,102,68,54,196,149,45,178,134,80,78,190,2,132,45,223,222,178,178,200,4,252,239,212,14,80,232,181,155,87, +3,204,58,249,41,119,183,247,38,95,132,83,1,206,14,70,68,135,92,217,34,106,6,165,228,45,64,216,242,238,47,171,139,72,128,176,69,212,12,74,201,91,128,176,229,221,95,86,23,145,0,97,139,168,25,148,146,183, +0,97,203,187,191,172,46,34,1,194,22,81,51,40,37,111,1,194,150,119,127,89,93,68,2,132,45,162,102,80,74,222,2,132,45,239,254,178,186,136,4,8,91,68,205,160,148,188,5,8,91,222,253,101,117,17,9,16,182,136, +154,65,41,121,11,16,182,188,251,203,234,34,18,32,108,17,53,131,82,34,18,232,53,223,201,219,214,117,205,138,8,155,166,38,115,229,35,96,229,174,28,217,29,233,182,94,200,230,149,166,198,194,8,155,134,34, +115,228,41,96,165,120,115,181,93,150,195,195,47,210,107,45,201,251,91,99,189,217,154,176,229,121,55,97,85,186,2,77,177,246,165,28,236,124,148,55,179,11,85,167,38,108,85,229,184,93,253,4,172,157,147,227, +227,13,169,184,159,35,108,245,187,203,176,226,113,5,42,238,231,8,219,184,240,220,190,158,2,21,246,115,132,173,158,119,21,86,173,39,240,207,251,57,194,166,135,206,76,117,22,112,247,115,221,214,92,25,197, +88,79,101,150,77,88,251,177,110,115,50,31,183,254,252,71,189,232,39,229,252,55,229,193,126,206,216,59,197,75,5,175,101,102,102,77,22,190,246,79,111,194,149,237,84,130,255,17,208,18,24,236,231,172,93,26, +126,125,206,127,101,235,181,158,168,252,238,103,7,42,211,48,9,2,9,10,156,238,231,238,75,111,118,213,31,54,107,31,38,184,56,74,70,32,62,1,43,166,248,39,60,140,140,175,53,84,148,143,64,95,26,230,129,92, +106,183,165,243,109,195,127,101,203,103,193,172,4,129,243,21,48,114,36,98,156,39,72,182,126,255,126,194,166,221,6,165,63,34,249,223,101,213,236,143,78,74,104,231,234,207,118,110,138,53,43,178,184,255, +105,184,135,132,109,88,132,239,17,168,36,96,62,139,105,172,12,30,46,250,110,62,45,198,60,242,157,84,26,215,121,86,83,169,24,166,65,64,89,96,176,47,91,151,11,237,87,114,123,171,120,248,232,255,154,150, +206,254,83,255,105,133,51,243,83,132,77,129,145,41,34,19,240,236,203,70,85,201,195,200,81,58,156,67,160,92,192,187,47,43,255,241,147,81,194,54,74,135,115,8,184,2,198,20,79,122,52,86,71,237,203,220,31, +31,62,230,117,182,97,17,190,71,224,172,64,191,120,110,99,89,46,182,111,84,13,218,96,74,174,108,103,97,25,65,224,68,160,194,190,108,20,29,97,27,165,195,185,250,10,24,217,40,94,47,91,45,123,189,172,42,10, +97,171,42,199,237,242,22,232,244,239,105,47,144,61,155,182,40,243,33,224,17,32,108,30,24,134,17,208,22,32,108,218,162,204,135,128,71,128,176,121,96,24,70,64,91,128,176,105,139,50,31,2,30,1,194,230,129, +97,24,1,109,1,194,166,45,202,124,8,120,4,8,155,7,134,97,4,180,5,8,155,182,40,243,33,224,17,32,108,30,24,134,17,208,22,32,108,218,162,204,135,128,71,128,176,121,96,24,70,64,91,128,176,105,139,50,31,2,30, +1,194,230,129,97,24,1,109,129,115,125,139,205,238,246,158,118,253,204,87,34,128,115,9,74,4,67,92,217,34,104,2,37,212,67,128,176,213,163,207,172,50,2,129,95,213,163,177,117,99,210,56,193,0,0,0,0,73,69, +78,68,174,66,96,130,0,0}; + +const char* PluginGui::twoopFm_png = (const char*) resource_PluginGui_twoopFm_png; +const int PluginGui::twoopFm_pngSize = 1203; + +// JUCER_RESOURCE: bassdrum_png, 234, "../img/bassdrum.png" +static const unsigned char resource_PluginGui_bassdrum_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,176,73,68,65,84,72,75,237,151,193,17,128, +32,12,4,67,101,118,97,145,118,97,101,250,138,206,28,19,47,4,4,30,248,211,33,89,238,66,16,146,136,92,50,224,73,243,130,143,160,29,251,119,28,87,220,29,172,64,156,185,245,29,5,146,113,182,226,238,224,70, +138,30,3,140,124,185,226,5,182,186,162,210,153,215,106,111,162,194,213,107,213,122,129,69,200,86,151,149,220,91,34,24,199,173,222,0,117,194,251,2,59,219,111,66,171,181,182,88,211,223,251,184,27,24,149, +48,112,112,53,43,198,254,31,119,7,51,160,78,185,185,226,105,193,149,74,237,26,51,197,205,193,184,39,235,212,180,143,75,143,185,238,115,245,48,112,240,194,16,13,227,55,137,104,102,18,119,3,1,34,108,1,9, +174,221,30,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; + +const char* PluginGui::bassdrum_png = (const char*) resource_PluginGui_bassdrum_png; +const int PluginGui::bassdrum_pngSize = 234; + +// JUCER_RESOURCE: snare_png, 261, "../img/snare.png" +static const unsigned char resource_PluginGui_snare_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,203,73,68,65,84,72,75,237,150,209,13,131,48, +12,5,195,100,221,162,67,118,11,38,43,63,88,149,94,244,240,65,80,172,86,229,51,56,62,46,137,77,150,214,218,187,21,60,203,239,128,31,251,242,173,199,203,120,191,241,237,224,151,49,120,238,227,14,104,198, +185,241,52,176,130,194,76,197,79,154,198,116,111,60,29,28,64,103,24,159,76,77,77,190,222,120,58,152,2,93,121,102,101,36,249,63,198,229,224,48,202,246,152,246,119,115,72,123,227,50,112,152,210,114,82,115, +55,15,239,113,25,56,76,92,171,204,246,88,207,8,54,46,7,103,102,244,253,105,99,154,56,139,251,131,187,203,222,104,235,116,117,45,167,252,250,223,41,219,83,173,138,20,236,202,136,246,110,216,120,198,111, +32,180,101,74,220,248,101,79,193,112,101,190,0,76,15,19,140,227,198,48,33,13,219,0,129,40,94,1,181,64,195,180,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; + +const char* PluginGui::snare_png = (const char*) resource_PluginGui_snare_png; +const int PluginGui::snare_pngSize = 261; + +// JUCER_RESOURCE: disabled_png, 210, "../img/disabled.png" +static const unsigned char resource_PluginGui_disabled_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,152,73,68,65,84,72,75,237,150,81,10,128,48, +12,67,187,75,122,72,47,169,63,78,161,48,146,148,97,55,168,95,194,218,62,147,56,93,51,179,203,18,174,86,224,191,92,47,171,63,167,207,231,246,8,154,15,250,199,86,167,129,187,80,245,1,200,122,252,114,145, +131,222,64,200,122,12,102,149,147,192,62,110,3,240,72,185,168,84,87,156,14,102,51,7,219,159,207,216,15,10,90,188,161,213,94,105,80,57,111,53,2,160,117,23,213,194,96,81,137,145,245,88,49,57,104,222,183, +90,5,138,219,109,225,255,113,240,0,130,218,112,198,104,66,112,189,192,65,227,244,182,52,171,111,130,58,64,1,51,47,73,27,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; + +const char* PluginGui::disabled_png = (const char*) resource_PluginGui_disabled_png; +const int PluginGui::disabled_pngSize = 210; + +// JUCER_RESOURCE: tom_png, 231, "../img/tom.png" +static const unsigned char resource_PluginGui_tom_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,174,73,68,65,84,72,75,237,150,209,13,128,32,12, +68,203,100,110,225,144,110,225,100,250,3,124,212,92,238,8,132,134,136,223,109,31,119,133,214,100,102,143,5,124,105,29,240,5,236,57,219,108,107,87,60,13,236,65,72,153,26,151,141,225,138,213,130,106,28, +5,151,66,141,189,171,157,38,249,88,113,56,216,95,86,181,199,37,15,196,115,197,97,96,127,98,245,57,13,239,113,24,88,29,80,195,21,111,48,114,96,91,237,156,225,3,228,63,179,186,88,163,174,59,53,142,174,197, +48,240,145,201,183,187,21,234,200,68,249,84,241,116,48,57,105,213,223,25,247,125,78,157,5,63,131,12,212,227,63,123,104,36,170,7,4,249,11,130,213,245,56,92,113,39,248,5,18,169,84,1,245,238,241,237,0,0, +0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::tom_png = (const char*) resource_PluginGui_tom_png; +const int PluginGui::tom_pngSize = 231; + +// JUCER_RESOURCE: hihat_png, 189, "../img/hihat.png" +static const unsigned char resource_PluginGui_hihat_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,131,73,68,65,84,72,75,99,100,96,96,248,207,48, +0,128,113,212,98,122,133,58,249,65,109,15,117,226,65,242,156,58,106,49,241,225,70,247,160,94,133,195,109,97,196,187,25,164,146,244,56,166,186,197,184,12,36,205,35,132,85,67,67,6,225,227,1,179,152,176, +91,169,170,130,244,56,166,146,245,131,32,168,7,125,28,83,61,59,17,27,119,3,102,49,204,129,116,47,50,71,45,30,109,8,16,153,59,200,47,50,71,83,53,145,65,12,83,54,4,131,154,68,31,162,43,39,223,199,20,90, +12,0,73,108,52,1,92,98,8,34,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; + +const char* PluginGui::hihat_png = (const char*) resource_PluginGui_hihat_png; +const int PluginGui::hihat_pngSize = 189; + +// JUCER_RESOURCE: cymbal_png, 237, "../img/cymbal.png" +static const unsigned char resource_PluginGui_cymbal_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,178,73,68,65,84,72,75,237,149,209,13,128,48, +8,5,233,100,110,225,144,110,225,100,250,97,209,4,67,30,164,21,108,82,127,140,161,114,61,68,90,136,232,160,132,171,76,112,84,213,227,74,189,84,165,253,186,15,0,222,140,31,97,21,235,132,41,71,237,198,97, +96,9,146,38,168,0,138,41,54,14,7,51,208,107,200,42,192,84,55,14,7,123,129,70,179,187,21,68,254,167,171,127,15,102,83,217,213,117,34,169,205,222,108,156,6,70,255,175,22,111,54,238,14,230,132,222,38,67, +27,81,242,189,103,117,26,88,154,243,179,117,146,25,71,173,126,58,25,19,188,42,109,124,239,251,99,81,233,129,1,192,168,123,157,113,187,177,51,49,90,62,193,168,66,221,226,105,165,62,1,75,77,70,1,212,184, +6,141,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0,0}; + +const char* PluginGui::cymbal_png = (const char*) resource_PluginGui_cymbal_png; +const int PluginGui::cymbal_pngSize = 237; + +// JUCER_RESOURCE: adlib_png, 1605, "../img/adlib.png" +static const unsigned char resource_PluginGui_adlib_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,85,0,0,0,87,8,2,0,0,0,250,95,158,6,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65, +77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,5,218,73,68,65,84,120,94,237,156,107,79,34,73,20,134,253,15,26,227,7,163,162,130,220,193,75,54,222,88,84, +226,10,49,198,104,212,168,49,70,116,8,1,1,47,136,72,200,122,93,64,205,70,252,201,251,174,117,166,211,67,87,99,119,139,125,153,244,243,145,145,234,122,207,121,79,213,169,238,102,186,108,108,108,108,108, +108,108,108,108,108,100,137,70,163,139,139,139,127,118,148,165,165,165,191,20,19,143,199,167,166,166,104,54,250,51,61,61,93,171,213,26,141,198,63,50,188,190,190,254,171,134,247,247,247,108,54,171,60,4, +6,235,7,161,80,232,250,250,250,246,246,246,111,9,143,143,143,137,68,2,243,251,67,49,179,179,179,61,61,61,52,180,85,184,188,188,124,120,120,32,209,34,52,232,7,8,129,134,42,192,23,105,54,250,19,14,135,171, +213,234,253,253,61,233,22,129,16,104,171,130,92,46,167,170,10,140,212,15,2,129,64,169,84,146,171,130,213,213,85,181,85,208,219,219,75,67,91,133,124,62,15,169,36,90,132,6,253,128,85,1,54,23,74,177,2,224, +2,172,199,52,27,253,9,6,131,149,74,165,77,21,188,188,188,144,191,149,129,42,40,20,10,202,67,96,176,126,224,243,249,138,197,162,92,21,172,173,173,77,78,78,82,126,21,0,11,244,245,245,209,208,86,33,147,201, +200,85,129,90,253,64,91,21,224,91,52,27,253,193,66,136,237,240,238,238,142,116,139,208,86,5,205,102,243,252,252,92,85,21,24,169,31,164,211,233,167,167,39,18,253,43,104,19,214,215,215,21,186,64,72,254, +240,240,48,13,109,9,252,126,255,197,197,5,215,2,202,245,91,178,248,5,82,169,84,27,11,252,127,48,144,225,249,249,153,217,30,139,63,130,56,58,58,74,35,90,11,108,4,56,20,112,155,98,1,105,32,32,254,248,248, +152,217,30,44,47,47,187,221,110,26,209,114,96,234,103,103,103,220,42,0,16,191,185,185,217,82,8,80,222,221,221,77,223,255,13,72,38,147,200,42,41,254,21,174,126,32,36,95,14,85,123,225,202,202,74,52,26,165, +217,232,143,199,227,185,186,186,146,171,2,124,174,97,47,196,128,202,67,96,176,126,224,114,185,208,17,114,59,34,232,223,218,218,82,213,17,205,204,204,12,12,12,208,208,86,193,233,116,226,104,36,93,8,52, +232,7,8,129,134,42,192,223,211,108,12,225,224,224,128,187,16,32,4,248,92,67,21,96,115,81,85,5,6,235,31,27,27,203,229,114,114,29,209,206,206,142,218,42,24,26,26,162,161,173,194,222,222,94,173,86,35,209, +34,52,232,7,218,170,32,22,139,209,108,244,7,11,33,250,57,185,133,144,53,63,228,111,101,160,10,110,110,110,84,85,129,145,250,193,200,200,72,54,155,149,171,130,221,221,221,137,137,9,202,175,2,96,1,12,72, +67,91,133,237,237,109,185,42,80,171,31,176,42,88,88,88,160,20,43,0,46,64,91,77,179,209,31,156,103,208,20,115,143,70,218,170,224,237,237,173,90,173,42,15,129,193,250,129,195,225,200,100,50,220,219,132, +248,112,127,127,255,83,23,176,180,51,160,28,199,109,26,218,42,108,108,108,212,235,117,18,45,66,137,126,75,110,126,45,96,221,66,71,200,173,2,132,0,85,192,165,209,104,192,240,172,249,193,74,62,62,62,78, +195,89,145,193,193,193,116,58,205,173,2,32,141,2,196,99,239,16,182,253,120,60,110,109,253,0,235,144,156,5,208,47,183,84,1,148,247,247,247,211,55,173,14,118,129,72,36,242,227,199,15,110,254,185,250,1,66, +208,210,237,192,5,104,28,105,80,75,128,46,112,126,126,30,78,134,159,229,204,15,152,255,91,246,66,233,225,223,74,250,221,110,55,148,99,217,107,175,92,0,127,115,120,120,40,118,1,242,111,189,195,63,240,122, +189,115,115,115,104,123,160,92,238,118,160,20,169,126,192,214,63,182,4,146,7,62,128,17,240,175,116,61,243,128,206,4,202,113,236,81,165,92,128,91,5,64,122,254,55,163,126,24,190,84,42,105,83,46,128,16,28, +29,29,73,93,96,246,22,200,227,241,124,122,255,95,9,92,253,128,21,130,180,10,12,126,254,205,128,248,114,185,252,117,241,12,86,5,240,17,185,255,39,210,243,191,41,244,251,124,190,14,138,103,32,4,199,199, +199,210,42,48,221,249,63,16,8,84,42,149,206,138,7,92,253,128,85,65,203,225,23,46,152,53,234,249,247,233,233,41,247,14,215,215,145,171,2,233,249,223,48,253,193,96,80,238,229,151,142,128,125,4,45,51,142, +61,148,253,15,96,1,167,211,73,51,48,22,185,247,191,58,5,87,63,64,8,164,37,128,190,131,166,165,15,161,80,72,238,253,191,14,130,16,40,44,1,189,245,163,189,253,214,228,51,160,63,149,74,181,88,0,123,158,193, +37,16,14,135,117,72,62,224,234,7,200,54,165,254,3,189,243,143,101,175,227,123,158,28,112,25,249,254,39,198,251,31,219,30,246,39,154,224,119,98,70,255,99,54,104,245,117,48,63,48,163,255,219,188,225,241, +29,152,206,255,133,66,65,31,243,3,51,250,223,112,253,45,253,15,146,175,107,255,171,155,126,238,17,192,248,254,95,31,253,184,196,201,201,137,116,229,51,190,255,55,92,191,144,124,100,222,128,251,31,58,172, +255,92,231,131,102,179,89,169,84,12,214,143,156,124,235,254,15,241,201,100,82,122,243,3,32,249,166,184,5,36,247,251,191,142,32,167,31,226,133,155,63,200,60,62,161,217,232,207,119,156,127,152,231,25,220, +71,0,229,114,89,184,249,105,176,126,208,217,243,47,196,115,31,129,10,32,249,14,135,131,174,109,6,66,161,16,246,97,204,155,20,124,141,54,250,153,237,65,44,22,195,31,208,229,205,0,187,249,171,57,4,88,65, +200,238,31,112,95,132,18,63,2,134,231,205,165,31,248,124,62,109,247,191,241,21,37,239,191,153,206,246,82,180,61,255,104,163,95,252,139,8,100,222,227,241,208,149,76,11,123,254,85,175,215,113,92,33,125, +34,90,124,46,32,103,120,241,143,255,18,137,68,48,24,164,203,152,25,204,18,39,240,98,177,136,166,13,218,132,64,64,188,242,223,255,129,72,36,98,118,195,183,193,239,247,163,63,65,209,34,135,44,16,224,83, +253,130,225,145,118,203,191,234,199,240,122,189,16,131,64,228,243,121,114,182,12,226,255,255,3,110,183,240,239,223,184,184,92,46,4,130,165,151,11,148,255,62,239,185,217,216,216,216,216,88,133,174,174, +255,0,140,50,58,48,137,109,192,72,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::adlib_png = (const char*) resource_PluginGui_adlib_png; +const int PluginGui::adlib_pngSize = 1605; + +// JUCER_RESOURCE: gui_svg, 25404, "../Media/gui.svg" +static const unsigned char resource_PluginGui_gui_svg[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,32,115,116,97,110, +100,97,108,111,110,101,61,34,110,111,34,63,62,10,60,33,68,79,67,84,89,80,69,32,115,118,103,32,80,85,66,76,73,67,32,34,45,47,47,87,51,67,47,47,68,84,68,32,83,86,71,32,49,46,49,47,47,69,78,34,32,34,104, +116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,71,114,97,112,104,105,99,115,47,83,86,71,47,49,46,49,47,68,84,68,47,115,118,103,49,49,46,100,116,100,34,62,10,60,115,118,103,32,119,105,100, +116,104,61,34,49,48,48,37,34,32,104,101,105,103,104,116,61,34,49,48,48,37,34,32,118,105,101,119,66,111,120,61,34,48,32,48,32,56,54,48,32,53,56,48,34,32,118,101,114,115,105,111,110,61,34,49,46,49,34,32, +120,109,108,110,115,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,50,48,48,48,47,115,118,103,34,32,120,109,108,110,115,58,120,108,105,110,107,61,34,104,116,116,112,58,47,47,119, +119,119,46,119,51,46,111,114,103,47,49,57,57,57,47,120,108,105,110,107,34,32,120,109,108,58,115,112,97,99,101,61,34,112,114,101,115,101,114,118,101,34,32,120,109,108,110,115,58,115,101,114,105,102,61, +34,104,116,116,112,58,47,47,119,119,119,46,115,101,114,105,102,46,99,111,109,47,34,32,115,116,121,108,101,61,34,102,105,108,108,45,114,117,108,101,58,101,118,101,110,111,100,100,59,99,108,105,112,45,114, +117,108,101,58,101,118,101,110,111,100,100,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,114,111,117,110,100,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,114,111,117,110, +100,59,115,116,114,111,107,101,45,109,105,116,101,114,108,105,109,105,116,58,49,46,53,59,34,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48, +44,54,46,57,56,55,57,53,44,48,44,48,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,34,32,121,61,34,48,34,32,119,105,100,116,104,61,34,56,54,48,34,32,104,101,105,103,104,116,61,34, +56,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,53,44,49,53,44,49,53,41,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, +34,109,97,116,114,105,120,40,49,46,48,48,51,54,52,44,48,44,48,44,49,46,50,56,57,57,56,44,45,50,46,48,55,50,55,51,44,45,49,51,46,48,48,56,51,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120, +61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103, +98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,55,51,112,120,59,34,47,62,10,32,32,32,32,60,47, +103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,55,56,55,56,55,57,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,53,46,52,50,52,50,44,49,48,46, +52,52,51,56,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56, +46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116, +104,58,49,55,46,48,56,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102, +111,114,109,61,34,109,97,116,114,105,120,40,48,46,52,56,57,54,57,55,44,48,44,48,44,54,46,57,57,48,56,52,44,56,46,50,48,54,48,54,44,45,53,51,46,51,54,55,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101, +99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108, +58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,48,46,52,112,120,59,34,47,62,10,32,32,32, +32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,52,56,57,54,57,55,44,48,44,48,44,54,46,57,57,48,56,52,44,52,51,50,46,50,48,54,44,45,53, +51,46,51,54,55,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34, +52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45, +119,105,100,116,104,58,48,46,52,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,49,54,57,54,57,55,44,48, +44,48,44,50,46,50,56,56,54,55,44,55,48,50,46,54,48,54,44,51,57,57,46,48,56,50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100, +116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98, +40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109, +61,34,109,97,116,114,105,120,40,48,46,50,50,55,56,55,57,44,48,44,48,44,50,46,50,56,56,54,55,44,52,57,51,46,52,52,50,44,51,57,57,46,48,56,50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120, +61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103, +98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47, +103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,50,51,56,49,51,44,48,44,48,44,50,46,50,56,56,54,55,44,50,55,54,46,57,50,51,44,51,57,57,46,48,56, +50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54, +51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116, +104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,50,57,52,57,48,51,44,48,44,48,44,50, +46,50,56,56,54,55,44,49,50,46,55,52,50,53,44,51,57,57,46,48,56,50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61, +34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44, +51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, +97,116,114,105,120,40,48,46,48,56,57,54,57,55,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,53,46,50,48,54,49,44,56,57,46,57,53,48,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34, +50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40, +49,44,48,44,49,41,59,115,116,114,111,107,101,58,98,108,97,99,107,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,54,46,53,52,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58, +115,113,117,97,114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111, +114,109,61,34,109,97,116,114,105,120,40,48,46,48,54,53,52,53,52,53,44,48,44,48,44,48,46,49,52,53,54,52,50,44,52,53,49,46,54,57,49,44,56,57,46,52,50,57,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101, +99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108, +58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,55,46,55,49,112,120,59,34,47,62,10,32,32,32,32, +60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,56,56,52,49,56,52,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,56,57,46,50,51,50,44,52, +52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34, +52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105, +100,116,104,58,49,54,46,54,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114, +59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,57,51,50,54,54,57,44,48,44,48,44,48,46,49,52,53,54,52,50,44, +53,48,53,46,49,51,53,44,52,52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104, +101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116, +114,111,107,101,45,119,105,100,116,104,58,49,54,46,51,53,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111, +105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,51,54,53,54,51,49,44,48,44,48, +44,48,46,49,52,53,54,52,50,44,55,49,51,46,49,49,51,44,52,52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100, +116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98, +40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,56,46,56,52,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,115,116,114,111,107, +101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46, +49,48,53,51,56,56,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,51,46,56,57,50,50,44,52,52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48, +46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116, +114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,53,46,55,51,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97, +114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, +97,116,114,105,120,40,49,44,48,44,48,44,49,44,45,49,52,54,46,56,48,56,44,45,56,52,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56, +44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53, +53,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44, +45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48, +46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52, +54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56, +67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48, +46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44, +45,48,46,50,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10, +32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,55,55,50,44,49,48, +52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,51,76,48,46,50,55,53,44,45,48,46,51,76,48,46,50,55,53,44,48, +76,48,46,51,56,55,44,48,76,48,46,51,56,55,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44, +45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111, +110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49, +56,44,49,57,50,46,52,53,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56,52,44,45,48,46,55,76,48,46,49,50, +51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46,49,51,49,44,45,48,46,49,50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48,76,48,46,51,57,54,44,48,90,77,48, +46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76,48,46,50,53,49,44,45,48,46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108, +58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103, +32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,57,46,55,56,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112, +97,116,104,32,100,61,34,77,48,46,49,51,56,44,45,48,46,53,48,55,76,48,46,50,55,53,44,48,76,48,46,51,56,56,44,48,76,48,46,51,56,56,44,45,48,46,55,76,48,46,50,57,44,45,48,46,55,76,48,46,50,57,44,45,48,46, +50,56,49,76,48,46,49,55,55,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,56,44,48,76,48,46,49,51,56,44,45,48,46,53,48,55,90,34,32,115,116,121,108,101,61,34,102, +105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32, +32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,55,46,52,55,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,112,97,116,104,32,100,61,34,77,48,46,49,51,56,44,45,48,46,53,48,55,76,48,46,50,55,53,44,48,76,48,46,51,56,56,44,48,76,48,46,51,56,56,44,45,48,46,55,76,48,46,50,57,44,45,48,46,55,76,48,46,50,57,44, +45,48,46,50,56,49,76,48,46,49,55,55,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,56,44,48,76,48,46,49,51,56,44,45,48,46,53,48,55,90,34,32,115,116,121,108,101, +61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32, +32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,53,46,49,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55, +76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45, +48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110, +122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44, +50,50,49,46,55,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,51,49,44,48,76,48, +46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53, +48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111, +114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,50,55,46,56,56,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48, +46,48,50,54,44,45,48,46,53,51,50,67,48,46,48,50,54,44,45,48,46,51,51,50,32,48,46,50,52,49,44,45,48,46,51,48,53,32,48,46,50,52,49,44,45,48,46,49,54,49,67,48,46,50,52,49,44,45,48,46,49,49,49,32,48,46,50, +49,57,44,45,48,46,48,57,51,32,48,46,49,56,52,44,45,48,46,48,57,51,67,48,46,49,52,57,44,45,48,46,48,57,51,32,48,46,49,50,55,44,45,48,46,49,49,49,32,48,46,49,50,55,44,45,48,46,49,54,49,76,48,46,49,50,55, +44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,49,54,56,67,48,46,48,50,51,44,45,48,46,48,53,54,32,48,46,48,55,57,44,48,46,48,48,56,32,48,46,49,56,55,44,48,46, +48,48,56,67,48,46,50,57,53,44,48,46,48,48,56,32,48,46,51,53,49,44,45,48,46,48,53,54,32,48,46,51,53,49,44,45,48,46,49,54,56,67,48,46,51,53,49,44,45,48,46,51,54,56,32,48,46,49,51,54,44,45,48,46,51,57,53, +32,48,46,49,51,54,44,45,48,46,53,51,57,67,48,46,49,51,54,44,45,48,46,53,56,57,32,48,46,49,53,54,44,45,48,46,54,48,56,32,48,46,49,57,49,44,45,48,46,54,48,56,67,48,46,50,50,54,44,45,48,46,54,48,56,32,48, +46,50,52,54,44,45,48,46,53,56,57,32,48,46,50,52,54,44,45,48,46,53,51,57,76,48,46,50,52,54,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,51,50,67,48,46,51,53,44,45,48, +46,54,52,52,32,48,46,50,57,53,44,45,48,46,55,48,56,32,48,46,49,56,56,44,45,48,46,55,48,56,67,48,46,48,56,49,44,45,48,46,55,48,56,32,48,46,48,50,54,44,45,48,46,54,52,52,32,48,46,48,50,54,44,45,48,46,53, +51,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32, +32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,45,49,52,55,44,45,52,46,56,48,49, +48,56,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,51,44,45,48,46,50,48,51,76,48,46,49,57,50,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48, +76,48,46,49,51,53,44,48,76,48,46,49,51,53,44,45,48,46,52,57,53,76,48,46,50,49,55,44,48,76,48,46,51,50,49,44,48,76,48,46,51,57,55,44,45,48,46,53,48,50,76,48,46,51,57,55,44,48,76,48,46,53,48,49,44,48,76, +48,46,53,48,49,44,45,48,46,55,76,48,46,51,52,56,44,45,48,46,55,76,48,46,50,55,51,44,45,48,46,50,48,51,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41, +59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, +97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,55,46,53,54,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45, +48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32, +48,46,51,54,53,44,45,48,46,48,53,54,32,48,46,51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48,46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46, +49,57,56,44,45,48,46,55,48,56,67,48,46,48,57,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52, +49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44, +45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48, +46,48,57,50,67,48,46,49,54,51,44,45,48,46,48,57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54, +53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110, +115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,52,46,54,57,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61, +34,77,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,50,49,52,44,48,67,48,46,51,50,52,44,48,32,48,46,51,55,56,44,45,48,46,48,54,49,32,48,46,51,55,56,44,45,48,46,49,55,51,76,48,46,51,55,56,44, +45,48,46,53,50,55,67,48,46,51,55,56,44,45,48,46,54,51,57,32,48,46,51,50,52,44,45,48,46,55,32,48,46,50,49,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,49, +50,44,45,48,46,54,67,48,46,50,52,55,44,45,48,46,54,32,48,46,50,54,56,44,45,48,46,53,56,50,32,48,46,50,54,56,44,45,48,46,53,51,50,76,48,46,50,54,56,44,45,48,46,49,54,56,67,48,46,50,54,56,44,45,48,46,49, +49,56,32,48,46,50,52,55,44,45,48,46,49,32,48,46,50,49,50,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40, +54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110, +115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,50,46,48,51,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100, +61,34,77,48,46,49,52,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,49,54,55,67,48,46,48,51,53,44,45,48,46,48,53,53,32,48,46,48,57,49,44,48,46,48,48,57,32,48,46,49,57, +57,44,48,46,48,48,57,67,48,46,51,48,55,44,48,46,48,48,57,32,48,46,51,54,51,44,45,48,46,48,53,53,32,48,46,51,54,51,44,45,48,46,49,54,55,76,48,46,51,54,51,44,45,48,46,55,76,48,46,50,53,57,44,45,48,46,55, +76,48,46,50,53,57,44,45,48,46,49,54,67,48,46,50,53,57,44,45,48,46,49,49,32,48,46,50,51,55,44,45,48,46,48,57,50,32,48,46,50,48,50,44,45,48,46,48,57,50,67,48,46,49,54,55,44,45,48,46,48,57,50,32,48,46,49, +52,53,44,45,48,46,49,49,32,48,46,49,52,53,44,45,48,46,49,54,76,48,46,49,52,53,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105, +108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114, +105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,57,46,49,57,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52,44,45,48,46,55,76,48, +46,48,52,44,48,76,48,46,51,51,49,44,48,76,48,46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102, +105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32, +32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,53,46,51,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56,52,44,45,48,46,55,76,48,46,49,50,51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46,49,51,49,44,45,48,46,49, +50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48,76,48,46,51,57,54,44,48,90,77,48,46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76,48,46,50,53,49,44,45,48, +46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110, +122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44, +50,50,50,46,54,50,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,54,76,48,46,49, +50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,55, +90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32, +32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,50,57,46,48,51,52,44,49,48,52,46,55,57,51,41, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46, +48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32,48,46,51,54,53,44,45,48,46,48,53,54,32,48,46,51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48, +46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46,49,57,56,44,45,48,46,55,48,56,67,48,46,48,57,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52, +52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56, +32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48, +46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48,46,48,57,50,67,48,46,49,54,51,44,45,48,46,48,57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49, +52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34, +47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,51,54,46,49,54,50, +44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55, +44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51, +52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55, +32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46, +50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46, +50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50, +53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44, +45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122, +101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44, +49,44,50,55,57,44,45,52,46,56,48,49,48,56,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56, +50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,50,54,49,76,48,46,50,53, +53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44,45,48,46,48,57,51,32,48,46,49,52,49,44, +45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48, +46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,52, +54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56,67,48,46,48,56,55,44,45,48,46,55,48,56, +32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,56,55,44,48,46,48,48,56,32,48,46, +49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44,45,48,46,50,54,49,90,34,32,115,116,121, +108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10, +32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,55,55,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56,52,44,45,48,46,55,76,48,46,49,50,51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46, +49,51,49,44,45,48,46,49,50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48,76,48,46,51,57,54,44,48,90,77,48,46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76, +48,46,50,53,49,44,45,48,46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117, +108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56, +44,48,44,48,44,49,56,44,49,57,50,46,48,57,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46, +51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48, +46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53, +51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45, +48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54, +67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48, +46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49, +57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105, +108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114, +105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,57,46,51,51,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56, +50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46, +51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54, +57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76, +48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44, +45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44, +45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51, +56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44, +54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109, +61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,54,46,53,55,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46,48,52,34,32, +121,61,34,45,48,46,55,34,32,119,105,100,116,104,61,34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54, +53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, +34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,57,46,57,57,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45, +48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48, +46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116, +121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, +10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,54,46,54,49,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48, +46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53, +32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48, +54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56, +53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55, +44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57, +44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46, +54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32, +32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,45,49,52,54,46,57,50,57,44,51,52,55, +46,57,57,49,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51, +41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46, +55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46, +51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108, +45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, +40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,52,52,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,51,56,57,76,48,46, +49,53,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,57,76,48, +46,50,57,50,44,45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,51,56,57,76,48,46,49,53,44,45,48,46,51,56,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54, +53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, +34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,48,46,54,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45, +48,46,51,56,57,76,48,46,49,53,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44, +45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,51,56,57,76,48,46,49,53,44,45,48,46,51,56,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40, +54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110, +115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,54,46,56,51,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100, +61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44, +48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48, +46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32, +32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,51,46,52,53,54,44,49,48,52,46, +55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,49,54, +49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44,45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32, +48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46, +50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53, +57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56,67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44, +45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48, +48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44,45,48,46,50,54,49,90,34,32,115,116,121,108,101,61,34,102,105, +108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32, +32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,48,46,52,48,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,54,76,48,46,49,50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44, +45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44, +54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109, +61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,57,46,54,48,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52, +44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,50,49,52,44,48,67,48,46,51,50,52,44,48,32,48,46,51,55,56,44,45,48,46,48,54,49,32,48,46,51,55,56,44,45,48,46,49,55,51,76,48,46,51,55,56,44,45,48,46,53,50,55, +67,48,46,51,55,56,44,45,48,46,54,51,57,32,48,46,51,50,52,44,45,48,46,55,32,48,46,50,49,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,49,50,44,45,48,46,54, +67,48,46,50,52,55,44,45,48,46,54,32,48,46,50,54,56,44,45,48,46,53,56,50,32,48,46,50,54,56,44,45,48,46,53,51,50,76,48,46,50,54,56,44,45,48,46,49,54,56,67,48,46,50,54,56,44,45,48,46,49,49,56,32,48,46,50, +52,55,44,45,48,46,49,32,48,46,50,49,50,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48, +44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114, +109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,50,54,46,57,52,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49, +53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52, +44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34, +32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32, +60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,51,51,46,53,55,44,49,48,52,46,55,57,51,41,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,48,50,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50, +54,51,76,48,46,50,48,50,44,45,48,46,50,54,51,67,48,46,51,49,50,44,45,48,46,50,54,51,32,48,46,51,54,54,44,45,48,46,51,50,52,32,48,46,51,54,54,44,45,48,46,52,51,54,76,48,46,51,54,54,44,45,48,46,53,50,55, +67,48,46,51,54,54,44,45,48,46,54,51,57,32,48,46,51,49,50,44,45,48,46,55,32,48,46,50,48,50,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,50,44,45,48,46,54,67,48,46,50,51,55,44,45,48,46, +54,32,48,46,50,53,54,44,45,48,46,53,56,52,32,48,46,50,53,54,44,45,48,46,53,51,52,76,48,46,50,53,54,44,45,48,46,52,50,57,67,48,46,50,53,54,44,45,48,46,51,55,57,32,48,46,50,51,55,44,45,48,46,51,54,51,32, +48,46,50,48,50,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41, +59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, +97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,52,48,46,52,52,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45, +48,46,55,76,48,46,48,48,56,44,45,48,46,54,76,48,46,49,50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51, +52,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111, +110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49, +56,44,50,52,54,46,56,53,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,51,76,48,46,50,55,53,44, +45,48,46,51,76,48,46,50,55,53,44,48,76,48,46,51,56,55,44,48,76,48,46,51,56,55,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,52,76,48,46,49, +53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108, +108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34, +109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,49,49,56,46,52,51,54,44,51,52,55,46,57,57,49,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105, +120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56, +52,44,45,48,46,55,76,48,46,49,50,51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46,49,51,49,44,45,48,46,49,50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48, +76,48,46,51,57,54,44,48,90,77,48,46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76,48,46,50,53,49,44,45,48,46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116, +121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, +10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,53,46,49,53,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,51,49,44,48,76,48,46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46, +49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110, +122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44, +49,57,49,46,50,53,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,48,53,44,45,48,46,51,57,76,48,46,50,48,53,44,45,48,46,50,57,76,48, +46,50,53,53,44,45,48,46,50,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54, +51,44,45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44, +45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48, +46,52,54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55, +48,56,67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54, +32,48,46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53, +57,44,45,48,46,51,57,76,48,46,50,48,53,44,45,48,46,51,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110, +111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44, +49,56,44,49,57,56,46,50,55,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46, +49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32,48,46,51,54,53,44,45,48,46,48,53,54,32,48,46, +51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48,46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46,49,57,56,44,45,48,46,55,48,56,67,48,46,48,57, +44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44, +45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48, +46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48,46,48,57,50,67,48,46,49,54,51,44,45,48,46,48, +57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108, +45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, +40,49,56,44,48,44,48,44,49,56,44,50,48,53,46,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48, +46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45, +48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46, +53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44, +45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56, +54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32, +48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46, +49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102, +105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116, +114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,50,46,54,51,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46,48,52,34,32,121,61,34,45, +48,46,55,34,32,119,105,100,116,104,61,34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102, +105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116, +114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,54,46,48,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45,48,46,55, +76,48,46,48,48,56,44,45,48,46,54,76,48,46,49,50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51,52,56,44, +45,48,46,55,76,48,46,48,48,56,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122, +101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50, +50,50,46,52,54,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,51,76,48,46,50,55,53,44,45,48,46, +51,76,48,46,50,55,53,44,48,76,48,46,51,56,55,44,48,76,48,46,51,56,55,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,52,76,48,46,49,53,44,45, +48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45, +114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, +40,49,56,44,48,44,48,44,49,56,44,50,51,48,46,49,53,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,51,44,45,48,46,50,48,51,76,48,46, +49,57,50,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,53,44,48,76,48,46,49,51,53,44,45,48,46,52,57,53,76,48,46,50,49,55,44,48,76,48,46,51,50,49,44,48,76,48,46, +51,57,55,44,45,48,46,53,48,50,76,48,46,51,57,55,44,48,76,48,46,53,48,49,44,48,76,48,46,53,48,49,44,45,48,46,55,76,48,46,51,52,56,44,45,48,46,55,76,48,46,50,55,51,44,45,48,46,50,48,51,90,34,32,115,116, +121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, +10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,51,51,52,46,54,52,52,44,51,52,56,46,52,57,50,41,34,62,10, +32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,48,50,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,54,51,76,48, +46,50,48,50,44,45,48,46,50,54,51,67,48,46,51,49,50,44,45,48,46,50,54,51,32,48,46,51,54,54,44,45,48,46,51,50,52,32,48,46,51,54,54,44,45,48,46,52,51,54,76,48,46,51,54,54,44,45,48,46,53,50,55,67,48,46,51, +54,54,44,45,48,46,54,51,57,32,48,46,51,49,50,44,45,48,46,55,32,48,46,50,48,50,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,50,44,45,48,46,54,67,48,46,50,51,55,44,45,48,46,54,32,48,46, +50,53,54,44,45,48,46,53,56,52,32,48,46,50,53,54,44,45,48,46,53,51,52,76,48,46,50,53,54,44,45,48,46,52,50,57,67,48,46,50,53,54,44,45,48,46,51,55,57,32,48,46,50,51,55,44,45,48,46,51,54,51,32,48,46,50,48, +50,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108, +108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105, +120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,55,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46, +49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44, +45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102, +105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32, +32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,49,46,51,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46, +51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44, +45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76, +48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44, +45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49, +53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57, +67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116, +121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, +10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,56,46,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46, +49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44,45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54, +49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32, +48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46, +51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56,67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51, +49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46, +48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44,45,48,46,50,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53, +44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115, +102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,53,46,53,48,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34, +77,48,46,49,52,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,49,54,55,67,48,46,48,51,53,44,45,48,46,48,53,53,32,48,46,48,57,49,44,48,46,48,48,57,32,48,46,49,57,57,44, +48,46,48,48,57,67,48,46,51,48,55,44,48,46,48,48,57,32,48,46,51,54,51,44,45,48,46,48,53,53,32,48,46,51,54,51,44,45,48,46,49,54,55,76,48,46,51,54,51,44,45,48,46,55,76,48,46,50,53,57,44,45,48,46,55,76,48, +46,50,53,57,44,45,48,46,49,54,67,48,46,50,53,57,44,45,48,46,49,49,32,48,46,50,51,55,44,45,48,46,48,57,50,32,48,46,50,48,50,44,45,48,46,48,57,50,67,48,46,49,54,55,44,45,48,46,48,57,50,32,48,46,49,52,53, +44,45,48,46,49,49,32,48,46,49,52,53,44,45,48,46,49,54,76,48,46,49,52,53,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108, +108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105, +120,40,49,56,44,48,44,48,44,49,56,44,50,49,50,46,54,55,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,50,54,44,45,48,46,53,51,50, +67,48,46,48,50,54,44,45,48,46,51,51,50,32,48,46,50,52,49,44,45,48,46,51,48,53,32,48,46,50,52,49,44,45,48,46,49,54,49,67,48,46,50,52,49,44,45,48,46,49,49,49,32,48,46,50,49,57,44,45,48,46,48,57,51,32,48, +46,49,56,52,44,45,48,46,48,57,51,67,48,46,49,52,57,44,45,48,46,48,57,51,32,48,46,49,50,55,44,45,48,46,49,49,49,32,48,46,49,50,55,44,45,48,46,49,54,49,76,48,46,49,50,55,44,45,48,46,50,49,49,76,48,46,48, +50,51,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,49,54,56,67,48,46,48,50,51,44,45,48,46,48,53,54,32,48,46,48,55,57,44,48,46,48,48,56,32,48,46,49,56,55,44,48,46,48,48,56,67,48,46,50,57,53,44,48, +46,48,48,56,32,48,46,51,53,49,44,45,48,46,48,53,54,32,48,46,51,53,49,44,45,48,46,49,54,56,67,48,46,51,53,49,44,45,48,46,51,54,56,32,48,46,49,51,54,44,45,48,46,51,57,53,32,48,46,49,51,54,44,45,48,46,53, +51,57,67,48,46,49,51,54,44,45,48,46,53,56,57,32,48,46,49,53,54,44,45,48,46,54,48,56,32,48,46,49,57,49,44,45,48,46,54,48,56,67,48,46,50,50,54,44,45,48,46,54,48,56,32,48,46,50,52,54,44,45,48,46,53,56,57, +32,48,46,50,52,54,44,45,48,46,53,51,57,76,48,46,50,52,54,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,51,50,67,48,46,51,53,44,45,48,46,54,52,52,32,48,46,50,57,53,44, +45,48,46,55,48,56,32,48,46,49,56,56,44,45,48,46,55,48,56,67,48,46,48,56,49,44,45,48,46,55,48,56,32,48,46,48,50,54,44,45,48,46,54,52,52,32,48,46,48,50,54,44,45,48,46,53,51,50,90,34,32,115,116,121,108,101, +61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32, +32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,57,46,52,48,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,50,54,44,45,48,46,53,51,50,67,48,46,48,50,54,44,45,48,46,51,51,50,32,48,46,50,52,49,44,45,48,46,51,48,53,32,48,46,50,52,49,44,45,48,46,49,54,49, +67,48,46,50,52,49,44,45,48,46,49,49,49,32,48,46,50,49,57,44,45,48,46,48,57,51,32,48,46,49,56,52,44,45,48,46,48,57,51,67,48,46,49,52,57,44,45,48,46,48,57,51,32,48,46,49,50,55,44,45,48,46,49,49,49,32,48, +46,49,50,55,44,45,48,46,49,54,49,76,48,46,49,50,55,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,49,54,56,67,48,46,48,50,51,44,45,48,46,48,53,54,32,48,46,48, +55,57,44,48,46,48,48,56,32,48,46,49,56,55,44,48,46,48,48,56,67,48,46,50,57,53,44,48,46,48,48,56,32,48,46,51,53,49,44,45,48,46,48,53,54,32,48,46,51,53,49,44,45,48,46,49,54,56,67,48,46,51,53,49,44,45,48, +46,51,54,56,32,48,46,49,51,54,44,45,48,46,51,57,53,32,48,46,49,51,54,44,45,48,46,53,51,57,67,48,46,49,51,54,44,45,48,46,53,56,57,32,48,46,49,53,54,44,45,48,46,54,48,56,32,48,46,49,57,49,44,45,48,46,54, +48,56,67,48,46,50,50,54,44,45,48,46,54,48,56,32,48,46,50,52,54,44,45,48,46,53,56,57,32,48,46,50,52,54,44,45,48,46,53,51,57,76,48,46,50,52,54,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,49,76,48,46, +51,53,44,45,48,46,53,51,50,67,48,46,51,53,44,45,48,46,54,52,52,32,48,46,50,57,53,44,45,48,46,55,48,56,32,48,46,49,56,56,44,45,48,46,55,48,56,67,48,46,48,56,49,44,45,48,46,55,48,56,32,48,46,48,50,54,44, +45,48,46,54,52,52,32,48,46,48,50,54,44,45,48,46,53,51,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110, +111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44, +49,56,44,50,50,54,46,49,51,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46,48,52,34,32,121,61,34,45,48,46,55,34,32,119,105,100,116,104,61, +34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110, +111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44, +49,56,44,50,50,57,46,53,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46, +49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32,48,46,51,54,53,44,45,48,46,48,53,54,32,48,46, +51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48,46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46,49,57,56,44,45,48,46,55,48,56,67,48,46,48,57, +44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44, +45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48, +46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48,46,48,57,50,67,48,46,49,54,51,44,45,48,46,48, +57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108, +45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, +40,49,56,44,48,44,48,44,49,56,44,50,51,54,46,54,56,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,51,56,44,45,48,46,53,48,55,76,48, +46,50,55,53,44,48,76,48,46,51,56,56,44,48,76,48,46,51,56,56,44,45,48,46,55,76,48,46,50,57,44,45,48,46,55,76,48,46,50,57,44,45,48,46,50,56,49,76,48,46,49,55,55,44,45,48,46,55,76,48,46,48,51,57,44,45,48, +46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,56,44,48,76,48,46,49,51,56,44,45,48,46,53,48,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105, +108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, +34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,53,52,48,46,54,52,52,44,51,52,56,46,52,57,50,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114, +105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,51,56,57, +76,48,46,49,53,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56, +57,76,48,46,50,57,50,44,45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,51,56,57,76,48,46,49,53,44,45,48,46,51,56,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53, +48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111, +114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,48,49,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46, +48,52,34,32,121,61,34,45,48,46,55,34,32,119,105,100,116,104,61,34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49, +53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111, +114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,55,46,52,51,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48, +46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,51,49,44,48,76,48,46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32, +115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60, +47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,51,46,53,51,56,44,49,48,52,46,55,57,51,41,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46, +48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76, +48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117, +108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,60,47,115,118,103,62,10,0,0}; + +const char* PluginGui::gui_svg = (const char*) resource_PluginGui_gui_svg; +const int PluginGui::gui_svgSize = 25404; + + +//[EndFile] You can add extra defines here... +//[/EndFile] + diff --git a/Source/PluginGui iOS.cpp b/Source/PluginGui iOS.cpp new file mode 100644 index 0000000..f2396a4 --- /dev/null +++ b/Source/PluginGui iOS.cpp @@ -0,0 +1,5103 @@ +/* + ============================================================================== + + 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.7 + + ------------------------------------------------------------------------------ + + The Projucer is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + ============================================================================== +*/ + +//[Headers] You can add your own extra header files here... +//[/Headers] + +#include "PluginGui.h" + + +//[MiscUserDefs] You can add your own user definitions and misc code here... +void PluginGui::updateFromParameters() +{ + emulatorSlider->setValue(processor->getEnumParameter("Emulator"), juce::NotificationType::dontSendNotification); + + sineImageButton->setToggleState(false, dontSendNotification); + halfsineImageButton->setToggleState(false, dontSendNotification); + abssineImageButton->setToggleState(false, dontSendNotification); + quartersineImageButton->setToggleState(false, dontSendNotification); + alternatingsineImageButton->setToggleState(false, dontSendNotification); + camelsineImageButton->setToggleState(false, dontSendNotification); + squareImageButton->setToggleState(false, dontSendNotification); + logsawImageButton->setToggleState(false, dontSendNotification); + switch(processor->getEnumParameter("Modulator Wave")) { + case 0: sineImageButton->setToggleState(true, dontSendNotification); break; + case 1: halfsineImageButton->setToggleState(true, dontSendNotification); break; + case 2: abssineImageButton->setToggleState(true, dontSendNotification); break; + case 3: quartersineImageButton->setToggleState(true, dontSendNotification); break; + case 4: alternatingsineImageButton->setToggleState(true, dontSendNotification); break; + case 5: camelsineImageButton->setToggleState(true, dontSendNotification); break; + case 6: squareImageButton->setToggleState(true, dontSendNotification); break; + case 7: logsawImageButton->setToggleState(true, dontSendNotification); break; + } + + sineImageButton2->setToggleState(false, dontSendNotification); + halfsineImageButton2->setToggleState(false, dontSendNotification); + abssineImageButton2->setToggleState(false, dontSendNotification); + quartersineImageButton2->setToggleState(false, dontSendNotification); + alternatingsineImageButton2->setToggleState(false, dontSendNotification); + camelsineImageButton2->setToggleState(false, dontSendNotification); + squareImageButton2->setToggleState(false, dontSendNotification); + logsawImageButton2->setToggleState(false, dontSendNotification); + switch(processor->getEnumParameter("Carrier Wave")) { + case 0: sineImageButton2->setToggleState(true, dontSendNotification); break; + case 1: halfsineImageButton2->setToggleState(true, dontSendNotification); break; + case 2: abssineImageButton2->setToggleState(true, dontSendNotification); break; + case 3: quartersineImageButton2->setToggleState(true, dontSendNotification); break; + case 4: alternatingsineImageButton2->setToggleState(true, dontSendNotification); break; + case 5: camelsineImageButton2->setToggleState(true, dontSendNotification); break; + case 6: squareImageButton2->setToggleState(true, dontSendNotification); break; + case 7: logsawImageButton2->setToggleState(true, dontSendNotification); break; + } + + fmButton->setToggleState(false, dontSendNotification); + additiveButton->setToggleState(false, dontSendNotification); + switch (processor->getEnumParameter("Algorithm")) { + case 0: fmButton->setToggleState(true, dontSendNotification); break; + case 1: additiveButton->setToggleState(true, dontSendNotification); break; + } + + disablePercussionButton->setToggleState(false, dontSendNotification); + bassDrumButton->setToggleState(false, dontSendNotification); + snareDrumButton->setToggleState(false, dontSendNotification); + tomTomButton->setToggleState(false, dontSendNotification); + cymbalButton->setToggleState(false, dontSendNotification); + hiHatButton->setToggleState(false, dontSendNotification); + switch (processor->getEnumParameter("Percussion Mode")) { + case 0: disablePercussionButton->setToggleState(true, dontSendNotification); break; + case 1: bassDrumButton->setToggleState(true, dontSendNotification); break; + case 2: snareDrumButton->setToggleState(true, dontSendNotification); break; + case 3: tomTomButton->setToggleState(true, dontSendNotification); break; + case 4: cymbalButton->setToggleState(true, dontSendNotification); break; + case 5: hiHatButton->setToggleState(true, dontSendNotification); break; + } + + //DBG(" multipler " << processor->getEnumParameter("Modulator Frequency Multiplier")); + + int val = processor->getEnumParameter("Modulator Frequency Multiplier"); + if (val <=10 ){ + frequencyComboBox->setSelectedItemIndex (val, + sendNotificationAsync); + } + else if (val == 12){ + frequencyComboBox->setSelectedItemIndex (11, + sendNotificationAsync); + } + else if (val == 15){ + frequencyComboBox->setSelectedItemIndex (12, + sendNotificationAsync); + } + val = processor->getEnumParameter("Carrier Frequency Multiplier"); + if (val <=10 ){ + frequencyComboBox2->setSelectedItemIndex (val, + sendNotificationAsync); + } + else if (val == 12){ + frequencyComboBox2->setSelectedItemIndex (11, + sendNotificationAsync); + } + else if (val == 15){ + frequencyComboBox2->setSelectedItemIndex (12, + sendNotificationAsync); + } + + attenuationSlider->setValue(processor->getEnumParameter("Modulator Attenuation") * -0.75, juce::NotificationType::dontSendNotification); + attenuationSlider2->setValue(processor->getEnumParameter("Carrier Attenuation") * -0.75, juce::NotificationType::dontSendNotification); + + aSlider->setValue(processor->getIntParameter("Modulator Attack"), juce::NotificationType::dontSendNotification); + dSlider->setValue(processor->getIntParameter("Modulator Decay"), juce::NotificationType::dontSendNotification); + sSlider->setValue(processor->getIntParameter("Modulator Sustain Level"), juce::NotificationType::dontSendNotification); + rSlider->setValue(processor->getIntParameter("Modulator Release"), juce::NotificationType::dontSendNotification); + aSlider2->setValue(processor->getIntParameter("Carrier Attack"), juce::NotificationType::dontSendNotification); + dSlider2->setValue(processor->getIntParameter("Carrier Decay"), juce::NotificationType::dontSendNotification); + sSlider2->setValue(processor->getIntParameter("Carrier Sustain Level"), juce::NotificationType::dontSendNotification); + rSlider2->setValue(processor->getIntParameter("Carrier Release"), juce::NotificationType::dontSendNotification); + +/// Jeff-Russ replaced the second arg of "true" with "sendNotificationAsync": + + keyscaleAttenuationComboBox->setSelectedItemIndex ( + processor->getEnumParameter("Modulator Keyscale Level"), + sendNotificationAsync); + keyscaleAttenuationComboBox2->setSelectedItemIndex ( + processor->getEnumParameter("Carrier Keyscale Level"), + sendNotificationAsync); + + + tremoloButton->setToggleState(processor->getBoolParameter("Modulator Tremolo"), dontSendNotification); + vibratoButton->setToggleState(processor->getBoolParameter("Modulator Vibrato"), dontSendNotification); + sustainButton->setToggleState(processor->getBoolParameter("Modulator Sustain"), dontSendNotification); + keyscaleEnvButton->setToggleState(processor->getBoolParameter("Modulator Keyscale Rate"), dontSendNotification); + + tremoloButton2->setToggleState(processor->getBoolParameter("Carrier Tremolo"), dontSendNotification); + vibratoButton2->setToggleState(processor->getBoolParameter("Carrier Vibrato"), dontSendNotification); + sustainButton2->setToggleState(processor->getBoolParameter("Carrier Sustain"), dontSendNotification); + keyscaleEnvButton2->setToggleState(processor->getBoolParameter("Carrier Keyscale Rate"), dontSendNotification); + + vibratoSlider->setValue(processor->getEnumParameter("Vibrato Depth") * 7.0 + 7.0, juce::NotificationType::dontSendNotification); + tremoloSlider->setValue(processor->getEnumParameter("Tremolo Depth") * 3.8 + 1.0, juce::NotificationType::dontSendNotification); + feedbackSlider->setValue(processor->getIntParameter("Modulator Feedback"), juce::NotificationType::dontSendNotification); + +/// Jeff-Russ replaced the second arg of "true" with "sendNotificationAsync": + + velocityComboBox->setSelectedItemIndex ( + processor->getEnumParameter("Modulator Velocity Sensitivity"), + sendNotificationAsync); + velocityComboBox2->setSelectedItemIndex ( + processor->getEnumParameter("Carrier Velocity Sensitivity"), + sendNotificationAsync); + + tooltipWindow.setColour(tooltipWindow.backgroundColourId, Colour(0x0)); + tooltipWindow.setColour(tooltipWindow.textColourId, Colour(COLOUR_MID)); + + if (processor->lastLoadFile.length() > 0) { + File file(processor->lastLoadFile); + loadButton->setButtonText(file.getFileNameWithoutExtension()); + } +} + +void PluginGui::setRecordButtonState(bool recording) { + if (recording) { + recordButton->setColour(TextButton::buttonColourId, Colour(COLOUR_RECORDING)); + recordButton->setButtonText("Recording.."); + recordButton->setColour(ToggleButton::textColourId, Colour(COLOUR_RECORDING)); + } else { + recordButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + recordButton->setButtonText("Record to DRO"); + recordButton->setColour(ToggleButton::textColourId, Colour(COLOUR_MID)); + } +} + +//[/MiscUserDefs] + +//============================================================================== +PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) +{ + //[Constructor_pre] You can add your own custom stuff here.. + + //[/Constructor_pre] + + groupComponent2.reset (new GroupComponent ("new group", + TRANS("Carrier"))); + addAndMakeVisible (groupComponent2.get()); + groupComponent2->setTextLabelPosition (Justification::centredLeft); + groupComponent2->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); + groupComponent2->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + + groupComponent2->setBounds (440, 88, 408, 344); + + groupComponent4.reset (new GroupComponent ("new group", + TRANS("Channels"))); + addAndMakeVisible (groupComponent4.get()); + groupComponent4->setTextLabelPosition (Justification::centredLeft); + groupComponent4->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); + groupComponent4->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + + groupComponent4->setBounds (16, 8, 832, 64); + + groupComponent11.reset (new GroupComponent ("new group", + TRANS("Percussion"))); + addAndMakeVisible (groupComponent11.get()); + groupComponent11->setTextLabelPosition (Justification::centredLeft); + groupComponent11->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); + groupComponent11->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + + groupComponent11->setBounds (496, 440, 192, 120); + + groupComponent10.reset (new GroupComponent ("new group", + TRANS("Algorithm"))); + addAndMakeVisible (groupComponent10.get()); + groupComponent10->setTextLabelPosition (Justification::centredLeft); + groupComponent10->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); + groupComponent10->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + + groupComponent10->setBounds (280, 440, 200, 120); + + groupComponent9.reset (new GroupComponent ("new group", + TRANS("File"))); + addAndMakeVisible (groupComponent9.get()); + groupComponent9->setTextLabelPosition (Justification::centredLeft); + groupComponent9->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); + groupComponent9->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + + groupComponent9->setBounds (704, 440, 144, 120); + + groupComponent.reset (new GroupComponent ("new group", + TRANS("Modulator"))); + addAndMakeVisible (groupComponent.get()); + groupComponent->setTextLabelPosition (Justification::centredLeft); + groupComponent->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); + groupComponent->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + + groupComponent->setBounds (16, 88, 408, 344); + + frequencyComboBox.reset (new ComboBox ("frequency combo box")); + addAndMakeVisible (frequencyComboBox.get()); + frequencyComboBox->setEditableText (false); + frequencyComboBox->setJustificationType (Justification::centredLeft); + frequencyComboBox->setTextWhenNothingSelected (String()); + frequencyComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + frequencyComboBox->addListener (this); + + frequencyComboBox->setBounds (200, 168, 64, 24); + + frequencyLabel.reset (new Label ("frequency label", + TRANS("Frequency Multiplier"))); + addAndMakeVisible (frequencyLabel.get()); + frequencyLabel->setTooltip (TRANS("Multiplier applied to base note frequency")); + frequencyLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel->setJustificationType (Justification::centredLeft); + frequencyLabel->setEditable (false, false, false); + frequencyLabel->setColour (Label::textColourId, Colour (0xff007f00)); + frequencyLabel->setColour (TextEditor::textColourId, Colours::black); + frequencyLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + frequencyLabel->setBounds (40, 168, 152, 24); + + aSlider.reset (new Slider ("a slider")); + addAndMakeVisible (aSlider.get()); + aSlider->setTooltip (TRANS("Envelope attack rate")); + aSlider->setRange (0, 15, 1); + aSlider->setSliderStyle (Slider::LinearVertical); + aSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 30, 20); + aSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); + aSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); + aSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + aSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); + aSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + aSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + aSlider->addListener (this); + + aSlider->setBounds (40, 200, 30, 104); + + aLabel.reset (new Label ("a label", + TRANS("A"))); + addAndMakeVisible (aLabel.get()); + aLabel->setTooltip (TRANS("Attack rate")); + aLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + aLabel->setJustificationType (Justification::centred); + aLabel->setEditable (false, false, false); + aLabel->setColour (Label::textColourId, Colour (0xff007f00)); + aLabel->setColour (TextEditor::textColourId, Colours::black); + aLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + aLabel->setBounds (40, 304, 30, 24); + + dSlider.reset (new Slider ("d slider")); + addAndMakeVisible (dSlider.get()); + dSlider->setTooltip (TRANS("Envelope decay rate")); + dSlider->setRange (0, 15, 1); + dSlider->setSliderStyle (Slider::LinearVertical); + dSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 30, 20); + dSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); + dSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); + dSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + dSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); + dSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + dSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + dSlider->addListener (this); + + dSlider->setBounds (88, 200, 30, 104); + + dLabel.reset (new Label ("d label", + TRANS("D"))); + addAndMakeVisible (dLabel.get()); + dLabel->setTooltip (TRANS("Decay rate")); + dLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dLabel->setJustificationType (Justification::centred); + dLabel->setEditable (false, false, false); + dLabel->setColour (Label::textColourId, Colour (0xff007f00)); + dLabel->setColour (TextEditor::textColourId, Colours::black); + dLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dLabel->setBounds (88, 304, 30, 24); + + sSlider.reset (new Slider ("s slider")); + addAndMakeVisible (sSlider.get()); + sSlider->setTooltip (TRANS("Envelope sustain level")); + sSlider->setRange (0, 15, 1); + sSlider->setSliderStyle (Slider::LinearVertical); + sSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 30, 20); + sSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); + sSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); + sSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + sSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); + sSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + sSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + sSlider->addListener (this); + + sSlider->setBounds (136, 200, 30, 104); + + dLabel2.reset (new Label ("d label", + TRANS("S"))); + addAndMakeVisible (dLabel2.get()); + dLabel2->setTooltip (TRANS("Sustain level")); + dLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dLabel2->setJustificationType (Justification::centred); + dLabel2->setEditable (false, false, false); + dLabel2->setColour (Label::textColourId, Colour (0xff007f00)); + dLabel2->setColour (TextEditor::textColourId, Colours::black); + dLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dLabel2->setBounds (136, 304, 30, 24); + + rSlider.reset (new Slider ("r slider")); + addAndMakeVisible (rSlider.get()); + rSlider->setTooltip (TRANS("Envelope release rate")); + rSlider->setRange (0, 15, 1); + rSlider->setSliderStyle (Slider::LinearVertical); + rSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 30, 20); + rSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); + rSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); + rSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + rSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); + rSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + rSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + rSlider->addListener (this); + + rSlider->setBounds (184, 200, 30, 104); + + rLabel.reset (new Label ("r label", + TRANS("R"))); + addAndMakeVisible (rLabel.get()); + rLabel->setTooltip (TRANS("Release rate")); + rLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + rLabel->setJustificationType (Justification::centred); + rLabel->setEditable (false, false, false); + rLabel->setColour (Label::textColourId, Colour (0xff007f00)); + rLabel->setColour (TextEditor::textColourId, Colours::black); + rLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + rLabel->setBounds (184, 304, 30, 24); + + attenuationSlider.reset (new Slider ("attenuation slider")); + addAndMakeVisible (attenuationSlider.get()); + attenuationSlider->setRange (-47.25, 0, 0.75); + attenuationSlider->setSliderStyle (Slider::LinearVertical); + attenuationSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 64, 20); + attenuationSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); + attenuationSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); + attenuationSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + attenuationSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); + attenuationSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + attenuationSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + attenuationSlider->addListener (this); + + attenuationSlider->setBounds (328, 184, 56, 142); + + attenuationLabel.reset (new Label ("attenuation label", + TRANS("Attenuation"))); + addAndMakeVisible (attenuationLabel.get()); + attenuationLabel->setTooltip (TRANS("Final output level adjustment")); + attenuationLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel->setJustificationType (Justification::centred); + attenuationLabel->setEditable (false, false, false); + attenuationLabel->setColour (Label::textColourId, Colour (0xff007f00)); + attenuationLabel->setColour (TextEditor::textColourId, Colours::black); + attenuationLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + attenuationLabel->setBounds (304, 160, 112, 24); + + dbLabel.reset (new Label ("db label", + TRANS("dB"))); + addAndMakeVisible (dbLabel.get()); + dbLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dbLabel->setJustificationType (Justification::centred); + dbLabel->setEditable (false, false, false); + dbLabel->setColour (Label::textColourId, Colour (0xff007f00)); + dbLabel->setColour (Label::outlineColourId, Colour (0x00000000)); + dbLabel->setColour (TextEditor::textColourId, Colours::black); + dbLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dbLabel->setBounds (384, 304, 32, 24); + + sineImageButton.reset (new ImageButton ("sine image button")); + addAndMakeVisible (sineImageButton.get()); + sineImageButton->setButtonText (TRANS("Sine")); + sineImageButton->setRadioGroupId (1); + sineImageButton->addListener (this); + + sineImageButton->setImages (false, true, true, + ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + sineImageButton->setBounds (88, 113, 34, 30); + + halfsineImageButton.reset (new ImageButton ("half sine image button")); + addAndMakeVisible (halfsineImageButton.get()); + halfsineImageButton->setButtonText (TRANS("Half Sine")); + halfsineImageButton->setRadioGroupId (1); + halfsineImageButton->addListener (this); + + halfsineImageButton->setImages (false, true, true, + ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + halfsineImageButton->setBounds (128, 113, 34, 30); + + abssineImageButton.reset (new ImageButton ("abs sine image button")); + addAndMakeVisible (abssineImageButton.get()); + abssineImageButton->setButtonText (TRANS("Abs Sine")); + abssineImageButton->setRadioGroupId (1); + abssineImageButton->addListener (this); + + abssineImageButton->setImages (false, true, true, + ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + abssineImageButton->setBounds (168, 113, 34, 30); + + quartersineImageButton.reset (new ImageButton ("quarter sine image button")); + addAndMakeVisible (quartersineImageButton.get()); + quartersineImageButton->setButtonText (TRANS("Quarter Sine")); + quartersineImageButton->setRadioGroupId (1); + quartersineImageButton->addListener (this); + + quartersineImageButton->setImages (false, true, true, + ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + quartersineImageButton->setBounds (208, 113, 34, 30); + + waveLabel.reset (new Label ("wave label", + TRANS("Wave"))); + addAndMakeVisible (waveLabel.get()); + waveLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + waveLabel->setJustificationType (Justification::centredLeft); + waveLabel->setEditable (false, false, false); + waveLabel->setColour (Label::textColourId, Colour (0xff007f00)); + waveLabel->setColour (TextEditor::textColourId, Colours::black); + waveLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + waveLabel->setBounds (32, 115, 48, 24); + + tremoloButton.reset (new ToggleButton ("tremolo button")); + addAndMakeVisible (tremoloButton.get()); + tremoloButton->setTooltip (TRANS("Modulate amplitude at 3.7 Hz")); + tremoloButton->setButtonText (TRANS("Tremolo")); + tremoloButton->addListener (this); + tremoloButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + + tremoloButton->setBounds (120, 352, 80, 24); + + vibratoButton.reset (new ToggleButton ("vibrato button")); + addAndMakeVisible (vibratoButton.get()); + vibratoButton->setTooltip (TRANS("Modulate frequency at 6.1 Hz")); + vibratoButton->setButtonText (TRANS("Vibrato")); + vibratoButton->addListener (this); + vibratoButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + + vibratoButton->setBounds (32, 352, 72, 24); + + sustainButton.reset (new ToggleButton ("sustain button")); + addAndMakeVisible (sustainButton.get()); + sustainButton->setTooltip (TRANS("Enable or disable sustain when note is held")); + sustainButton->setButtonText (TRANS("Sustain")); + sustainButton->addListener (this); + sustainButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + + sustainButton->setBounds (32, 384, 70, 32); + + keyscaleEnvButton.reset (new ToggleButton ("keyscale env button")); + addAndMakeVisible (keyscaleEnvButton.get()); + keyscaleEnvButton->setTooltip (TRANS("Speed up envelope rate with note frequency")); + keyscaleEnvButton->setButtonText (TRANS("Keyscale Env. Rate")); + keyscaleEnvButton->addListener (this); + keyscaleEnvButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + + keyscaleEnvButton->setBounds (120, 376, 101, 48); + + dbLabel2.reset (new Label ("db label", + TRANS("dB/8ve\n"))); + addAndMakeVisible (dbLabel2.get()); + dbLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dbLabel2->setJustificationType (Justification::centred); + dbLabel2->setEditable (false, false, false); + dbLabel2->setColour (Label::textColourId, Colour (0xff007f00)); + dbLabel2->setColour (Label::outlineColourId, Colour (0x00000000)); + dbLabel2->setColour (TextEditor::textColourId, Colours::black); + dbLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dbLabel2->setBounds (792, 712, 72, 16); + + frequencyComboBox2.reset (new ComboBox ("frequency combo box")); + addAndMakeVisible (frequencyComboBox2.get()); + frequencyComboBox2->setEditableText (false); + frequencyComboBox2->setJustificationType (Justification::centredLeft); + frequencyComboBox2->setTextWhenNothingSelected (String()); + frequencyComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + frequencyComboBox2->addListener (this); + + frequencyComboBox2->setBounds (624, 168, 66, 24); + + frequencyLabel3.reset (new Label ("frequency label", + TRANS("Frequency Multiplier"))); + addAndMakeVisible (frequencyLabel3.get()); + frequencyLabel3->setTooltip (TRANS("Multiplier applied to base note frequency")); + frequencyLabel3->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel3->setJustificationType (Justification::centredLeft); + frequencyLabel3->setEditable (false, false, false); + frequencyLabel3->setColour (Label::textColourId, Colour (0xff007f00)); + frequencyLabel3->setColour (TextEditor::textColourId, Colours::black); + frequencyLabel3->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + frequencyLabel3->setBounds (464, 168, 152, 24); + + aSlider2.reset (new Slider ("a slider")); + addAndMakeVisible (aSlider2.get()); + aSlider2->setRange (0, 15, 1); + aSlider2->setSliderStyle (Slider::LinearVertical); + aSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20); + aSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); + aSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); + aSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + aSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); + aSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + aSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + aSlider2->addListener (this); + + aSlider2->setBounds (464, 200, 30, 104); + + aLabel2.reset (new Label ("a label", + TRANS("A"))); + addAndMakeVisible (aLabel2.get()); + aLabel2->setTooltip (TRANS("Attack rate")); + aLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + aLabel2->setJustificationType (Justification::centred); + aLabel2->setEditable (false, false, false); + aLabel2->setColour (Label::textColourId, Colour (0xff007f00)); + aLabel2->setColour (TextEditor::textColourId, Colours::black); + aLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + aLabel2->setBounds (464, 304, 30, 24); + + dSlider2.reset (new Slider ("d slider")); + addAndMakeVisible (dSlider2.get()); + dSlider2->setRange (0, 15, 1); + dSlider2->setSliderStyle (Slider::LinearVertical); + dSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20); + dSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); + dSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); + dSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + dSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); + dSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + dSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + dSlider2->addListener (this); + + dSlider2->setBounds (512, 200, 30, 104); + + dLabel3.reset (new Label ("d label", + TRANS("D"))); + addAndMakeVisible (dLabel3.get()); + dLabel3->setTooltip (TRANS("Decay rate")); + dLabel3->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dLabel3->setJustificationType (Justification::centred); + dLabel3->setEditable (false, false, false); + dLabel3->setColour (Label::textColourId, Colour (0xff007f00)); + dLabel3->setColour (TextEditor::textColourId, Colours::black); + dLabel3->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dLabel3->setBounds (512, 304, 30, 24); + + sSlider2.reset (new Slider ("s slider")); + addAndMakeVisible (sSlider2.get()); + sSlider2->setRange (0, 15, 1); + sSlider2->setSliderStyle (Slider::LinearVertical); + sSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20); + sSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); + sSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); + sSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + sSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); + sSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + sSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + sSlider2->addListener (this); + + sSlider2->setBounds (560, 200, 30, 104); + + dLabel4.reset (new Label ("d label", + TRANS("S"))); + addAndMakeVisible (dLabel4.get()); + dLabel4->setTooltip (TRANS("Sustain level")); + dLabel4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dLabel4->setJustificationType (Justification::centred); + dLabel4->setEditable (false, false, false); + dLabel4->setColour (Label::textColourId, Colour (0xff007f00)); + dLabel4->setColour (TextEditor::textColourId, Colours::black); + dLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dLabel4->setBounds (560, 304, 30, 24); + + rSlider2.reset (new Slider ("r slider")); + addAndMakeVisible (rSlider2.get()); + rSlider2->setRange (0, 15, 1); + rSlider2->setSliderStyle (Slider::LinearVertical); + rSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20); + rSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); + rSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); + rSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + rSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); + rSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + rSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + rSlider2->addListener (this); + + rSlider2->setBounds (608, 200, 30, 104); + + rLabel2.reset (new Label ("r label", + TRANS("R"))); + addAndMakeVisible (rLabel2.get()); + rLabel2->setTooltip (TRANS("Release rate")); + rLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + rLabel2->setJustificationType (Justification::centred); + rLabel2->setEditable (false, false, false); + rLabel2->setColour (Label::textColourId, Colour (0xff007f00)); + rLabel2->setColour (TextEditor::textColourId, Colours::black); + rLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + rLabel2->setBounds (608, 304, 30, 24); + + attenuationSlider2.reset (new Slider ("attenuation slider")); + addAndMakeVisible (attenuationSlider2.get()); + attenuationSlider2->setRange (-47.25, 0, 0.75); + attenuationSlider2->setSliderStyle (Slider::LinearVertical); + attenuationSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 64, 20); + attenuationSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); + attenuationSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); + attenuationSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + attenuationSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); + attenuationSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + attenuationSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + attenuationSlider2->addListener (this); + + attenuationSlider2->setBounds (752, 184, 56, 142); + + attenuationLabel2.reset (new Label ("attenuation label", + TRANS("Attenuation"))); + addAndMakeVisible (attenuationLabel2.get()); + attenuationLabel2->setTooltip (TRANS("Final output level adjustment")); + attenuationLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel2->setJustificationType (Justification::centred); + attenuationLabel2->setEditable (false, false, false); + attenuationLabel2->setColour (Label::textColourId, Colour (0xff007f00)); + attenuationLabel2->setColour (TextEditor::textColourId, Colours::black); + attenuationLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + attenuationLabel2->setBounds (728, 160, 112, 24); + + dbLabel3.reset (new Label ("db label", + TRANS("dB"))); + addAndMakeVisible (dbLabel3.get()); + dbLabel3->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dbLabel3->setJustificationType (Justification::centred); + dbLabel3->setEditable (false, false, false); + dbLabel3->setColour (Label::textColourId, Colour (0xff007f00)); + dbLabel3->setColour (Label::outlineColourId, Colour (0x00000000)); + dbLabel3->setColour (TextEditor::textColourId, Colours::black); + dbLabel3->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dbLabel3->setBounds (800, 304, 40, 24); + + sineImageButton2.reset (new ImageButton ("sine image button")); + addAndMakeVisible (sineImageButton2.get()); + sineImageButton2->setButtonText (TRANS("Sine")); + sineImageButton2->setRadioGroupId (2); + sineImageButton2->addListener (this); + + sineImageButton2->setImages (false, true, true, + ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + sineImageButton2->setBounds (512, 113, 34, 30); + + halfsineImageButton2.reset (new ImageButton ("half sine image button")); + addAndMakeVisible (halfsineImageButton2.get()); + halfsineImageButton2->setButtonText (TRANS("Half Sine")); + halfsineImageButton2->setRadioGroupId (2); + halfsineImageButton2->addListener (this); + + halfsineImageButton2->setImages (false, true, true, + ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + halfsineImageButton2->setBounds (552, 113, 34, 30); + + abssineImageButton2.reset (new ImageButton ("abs sine image button")); + addAndMakeVisible (abssineImageButton2.get()); + abssineImageButton2->setButtonText (TRANS("Abs Sine")); + abssineImageButton2->setRadioGroupId (2); + abssineImageButton2->addListener (this); + + abssineImageButton2->setImages (false, true, true, + ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + abssineImageButton2->setBounds (592, 113, 34, 30); + + quartersineImageButton2.reset (new ImageButton ("quarter sine image button")); + addAndMakeVisible (quartersineImageButton2.get()); + quartersineImageButton2->setButtonText (TRANS("Quarter Sine")); + quartersineImageButton2->setRadioGroupId (2); + quartersineImageButton2->addListener (this); + + quartersineImageButton2->setImages (false, true, true, + ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + quartersineImageButton2->setBounds (632, 113, 34, 30); + + waveLabel2.reset (new Label ("wave label", + TRANS("Wave"))); + addAndMakeVisible (waveLabel2.get()); + waveLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + waveLabel2->setJustificationType (Justification::centredLeft); + waveLabel2->setEditable (false, false, false); + waveLabel2->setColour (Label::textColourId, Colour (0xff007f00)); + waveLabel2->setColour (TextEditor::textColourId, Colours::black); + waveLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + waveLabel2->setBounds (456, 115, 48, 24); + + tremoloButton2.reset (new ToggleButton ("tremolo button")); + addAndMakeVisible (tremoloButton2.get()); + tremoloButton2->setTooltip (TRANS("Modulate amplitude at 3.7 Hz")); + tremoloButton2->setButtonText (TRANS("Tremolo")); + tremoloButton2->addListener (this); + tremoloButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + + tremoloButton2->setBounds (544, 352, 80, 24); + + vibratoButton2.reset (new ToggleButton ("vibrato button")); + addAndMakeVisible (vibratoButton2.get()); + vibratoButton2->setTooltip (TRANS("Modulate frequency at 6.1 Hz")); + vibratoButton2->setButtonText (TRANS("Vibrato")); + vibratoButton2->addListener (this); + vibratoButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + + vibratoButton2->setBounds (456, 352, 72, 24); + + sustainButton2.reset (new ToggleButton ("sustain button")); + addAndMakeVisible (sustainButton2.get()); + sustainButton2->setTooltip (TRANS("Enable or disable sustain when note is held")); + sustainButton2->setButtonText (TRANS("Sustain")); + sustainButton2->addListener (this); + sustainButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + + sustainButton2->setBounds (456, 384, 70, 24); + + keyscaleEnvButton2.reset (new ToggleButton ("keyscale env button")); + addAndMakeVisible (keyscaleEnvButton2.get()); + keyscaleEnvButton2->setTooltip (TRANS("Speed up envelope rate with note frequency")); + keyscaleEnvButton2->setButtonText (TRANS("Keyscale Env. Rate")); + keyscaleEnvButton2->addListener (this); + keyscaleEnvButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + + keyscaleEnvButton2->setBounds (544, 376, 102, 48); + + frequencyLabel4.reset (new Label ("frequency label", + TRANS("Keyscale Attenuation"))); + addAndMakeVisible (frequencyLabel4.get()); + frequencyLabel4->setTooltip (TRANS("Attenuate amplitude with note frequency in dB per octave")); + frequencyLabel4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel4->setJustificationType (Justification::centred); + frequencyLabel4->setEditable (false, false, false); + frequencyLabel4->setColour (Label::textColourId, Colour (0xff007f00)); + frequencyLabel4->setColour (TextEditor::textColourId, Colours::black); + frequencyLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + frequencyLabel4->setBounds (656, 376, 88, 48); + + groupComponent3.reset (new GroupComponent ("new group", + TRANS("Effect depth"))); + addAndMakeVisible (groupComponent3.get()); + groupComponent3->setTextLabelPosition (Justification::centredLeft); + groupComponent3->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); + groupComponent3->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + + groupComponent3->setBounds (16, 440, 248, 120); + + tremoloSlider.reset (new Slider ("tremolo slider")); + addAndMakeVisible (tremoloSlider.get()); + tremoloSlider->setRange (1, 4.8, 3.8); + tremoloSlider->setSliderStyle (Slider::LinearHorizontal); + tremoloSlider->setTextBoxStyle (Slider::TextBoxRight, true, 32, 20); + tremoloSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); + 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->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + tremoloSlider->addListener (this); + + tremoloSlider->setBounds (112, 472, 80, 24); + + frequencyLabel5.reset (new Label ("frequency label", + TRANS("Tremolo\n"))); + addAndMakeVisible (frequencyLabel5.get()); + frequencyLabel5->setTooltip (TRANS("OPL global tremolo depth")); + frequencyLabel5->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel5->setJustificationType (Justification::centredLeft); + frequencyLabel5->setEditable (false, false, false); + frequencyLabel5->setColour (Label::textColourId, Colour (0xff007f00)); + frequencyLabel5->setColour (TextEditor::textColourId, Colours::black); + frequencyLabel5->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + frequencyLabel5->setBounds (32, 472, 80, 24); + + dbLabel5.reset (new Label ("db label", + TRANS("dB"))); + addAndMakeVisible (dbLabel5.get()); + dbLabel5->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dbLabel5->setJustificationType (Justification::centredLeft); + 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)); + + dbLabel5->setBounds (200, 464, 32, 40); + + vibratoSlider.reset (new Slider ("vibrato slider")); + addAndMakeVisible (vibratoSlider.get()); + vibratoSlider->setRange (7, 14, 7); + vibratoSlider->setSliderStyle (Slider::LinearHorizontal); + vibratoSlider->setTextBoxStyle (Slider::TextBoxRight, true, 32, 20); + vibratoSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); + 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->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + vibratoSlider->addListener (this); + + vibratoSlider->setBounds (112, 512, 80, 24); + + frequencyLabel6.reset (new Label ("frequency label", + TRANS("Vibrato"))); + addAndMakeVisible (frequencyLabel6.get()); + frequencyLabel6->setTooltip (TRANS("OPL global vibrato depth")); + frequencyLabel6->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel6->setJustificationType (Justification::centredLeft); + frequencyLabel6->setEditable (false, false, false); + frequencyLabel6->setColour (Label::textColourId, Colour (0xff007f00)); + frequencyLabel6->setColour (TextEditor::textColourId, Colours::black); + frequencyLabel6->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + frequencyLabel6->setBounds (32, 512, 80, 24); + + dbLabel6.reset (new Label ("db label", + TRANS("cents\n"))); + addAndMakeVisible (dbLabel6.get()); + dbLabel6->setTooltip (TRANS("A unit of pitch; 100 cents per semitone")); + dbLabel6->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dbLabel6->setJustificationType (Justification::centredLeft); + 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)); + + dbLabel6->setBounds (200, 504, 48, 40); + + feedbackSlider.reset (new Slider ("feedback slider")); + addAndMakeVisible (feedbackSlider.get()); + feedbackSlider->setRange (0, 7, 1); + feedbackSlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag); + feedbackSlider->setTextBoxStyle (Slider::TextBoxBelow, true, 30, 20); + feedbackSlider->setColour (Slider::thumbColourId, Colour (0xff00af00)); + feedbackSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); + feedbackSlider->setColour (Slider::rotarySliderFillColourId, Colour (0xff00af00)); + feedbackSlider->setColour (Slider::rotarySliderOutlineColourId, Colour (0xff007f00)); + feedbackSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + feedbackSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); + feedbackSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + feedbackSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + feedbackSlider->addListener (this); + + feedbackSlider->setBounds (248, 237, 30, 67); + + frequencyLabel7.reset (new Label ("frequency label", + TRANS("Feedback"))); + addAndMakeVisible (frequencyLabel7.get()); + frequencyLabel7->setTooltip (TRANS("Extent to which modulator output is fed back into itself")); + frequencyLabel7->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel7->setJustificationType (Justification::centred); + frequencyLabel7->setEditable (false, false, false); + frequencyLabel7->setColour (Label::textColourId, Colour (0xff007f00)); + frequencyLabel7->setColour (TextEditor::textColourId, Colours::black); + frequencyLabel7->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + frequencyLabel7->setBounds (224, 304, 80, 24); + + velocityComboBox.reset (new ComboBox ("velocity combo box")); + addAndMakeVisible (velocityComboBox.get()); + velocityComboBox->setEditableText (false); + velocityComboBox->setJustificationType (Justification::centredLeft); + velocityComboBox->setTextWhenNothingSelected (String()); + velocityComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + velocityComboBox->addItem (TRANS("Off"), 1); + velocityComboBox->addItem (TRANS("Light"), 2); + velocityComboBox->addItem (TRANS("Heavy"), 3); + velocityComboBox->addListener (this); + + velocityComboBox->setBounds (328, 352, 76, 24); + + velocityComboBox2.reset (new ComboBox ("velocity combo box")); + addAndMakeVisible (velocityComboBox2.get()); + velocityComboBox2->setEditableText (false); + velocityComboBox2->setJustificationType (Justification::centredLeft); + velocityComboBox2->setTextWhenNothingSelected (String()); + velocityComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + velocityComboBox2->addItem (TRANS("Off"), 1); + velocityComboBox2->addItem (TRANS("Light"), 2); + velocityComboBox2->addItem (TRANS("Heavy"), 3); + velocityComboBox2->addListener (this); + + velocityComboBox2->setBounds (760, 352, 72, 24); + + attenuationLabel4.reset (new Label ("attenuation label", + TRANS("Velocity Sensitivity"))); + addAndMakeVisible (attenuationLabel4.get()); + attenuationLabel4->setTooltip (TRANS("Set or disable velocity senstivity")); + attenuationLabel4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel4->setJustificationType (Justification::centred); + attenuationLabel4->setEditable (false, false, false); + attenuationLabel4->setColour (Label::textColourId, Colour (0xff007f00)); + attenuationLabel4->setColour (TextEditor::textColourId, Colours::black); + attenuationLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + attenuationLabel4->setBounds (760, 376, 80, 48); + + alternatingsineImageButton.reset (new ImageButton ("alternating sine image button")); + addAndMakeVisible (alternatingsineImageButton.get()); + alternatingsineImageButton->setButtonText (TRANS("Alternating Sine")); + alternatingsineImageButton->setRadioGroupId (1); + alternatingsineImageButton->addListener (this); + + alternatingsineImageButton->setImages (false, true, true, + ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + alternatingsineImageButton->setBounds (288, 113, 34, 30); + + camelsineImageButton.reset (new ImageButton ("camel sine image button")); + addAndMakeVisible (camelsineImageButton.get()); + camelsineImageButton->setButtonText (TRANS("Camel Sine")); + camelsineImageButton->setRadioGroupId (1); + camelsineImageButton->addListener (this); + + camelsineImageButton->setImages (false, true, true, + ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + camelsineImageButton->setBounds (248, 113, 34, 30); + + squareImageButton.reset (new ImageButton ("square image button")); + addAndMakeVisible (squareImageButton.get()); + squareImageButton->setButtonText (TRANS("Square")); + squareImageButton->setRadioGroupId (1); + squareImageButton->addListener (this); + + squareImageButton->setImages (false, true, true, + ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + squareImageButton->setBounds (328, 113, 34, 30); + + logsawImageButton.reset (new ImageButton ("logsaw image button")); + addAndMakeVisible (logsawImageButton.get()); + logsawImageButton->setButtonText (TRANS("Logarithmic Sawtooth")); + logsawImageButton->setRadioGroupId (1); + logsawImageButton->addListener (this); + + logsawImageButton->setImages (false, true, true, + ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + logsawImageButton->setBounds (368, 113, 34, 30); + + alternatingsineImageButton2.reset (new ImageButton ("alternating sine image button")); + addAndMakeVisible (alternatingsineImageButton2.get()); + alternatingsineImageButton2->setButtonText (TRANS("Alternating Sine")); + alternatingsineImageButton2->setRadioGroupId (2); + alternatingsineImageButton2->addListener (this); + + alternatingsineImageButton2->setImages (false, true, true, + ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + alternatingsineImageButton2->setBounds (714, 114, 34, 30); + + camelsineImageButton2.reset (new ImageButton ("camel sine image button")); + addAndMakeVisible (camelsineImageButton2.get()); + camelsineImageButton2->setButtonText (TRANS("Camel Sine")); + camelsineImageButton2->setRadioGroupId (2); + camelsineImageButton2->addListener (this); + + camelsineImageButton2->setImages (false, true, true, + ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + camelsineImageButton2->setBounds (674, 114, 34, 30); + + squareImageButton2.reset (new ImageButton ("square image button")); + addAndMakeVisible (squareImageButton2.get()); + squareImageButton2->setButtonText (TRANS("Square")); + squareImageButton2->setRadioGroupId (2); + squareImageButton2->addListener (this); + + squareImageButton2->setImages (false, true, true, + ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + squareImageButton2->setBounds (754, 114, 34, 30); + + logsawImageButton2.reset (new ImageButton ("logsaw image button")); + addAndMakeVisible (logsawImageButton2.get()); + logsawImageButton2->setButtonText (TRANS("Logarithmic Sawtooth")); + logsawImageButton2->setRadioGroupId (2); + logsawImageButton2->addListener (this); + + logsawImageButton2->setImages (false, true, true, + ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + logsawImageButton2->setBounds (794, 114, 34, 30); + + dbLabel4.reset (new Label ("db label", + TRANS("dB/8ve\n"))); + addAndMakeVisible (dbLabel4.get()); + dbLabel4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dbLabel4->setJustificationType (Justification::centred); + dbLabel4->setEditable (false, false, false); + dbLabel4->setColour (Label::textColourId, Colour (0xff007f00)); + dbLabel4->setColour (Label::outlineColourId, Colour (0x00000000)); + dbLabel4->setColour (TextEditor::textColourId, Colours::black); + dbLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dbLabel4->setBounds (792, 688, 72, 16); + + keyscaleAttenuationComboBox2.reset (new ComboBox ("keyscale combo box")); + addAndMakeVisible (keyscaleAttenuationComboBox2.get()); + keyscaleAttenuationComboBox2->setEditableText (false); + keyscaleAttenuationComboBox2->setJustificationType (Justification::centredLeft); + keyscaleAttenuationComboBox2->setTextWhenNothingSelected (String()); + keyscaleAttenuationComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + keyscaleAttenuationComboBox2->addItem (TRANS("-0.0"), 1); + keyscaleAttenuationComboBox2->addItem (TRANS("-3.0"), 2); + keyscaleAttenuationComboBox2->addItem (TRANS("-1.5"), 3); + keyscaleAttenuationComboBox2->addItem (TRANS("-6.0"), 4); + keyscaleAttenuationComboBox2->addListener (this); + + keyscaleAttenuationComboBox2->setBounds (664, 352, 76, 24); + + keyscaleAttenuationComboBox.reset (new ComboBox ("keyscale combo box")); + addAndMakeVisible (keyscaleAttenuationComboBox.get()); + keyscaleAttenuationComboBox->setEditableText (false); + keyscaleAttenuationComboBox->setJustificationType (Justification::centredLeft); + keyscaleAttenuationComboBox->setTextWhenNothingSelected (String()); + keyscaleAttenuationComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); + keyscaleAttenuationComboBox->addItem (TRANS("-0.0"), 1); + keyscaleAttenuationComboBox->addItem (TRANS("-3.0"), 2); + keyscaleAttenuationComboBox->addItem (TRANS("-1.5"), 3); + keyscaleAttenuationComboBox->addItem (TRANS("-6.0"), 4); + keyscaleAttenuationComboBox->addListener (this); + + keyscaleAttenuationComboBox->setBounds (232, 352, 76, 24); + + groupComponent5.reset (new GroupComponent ("new group", + TRANS("Emulator (currently locked)"))); + addAndMakeVisible (groupComponent5.get()); + groupComponent5->setTextLabelPosition (Justification::centredLeft); + groupComponent5->setColour (GroupComponent::outlineColourId, Colour (0xff007f00)); + groupComponent5->setColour (GroupComponent::textColourId, Colour (0xff007f00)); + + groupComponent5->setBounds (24, 712, 408, 64); + + emulatorSlider.reset (new Slider ("emulator slider")); + addAndMakeVisible (emulatorSlider.get()); + emulatorSlider->setRange (0, 1, 1); + emulatorSlider->setSliderStyle (Slider::LinearHorizontal); + emulatorSlider->setTextBoxStyle (Slider::NoTextBox, true, 44, 20); + emulatorSlider->setColour (Slider::thumbColourId, Colour (0xff00af00)); + emulatorSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); + emulatorSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); + emulatorSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); + emulatorSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + emulatorSlider->addListener (this); + + emulatorSlider->setBounds (208, 736, 40, 24); + + emulatorLabel.reset (new Label ("emulator label", + TRANS("DOSBox"))); + addAndMakeVisible (emulatorLabel.get()); + emulatorLabel->setTooltip (TRANS("Use the OPL emulator from the DOSBox project")); + emulatorLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + emulatorLabel->setJustificationType (Justification::centredRight); + emulatorLabel->setEditable (false, false, false); + emulatorLabel->setColour (Label::textColourId, Colour (0xff007f00)); + emulatorLabel->setColour (TextEditor::textColourId, Colours::black); + emulatorLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + emulatorLabel->setBounds (120, 736, 72, 24); + + emulatorLabel2.reset (new Label ("emulator label", + TRANS("ZDoom"))); + addAndMakeVisible (emulatorLabel2.get()); + emulatorLabel2->setTooltip (TRANS("Use the OPL emulator from the ZDoom project")); + emulatorLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + emulatorLabel2->setJustificationType (Justification::centredLeft); + emulatorLabel2->setEditable (false, false, false); + emulatorLabel2->setColour (Label::textColourId, Colour (0xff007f00)); + emulatorLabel2->setColour (TextEditor::textColourId, Colours::black); + emulatorLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + emulatorLabel2->setBounds (256, 736, 72, 24); + + recordButton.reset (new ToggleButton ("record button")); + addAndMakeVisible (recordButton.get()); + recordButton->setTooltip (TRANS("Start recording all register writes to a DRO file - an OPL recording file format defined by DOSBox")); + recordButton->setButtonText (TRANS("Record to DRO (not working yet)")); + recordButton->addListener (this); + recordButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + + recordButton->setBounds (32, 680, 224, 24); + + loadButton.reset (new TextButton ("load button")); + addAndMakeVisible (loadButton.get()); + loadButton->setButtonText (TRANS("Load")); + loadButton->setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); + loadButton->addListener (this); + loadButton->setColour (TextButton::buttonColourId, Colour (0xff007f00)); + loadButton->setColour (TextButton::buttonOnColourId, Colours::lime); + + loadButton->setBounds (728, 472, 96, 24); + + versionLabel.reset (new Label ("version label", + String())); + addAndMakeVisible (versionLabel.get()); + versionLabel->setFont (Font (12.00f, Font::plain).withTypefaceStyle ("Regular")); + versionLabel->setJustificationType (Justification::centredRight); + versionLabel->setEditable (false, false, false); + versionLabel->setColour (Label::textColourId, Colour (0xff007f00)); + versionLabel->setColour (TextEditor::textColourId, Colours::black); + versionLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + versionLabel->setBounds (648, 560, 198, 16); + + ToggleButtonOffExample.reset (new ImageButton ("Toggle Button Off Example")); + addAndMakeVisible (ToggleButtonOffExample.get()); + ToggleButtonOffExample->setButtonText (TRANS("new button")); + ToggleButtonOffExample->addListener (this); + + ToggleButtonOffExample->setImages (false, true, true, + ImageCache::getFromMemory (toggle_off_sq_png, toggle_off_sq_pngSize), 1.000f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + ToggleButtonOffExample->setBounds (1032, 584, 12, 12); + + ToggleButtonOnExample.reset (new ImageButton ("Toggle Button On Example")); + addAndMakeVisible (ToggleButtonOnExample.get()); + ToggleButtonOnExample->setButtonText (TRANS("new button")); + ToggleButtonOnExample->addListener (this); + + ToggleButtonOnExample->setImages (false, true, true, + ImageCache::getFromMemory (toggle_on_sq_png, toggle_on_sq_pngSize), 1.000f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + ToggleButtonOnExample->setBounds (1064, 584, 12, 12); + + label.reset (new Label ("new label", + TRANS("Toggle buttons"))); + addAndMakeVisible (label.get()); + label->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label->setJustificationType (Justification::centred); + label->setEditable (false, false, false); + label->setColour (Label::textColourId, Colours::green); + label->setColour (TextEditor::textColourId, Colours::black); + label->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label->setBounds (1000, 608, 104, 24); + + label2.reset (new Label ("new label", + TRANS("Line borders"))); + addAndMakeVisible (label2.get()); + label2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label2->setJustificationType (Justification::centred); + label2->setEditable (false, false, false); + label2->setColour (Label::textColourId, Colours::green); + label2->setColour (TextEditor::textColourId, Colours::black); + label2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label2->setBounds (872, 608, 104, 24); + + LineBorderButton1C.reset (new ImageButton ("Line Border 1C")); + addAndMakeVisible (LineBorderButton1C.get()); + LineBorderButton1C->setButtonText (TRANS("new button")); + + LineBorderButton1C->setImages (false, true, false, + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + LineBorderButton1C->setBounds (20, 336, 400, 6); + + LineBorderButton1A.reset (new ImageButton ("Line Border 1A")); + addAndMakeVisible (LineBorderButton1A.get()); + LineBorderButton1A->setButtonText (TRANS("new button")); + + LineBorderButton1A->setImages (false, true, false, + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + LineBorderButton1A->setBounds (20, 152, 400, 6); + + LineBorderButton1B.reset (new ImageButton ("Line Border 1B")); + addAndMakeVisible (LineBorderButton1B.get()); + LineBorderButton1B->setButtonText (TRANS("new button")); + + LineBorderButton1B->setImages (false, true, false, + ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000)); + LineBorderButton1B->setBounds (296, 156, 6, 182); + + label3.reset (new Label ("new label", + TRANS("Temporarily removed labels to avoid making wider boxes."))); + addAndMakeVisible (label3.get()); + label3->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label3->setJustificationType (Justification::centred); + label3->setEditable (false, false, false); + label3->setColour (Label::textColourId, Colours::green); + label3->setColour (TextEditor::textColourId, Colours::black); + label3->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label3->setBounds (776, 736, 104, 56); + + LineBorderButton1C2.reset (new ImageButton ("Line Border 1C")); + addAndMakeVisible (LineBorderButton1C2.get()); + LineBorderButton1C2->setButtonText (TRANS("new button")); + + LineBorderButton1C2->setImages (false, true, false, + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + LineBorderButton1C2->setBounds (444, 336, 400, 6); + + LineBorderButton1A2.reset (new ImageButton ("Line Border 1A")); + addAndMakeVisible (LineBorderButton1A2.get()); + LineBorderButton1A2->setButtonText (TRANS("new button")); + + LineBorderButton1A2->setImages (false, true, false, + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + LineBorderButton1A2->setBounds (444, 152, 400, 6); + + LineBorderButton1B2.reset (new ImageButton ("Line Border 1B")); + addAndMakeVisible (LineBorderButton1B2.get()); + LineBorderButton1B2->setButtonText (TRANS("new button")); + + LineBorderButton1B2->setImages (false, true, false, + ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000)); + LineBorderButton1B2->setBounds (720, 156, 6, 182); + + LineBorderButton1C3.reset (new ImageButton ("Line Border 1C")); + addAndMakeVisible (LineBorderButton1C3.get()); + LineBorderButton1C3->setButtonText (TRANS("new button")); + + LineBorderButton1C3->setImages (false, true, false, + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + LineBorderButton1C3->setBounds (892, 584, 20, 6); + + LineBorderButton1B3.reset (new ImageButton ("Line Border 1B")); + addAndMakeVisible (LineBorderButton1B3.get()); + LineBorderButton1B3->setButtonText (TRANS("new button")); + + LineBorderButton1B3->setImages (false, true, false, + ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), + ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000)); + LineBorderButton1B3->setBounds (936, 576, 6, 20); + + algoSwitchButtonOffEx1.reset (new ImageButton ("Algorithm Switch Off AM")); + addAndMakeVisible (algoSwitchButtonOffEx1.get()); + algoSwitchButtonOffEx1->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx1->addListener (this); + + algoSwitchButtonOffEx1->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOffEx1->setBounds (952, 701, 64, 24); + + algoSwitchButtonOffEx2.reset (new ImageButton ("Algorithm Switch Off FM")); + addAndMakeVisible (algoSwitchButtonOffEx2.get()); + algoSwitchButtonOffEx2->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx2->addListener (this); + + algoSwitchButtonOffEx2->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOffEx2->setBounds (952, 727, 64, 24); + + algoSwitchButtonOnEx1.reset (new ImageButton ("Algorithm Switch On AM")); + addAndMakeVisible (algoSwitchButtonOnEx1.get()); + algoSwitchButtonOnEx1->setButtonText (TRANS("new button")); + algoSwitchButtonOnEx1->addListener (this); + + algoSwitchButtonOnEx1->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOnEx1->setBounds (1040, 701, 64, 24); + + algoSwitchButtonOnEx2.reset (new ImageButton ("Algorithm Switch On FM")); + addAndMakeVisible (algoSwitchButtonOnEx2.get()); + algoSwitchButtonOnEx2->setButtonText (TRANS("new button")); + algoSwitchButtonOnEx2->addListener (this); + + algoSwitchButtonOnEx2->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOnEx2->setBounds (1040, 727, 64, 24); + + label4.reset (new Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label4.get()); + label4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label4->setJustificationType (Justification::centredLeft); + label4->setEditable (false, false, false); + label4->setColour (Label::textColourId, Colours::green); + label4->setColour (TextEditor::textColourId, Colours::black); + label4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label4->setBounds (970, 701, 32, 24); + + label5.reset (new Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label5.get()); + label5->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label5->setJustificationType (Justification::centredLeft); + label5->setEditable (false, false, false); + label5->setColour (Label::textColourId, Colours::green); + label5->setColour (TextEditor::textColourId, Colours::black); + label5->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label5->setBounds (971, 727, 32, 24); + + label6.reset (new Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label6.get()); + label6->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label6->setJustificationType (Justification::centredLeft); + label6->setEditable (false, false, false); + label6->setColour (Label::textColourId, Colours::black); + label6->setColour (TextEditor::textColourId, Colours::black); + label6->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label6->setBounds (1057, 701, 32, 24); + + label7.reset (new Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label7.get()); + label7->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label7->setJustificationType (Justification::centredLeft); + label7->setEditable (false, false, false); + label7->setColour (Label::textColourId, Colours::black); + label7->setColour (TextEditor::textColourId, Colours::black); + label7->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label7->setBounds (1058, 727, 32, 24); + + label8.reset (new Label ("new label", + TRANS("Example AM/FM switches"))); + addAndMakeVisible (label8.get()); + label8->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label8->setJustificationType (Justification::centred); + label8->setEditable (false, false, false); + label8->setColour (Label::textColourId, Colours::green); + label8->setColour (TextEditor::textColourId, Colours::black); + label8->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label8->setBounds (944, 816, 320, 24); + + algoSwitchButtonOn2Ex1.reset (new ImageButton ("Algorithm Switch On2 AM")); + addAndMakeVisible (algoSwitchButtonOn2Ex1.get()); + algoSwitchButtonOn2Ex1->setButtonText (TRANS("new button")); + algoSwitchButtonOn2Ex1->addListener (this); + + algoSwitchButtonOn2Ex1->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOn2Ex1->setBounds (1128, 700, 64, 24); + + algoSwitchButtonOn2Ex2.reset (new ImageButton ("Algorithm Switch On2 FM")); + addAndMakeVisible (algoSwitchButtonOn2Ex2.get()); + algoSwitchButtonOn2Ex2->setButtonText (TRANS("new button")); + algoSwitchButtonOn2Ex2->addListener (this); + + algoSwitchButtonOn2Ex2->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOn2Ex2->setBounds (1128, 727, 64, 24); + + label9.reset (new Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label9.get()); + label9->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label9->setJustificationType (Justification::centredLeft); + label9->setEditable (false, false, false); + label9->setColour (Label::textColourId, Colours::black); + label9->setColour (TextEditor::textColourId, Colours::black); + label9->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label9->setBounds (1145, 700, 32, 24); + + label10.reset (new Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label10.get()); + label10->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label10->setJustificationType (Justification::centredLeft); + label10->setEditable (false, false, false); + label10->setColour (Label::textColourId, Colours::black); + label10->setColour (TextEditor::textColourId, Colours::black); + label10->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label10->setBounds (1146, 727, 32, 24); + + algoSwitchButtonOn3Ex1.reset (new ImageButton ("Algorithm Switch On3 AM")); + addAndMakeVisible (algoSwitchButtonOn3Ex1.get()); + algoSwitchButtonOn3Ex1->setButtonText (TRANS("new button")); + algoSwitchButtonOn3Ex1->addListener (this); + + algoSwitchButtonOn3Ex1->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOn3Ex1->setBounds (1216, 700, 64, 24); + + algoSwitchButtonOn3Ex2.reset (new ImageButton ("Algorithm Switch On3 FM")); + addAndMakeVisible (algoSwitchButtonOn3Ex2.get()); + algoSwitchButtonOn3Ex2->setButtonText (TRANS("new button")); + algoSwitchButtonOn3Ex2->addListener (this); + + algoSwitchButtonOn3Ex2->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOn3Ex2->setBounds (1216, 727, 64, 24); + + label11.reset (new Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label11.get()); + label11->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label11->setJustificationType (Justification::centredLeft); + label11->setEditable (false, false, false); + label11->setColour (Label::textColourId, Colours::black); + label11->setColour (TextEditor::textColourId, Colours::black); + label11->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label11->setBounds (1233, 700, 31, 24); + + label12.reset (new Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label12.get()); + label12->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label12->setJustificationType (Justification::centredLeft); + label12->setEditable (false, false, false); + label12->setColour (Label::textColourId, Colours::black); + label12->setColour (TextEditor::textColourId, Colours::black); + label12->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label12->setBounds (1234, 727, 32, 24); + + TwoOpAMButton.reset (new ImageButton ("Two OP AM Button")); + addAndMakeVisible (TwoOpAMButton.get()); + TwoOpAMButton->setButtonText (TRANS("new button")); + TwoOpAMButton->addListener (this); + + TwoOpAMButton->setImages (false, true, false, + ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000)); + TwoOpAMButton->setBounds (1173, 484, 60, 56); + + TwoOpFMButton.reset (new ImageButton ("Two OP FM Button")); + addAndMakeVisible (TwoOpFMButton.get()); + TwoOpFMButton->setButtonText (TRANS("new button")); + TwoOpFMButton->addListener (this); + + TwoOpFMButton->setImages (false, true, true, + ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000)); + TwoOpFMButton->setBounds (1156, 568, 80, 26); + + label13.reset (new Label ("new label", + TRANS("M"))); + addAndMakeVisible (label13.get()); + label13->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label13->setJustificationType (Justification::centred); + label13->setEditable (false, false, false); + label13->setColour (TextEditor::textColourId, Colours::black); + label13->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label13->setBounds (1179, 489, 24, 24); + + label14.reset (new Label ("new label", + TRANS("C"))); + addAndMakeVisible (label14.get()); + label14->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label14->setJustificationType (Justification::centred); + label14->setEditable (false, false, false); + label14->setColour (TextEditor::textColourId, Colours::black); + label14->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label14->setBounds (1179, 518, 24, 24); + + label15.reset (new Label ("new label", + TRANS("M"))); + addAndMakeVisible (label15.get()); + label15->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label15->setJustificationType (Justification::centred); + label15->setEditable (false, false, false); + label15->setColour (TextEditor::textColourId, Colours::black); + label15->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label15->setBounds (1166, 572, 24, 24); + + label16.reset (new Label ("new label", + TRANS("C"))); + addAndMakeVisible (label16.get()); + label16->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label16->setJustificationType (Justification::centred); + label16->setEditable (false, false, false); + label16->setColour (TextEditor::textColourId, Colours::black); + label16->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label16->setBounds (1195, 572, 24, 24); + + label17.reset (new Label ("new label", + TRANS("Example Algorithms"))); + addAndMakeVisible (label17.get()); + label17->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label17->setJustificationType (Justification::centred); + label17->setEditable (false, false, false); + label17->setColour (Label::textColourId, Colours::green); + label17->setColour (TextEditor::textColourId, Colours::black); + label17->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label17->setBounds (1128, 608, 136, 24); + + groupComponent6.reset (new GroupComponent ("new group", + String())); + addAndMakeVisible (groupComponent6.get()); + groupComponent6->setColour (GroupComponent::outlineColourId, Colours::green); + + groupComponent6->setBounds (933, 56, 168, 95); + + algoSwitchButtonOnEx3.reset (new ImageButton ("Algorithm Switch On AM")); + addAndMakeVisible (algoSwitchButtonOnEx3.get()); + algoSwitchButtonOnEx3->setButtonText (TRANS("new button")); + algoSwitchButtonOnEx3->addListener (this); + + algoSwitchButtonOnEx3->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOnEx3->setBounds (949, 82, 64, 24); + + label18.reset (new Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label18.get()); + label18->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label18->setJustificationType (Justification::centredLeft); + label18->setEditable (false, false, false); + label18->setColour (Label::textColourId, Colours::black); + label18->setColour (TextEditor::textColourId, Colours::black); + label18->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label18->setBounds (966, 82, 32, 24); + + algoSwitchButtonOffEx3.reset (new ImageButton ("Algorithm Switch Off FM")); + addAndMakeVisible (algoSwitchButtonOffEx3.get()); + algoSwitchButtonOffEx3->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx3->addListener (this); + + algoSwitchButtonOffEx3->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOffEx3->setBounds (949, 108, 64, 24); + + label19.reset (new Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label19.get()); + label19->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label19->setJustificationType (Justification::centredLeft); + label19->setEditable (false, false, false); + label19->setColour (Label::textColourId, Colours::green); + label19->setColour (TextEditor::textColourId, Colours::black); + label19->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label19->setBounds (968, 108, 32, 24); + + TwoOpAMButton2.reset (new ImageButton ("Two OP AM Button")); + addAndMakeVisible (TwoOpAMButton2.get()); + TwoOpAMButton2->setButtonText (TRANS("new button")); + TwoOpAMButton2->addListener (this); + + TwoOpAMButton2->setImages (false, true, false, + ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000)); + TwoOpAMButton2->setBounds (1029, 77, 60, 56); + + label20.reset (new Label ("new label", + TRANS("M"))); + addAndMakeVisible (label20.get()); + label20->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label20->setJustificationType (Justification::centred); + label20->setEditable (false, false, false); + label20->setColour (TextEditor::textColourId, Colours::black); + label20->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label20->setBounds (1035, 82, 24, 24); + + label21.reset (new Label ("new label", + TRANS("C"))); + addAndMakeVisible (label21.get()); + label21->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label21->setJustificationType (Justification::centred); + label21->setEditable (false, false, false); + label21->setColour (TextEditor::textColourId, Colours::black); + label21->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label21->setBounds (1035, 111, 24, 24); + + label22.reset (new Label ("new label", + TRANS("Example Algo Sections w/ Diagram"))); + addAndMakeVisible (label22.get()); + label22->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label22->setJustificationType (Justification::centred); + label22->setEditable (false, false, false); + label22->setColour (Label::textColourId, Colours::green); + label22->setColour (TextEditor::textColourId, Colours::black); + label22->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label22->setBounds (952, 160, 328, 40); + + algoSwitchButtonOffEx4.reset (new ImageButton ("Algorithm Switch Off AM")); + addAndMakeVisible (algoSwitchButtonOffEx4.get()); + algoSwitchButtonOffEx4->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx4->addListener (this); + + algoSwitchButtonOffEx4->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOffEx4->setBounds (1125, 82, 64, 24); + + label23.reset (new Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label23.get()); + label23->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label23->setJustificationType (Justification::centredLeft); + label23->setEditable (false, false, false); + label23->setColour (Label::textColourId, Colours::green); + label23->setColour (TextEditor::textColourId, Colours::black); + label23->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label23->setBounds (1143, 82, 32, 24); + + algoSwitchButtonOn3Ex3.reset (new ImageButton ("Algorithm Switch On3 FM")); + addAndMakeVisible (algoSwitchButtonOn3Ex3.get()); + algoSwitchButtonOn3Ex3->setButtonText (TRANS("new button")); + algoSwitchButtonOn3Ex3->addListener (this); + + algoSwitchButtonOn3Ex3->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOn3Ex3->setBounds (1125, 109, 64, 24); + + label24.reset (new Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label24.get()); + label24->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label24->setJustificationType (Justification::centredLeft); + label24->setEditable (false, false, false); + label24->setColour (Label::textColourId, Colours::black); + label24->setColour (TextEditor::textColourId, Colours::black); + label24->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label24->setBounds (1143, 109, 32, 24); + + TwoOpFMButton2.reset (new ImageButton ("Two OP FM Button")); + addAndMakeVisible (TwoOpFMButton2.get()); + TwoOpFMButton2->setButtonText (TRANS("new button")); + TwoOpFMButton2->addListener (this); + + TwoOpFMButton2->setImages (false, true, true, + ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000)); + TwoOpFMButton2->setBounds (1196, 94, 80, 26); + + label25.reset (new Label ("new label", + TRANS("M"))); + addAndMakeVisible (label25.get()); + label25->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label25->setJustificationType (Justification::centred); + label25->setEditable (false, false, false); + label25->setColour (TextEditor::textColourId, Colours::black); + label25->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label25->setBounds (1206, 98, 24, 24); + + label26.reset (new Label ("new label", + TRANS("C"))); + addAndMakeVisible (label26.get()); + label26->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label26->setJustificationType (Justification::centred); + label26->setEditable (false, false, false); + label26->setColour (TextEditor::textColourId, Colours::black); + label26->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label26->setBounds (1235, 98, 24, 24); + + groupComponent7.reset (new GroupComponent ("new group", + String())); + addAndMakeVisible (groupComponent7.get()); + groupComponent7->setColour (GroupComponent::outlineColourId, Colours::green); + + groupComponent7->setBounds (1112, 56, 168, 95); + + algoSwitchButtonOffEx5.reset (new ImageButton ("Algorithm Switch Off AM")); + addAndMakeVisible (algoSwitchButtonOffEx5.get()); + algoSwitchButtonOffEx5->setButtonText (TRANS("new button")); + algoSwitchButtonOffEx5->addListener (this); + + algoSwitchButtonOffEx5->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOffEx5->setBounds (1037, 250, 64, 24); + + label27.reset (new Label ("new label", + TRANS("AM"))); + addAndMakeVisible (label27.get()); + label27->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label27->setJustificationType (Justification::centredLeft); + label27->setEditable (false, false, false); + label27->setColour (Label::textColourId, Colours::green); + label27->setColour (TextEditor::textColourId, Colours::black); + label27->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label27->setBounds (1055, 250, 32, 24); + + algoSwitchButtonOn3Ex4.reset (new ImageButton ("Algorithm Switch On3 FM")); + addAndMakeVisible (algoSwitchButtonOn3Ex4.get()); + algoSwitchButtonOn3Ex4->setButtonText (TRANS("new button")); + algoSwitchButtonOn3Ex4->addListener (this); + + algoSwitchButtonOn3Ex4->setImages (false, true, true, + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), + ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000)); + algoSwitchButtonOn3Ex4->setBounds (1103, 250, 64, 24); + + label28.reset (new Label ("new label", + TRANS("FM"))); + addAndMakeVisible (label28.get()); + label28->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label28->setJustificationType (Justification::centredLeft); + label28->setEditable (false, false, false); + label28->setColour (Label::textColourId, Colours::black); + label28->setColour (TextEditor::textColourId, Colours::black); + label28->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label28->setBounds (1121, 250, 32, 24); + + groupComponent8.reset (new GroupComponent ("new group", + String())); + addAndMakeVisible (groupComponent8.get()); + groupComponent8->setColour (GroupComponent::outlineColourId, Colours::green); + + groupComponent8->setBounds (1008, 208, 168, 95); + + frequencyLabel9.reset (new Label ("frequency label", + TRANS("Algorithm"))); + addAndMakeVisible (frequencyLabel9.get()); + frequencyLabel9->setTooltip (TRANS("In additive mode, carrier and modulator output are simply summed rather than modulated")); + frequencyLabel9->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel9->setJustificationType (Justification::centredLeft); + frequencyLabel9->setEditable (false, false, false); + frequencyLabel9->setColour (Label::textColourId, Colour (0xff007f00)); + frequencyLabel9->setColour (TextEditor::textColourId, Colours::black); + frequencyLabel9->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + frequencyLabel9->setBounds (1067, 216, 72, 24); + + label29.reset (new Label ("new label", + TRANS("Example Algo Section w/o Diagram"))); + addAndMakeVisible (label29.get()); + label29->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label29->setJustificationType (Justification::centred); + label29->setEditable (false, false, false); + label29->setColour (Label::textColourId, Colours::green); + label29->setColour (TextEditor::textColourId, Colours::black); + label29->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label29->setBounds (944, 304, 328, 40); + + label30.reset (new Label ("new label", + TRANS("Off On (Bright) On (Dark) On (Solid)"))); + addAndMakeVisible (label30.get()); + label30->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + label30->setJustificationType (Justification::centred); + label30->setEditable (false, false, false); + label30->setColour (Label::textColourId, Colours::green); + label30->setColour (TextEditor::textColourId, Colours::black); + label30->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + label30->setBounds (961, 768, 319, 24); + + frequencyLabel10.reset (new Label ("frequency label", + TRANS("Keyscale Attenuation"))); + addAndMakeVisible (frequencyLabel10.get()); + frequencyLabel10->setTooltip (TRANS("Attenuate amplitude with note frequency in dB per octave")); + frequencyLabel10->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel10->setJustificationType (Justification::centred); + frequencyLabel10->setEditable (false, false, false); + frequencyLabel10->setColour (Label::textColourId, Colour (0xff007f00)); + frequencyLabel10->setColour (TextEditor::textColourId, Colours::black); + frequencyLabel10->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + frequencyLabel10->setBounds (224, 376, 88, 48); + + attenuationLabel5.reset (new Label ("attenuation label", + TRANS("Velocity Sensitivity"))); + addAndMakeVisible (attenuationLabel5.get()); + attenuationLabel5->setTooltip (TRANS("Set or disable velocity senstivity")); + attenuationLabel5->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel5->setJustificationType (Justification::centred); + attenuationLabel5->setEditable (false, false, false); + attenuationLabel5->setColour (Label::textColourId, Colour (0xff007f00)); + attenuationLabel5->setColour (TextEditor::textColourId, Colours::black); + attenuationLabel5->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + attenuationLabel5->setBounds (328, 376, 80, 48); + + fmButton.reset (new ImageButton ("fm button")); + addAndMakeVisible (fmButton.get()); + fmButton->setTooltip (TRANS("FM: carrier frequency is modulated by the modulator")); + fmButton->setButtonText (TRANS("FM")); + fmButton->setRadioGroupId (3); + fmButton->addListener (this); + + fmButton->setImages (false, true, true, + ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + fmButton->setBounds (298, 472, 72, 56); + + additiveButton.reset (new ImageButton ("Additive mode button")); + addAndMakeVisible (additiveButton.get()); + additiveButton->setTooltip (TRANS("Additive: output the sum of the modulator and carrier")); + additiveButton->setButtonText (TRANS("Additive Mode")); + additiveButton->setRadioGroupId (3); + additiveButton->addListener (this); + + additiveButton->setImages (false, true, true, + ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + additiveButton->setBounds (400, 472, 56, 56); + + bassDrumButton.reset (new ImageButton ("bass drum button")); + addAndMakeVisible (bassDrumButton.get()); + bassDrumButton->setTooltip (TRANS("Bass drum")); + bassDrumButton->setButtonText (TRANS("bass drum")); + bassDrumButton->setRadioGroupId (4); + bassDrumButton->addListener (this); + + bassDrumButton->setImages (false, true, true, + ImageCache::getFromMemory (bassdrum_png, bassdrum_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + bassDrumButton->setBounds (576, 464, 30, 30); + + snareDrumButton.reset (new ImageButton ("snare drum button")); + addAndMakeVisible (snareDrumButton.get()); + snareDrumButton->setTooltip (TRANS("Snare")); + snareDrumButton->setButtonText (TRANS("snare")); + snareDrumButton->setRadioGroupId (4); + snareDrumButton->addListener (this); + + snareDrumButton->setImages (false, true, true, + ImageCache::getFromMemory (snare_png, snare_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + snareDrumButton->setBounds (632, 464, 30, 30); + + disablePercussionButton.reset (new ImageButton ("percussion disabled button")); + addAndMakeVisible (disablePercussionButton.get()); + disablePercussionButton->setTooltip (TRANS("Disable percussion")); + disablePercussionButton->setButtonText (TRANS("disabled")); + disablePercussionButton->setRadioGroupId (4); + disablePercussionButton->addListener (this); + + disablePercussionButton->setImages (false, true, true, + ImageCache::getFromMemory (disabled_png, disabled_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + disablePercussionButton->setBounds (520, 464, 30, 30); + + tomTomButton.reset (new ImageButton ("tom tom button")); + addAndMakeVisible (tomTomButton.get()); + tomTomButton->setTooltip (TRANS("Tom-tom")); + tomTomButton->setButtonText (TRANS("tom tom")); + tomTomButton->setRadioGroupId (4); + tomTomButton->addListener (this); + + tomTomButton->setImages (false, true, true, + ImageCache::getFromMemory (tom_png, tom_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + tomTomButton->setBounds (520, 512, 30, 30); + + cymbalButton.reset (new ImageButton ("cymbalButton")); + addAndMakeVisible (cymbalButton.get()); + cymbalButton->setTooltip (TRANS("Cymbal")); + cymbalButton->setButtonText (TRANS("snare")); + cymbalButton->setRadioGroupId (4); + cymbalButton->addListener (this); + + cymbalButton->setImages (false, true, true, + ImageCache::getFromMemory (cymbal_png, cymbal_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + cymbalButton->setBounds (576, 512, 30, 30); + + hiHatButton.reset (new ImageButton ("hi hat button")); + addAndMakeVisible (hiHatButton.get()); + hiHatButton->setTooltip (TRANS("Hi-hat")); + hiHatButton->setButtonText (TRANS("hi-hat")); + hiHatButton->setRadioGroupId (4); + hiHatButton->addListener (this); + + hiHatButton->setImages (false, true, true, + ImageCache::getFromMemory (hihat_png, hihat_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + hiHatButton->setBounds (632, 512, 30, 30); + + dbLabel7.reset (new Label ("db label", + TRANS("FM"))); + addAndMakeVisible (dbLabel7.get()); + dbLabel7->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dbLabel7->setJustificationType (Justification::centredLeft); + dbLabel7->setEditable (false, false, false); + dbLabel7->setColour (Label::textColourId, Colour (0xff007f00)); + dbLabel7->setColour (Label::outlineColourId, Colour (0x00000000)); + dbLabel7->setColour (TextEditor::textColourId, Colours::black); + dbLabel7->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dbLabel7->setBounds (320, 520, 32, 40); + + dbLabel8.reset (new Label ("db label", + TRANS("Additive"))); + addAndMakeVisible (dbLabel8.get()); + dbLabel8->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); + dbLabel8->setJustificationType (Justification::centred); + dbLabel8->setEditable (false, false, false); + dbLabel8->setColour (Label::textColourId, Colour (0xff007f00)); + dbLabel8->setColour (Label::outlineColourId, Colour (0x00000000)); + dbLabel8->setColour (TextEditor::textColourId, Colours::black); + dbLabel8->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + + dbLabel8->setBounds (392, 520, 72, 40); + + previousButton.reset (new TextButton ("previous button")); + addAndMakeVisible (previousButton.get()); + previousButton->setButtonText (TRANS("-")); + previousButton->setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); + previousButton->addListener (this); + previousButton->setColour (TextButton::buttonColourId, Colour (0xff007f00)); + previousButton->setColour (TextButton::buttonOnColourId, Colours::lime); + + previousButton->setBounds (728, 512, 40, 24); + + nextButton.reset (new TextButton ("next button")); + addAndMakeVisible (nextButton.get()); + nextButton->setButtonText (TRANS("+")); + nextButton->setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); + nextButton->addListener (this); + nextButton->setColour (TextButton::buttonColourId, Colour (0xff007f00)); + nextButton->setColour (TextButton::buttonOnColourId, Colours::lime); + + nextButton->setBounds (784, 512, 40, 24); + + drawable1 = Drawable::createFromImageData (gui_svg, gui_svgSize); + + //[UserPreSize] + oplLookAndFeel.reset(new OPLLookAndFeel()); + LookAndFeel::setDefaultLookAndFeel(oplLookAndFeel.get()); + + frequencyComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + frequencyComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + frequencyComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + frequencyComboBox->setColour (ComboBox::buttonColourId, Colours::black); + frequencyComboBox->setColour (ComboBox::backgroundColourId, Colours::black); + + frequencyComboBox->addItem ("x1/2", 16); // can't use 0 :( + frequencyComboBox->addItem ("x1", 1); + frequencyComboBox->addItem ("x2", 2); + frequencyComboBox->addItem ("x3", 3); + frequencyComboBox->addItem ("x4", 4); + frequencyComboBox->addItem ("x5", 5); + frequencyComboBox->addItem ("x6", 6); + frequencyComboBox->addItem ("x7", 7); + frequencyComboBox->addItem ("x8", 8); + frequencyComboBox->addItem ("x9", 9); + frequencyComboBox->addItem ("x10", 10); + frequencyComboBox->addItem ("x12", 12); + frequencyComboBox->addItem ("x15", 15); + + frequencyComboBox2->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + frequencyComboBox2->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + frequencyComboBox2->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + frequencyComboBox2->setColour (ComboBox::buttonColourId, Colours::black); + frequencyComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); + frequencyComboBox2->addItem ("x1/2", 16); // can't use 0 :( + frequencyComboBox2->addItem ("x1", 1); + frequencyComboBox2->addItem ("x2", 2); + frequencyComboBox2->addItem ("x3", 3); + frequencyComboBox2->addItem ("x4", 4); + frequencyComboBox2->addItem ("x5", 5); + frequencyComboBox2->addItem ("x6", 6); + frequencyComboBox2->addItem ("x7", 7); + frequencyComboBox2->addItem ("x8", 8); + frequencyComboBox2->addItem ("x9", 9); + frequencyComboBox2->addItem ("x10", 10); + frequencyComboBox2->addItem ("x12", 12); + frequencyComboBox2->addItem ("x15", 15); + + velocityComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + velocityComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + velocityComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + velocityComboBox->setColour (ComboBox::buttonColourId, Colours::black); + velocityComboBox->setColour (ComboBox::backgroundColourId, Colours::black); + velocityComboBox2->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + velocityComboBox2->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + velocityComboBox2->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + velocityComboBox2->setColour (ComboBox::buttonColourId, Colours::black); + velocityComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); + + keyscaleAttenuationComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox->setColour (ComboBox::buttonColourId, Colours::black); + keyscaleAttenuationComboBox->setColour (ComboBox::backgroundColourId, Colours::black); + keyscaleAttenuationComboBox2->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox2->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox2->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); + keyscaleAttenuationComboBox2->setColour (ComboBox::buttonColourId, Colours::black); + keyscaleAttenuationComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); + + sineImageButton->setClickingTogglesState(true); + sineImageButton->setRepaintsOnMouseActivity(false); + abssineImageButton->setClickingTogglesState(true); + abssineImageButton->setRepaintsOnMouseActivity(false); + halfsineImageButton->setClickingTogglesState(true); + halfsineImageButton->setRepaintsOnMouseActivity(false); + quartersineImageButton->setClickingTogglesState(true); + quartersineImageButton->setRepaintsOnMouseActivity(false); + alternatingsineImageButton->setClickingTogglesState(true); + alternatingsineImageButton->setRepaintsOnMouseActivity(false); + camelsineImageButton->setClickingTogglesState(true); + camelsineImageButton->setRepaintsOnMouseActivity(false); + squareImageButton->setClickingTogglesState(true); + squareImageButton->setRepaintsOnMouseActivity(false); + logsawImageButton->setClickingTogglesState(true); + logsawImageButton->setRepaintsOnMouseActivity(false); + + sineImageButton2->setClickingTogglesState(true); + sineImageButton2->setRepaintsOnMouseActivity(false); + abssineImageButton2->setClickingTogglesState(true); + abssineImageButton2->setRepaintsOnMouseActivity(false); + halfsineImageButton2->setClickingTogglesState(true); + halfsineImageButton2->setRepaintsOnMouseActivity(false); + quartersineImageButton2->setClickingTogglesState(true); + quartersineImageButton2->setRepaintsOnMouseActivity(false); + alternatingsineImageButton2->setClickingTogglesState(true); + alternatingsineImageButton2->setRepaintsOnMouseActivity(false); + camelsineImageButton2->setClickingTogglesState(true); + camelsineImageButton2->setRepaintsOnMouseActivity(false); + squareImageButton2->setClickingTogglesState(true); + squareImageButton2->setRepaintsOnMouseActivity(false); + logsawImageButton2->setClickingTogglesState(true); + logsawImageButton2->setRepaintsOnMouseActivity(false); + + fmButton->setClickingTogglesState(true); + fmButton->setRepaintsOnMouseActivity(false); + additiveButton->setClickingTogglesState(true); + additiveButton->setRepaintsOnMouseActivity(false); + + disablePercussionButton->setClickingTogglesState(true); + disablePercussionButton->setRepaintsOnMouseActivity(false); + bassDrumButton->setClickingTogglesState(true); + bassDrumButton->setRepaintsOnMouseActivity(false); + snareDrumButton->setClickingTogglesState(true); + snareDrumButton->setRepaintsOnMouseActivity(false); + + tomTomButton->setClickingTogglesState(true); + tomTomButton->setRepaintsOnMouseActivity(false); + cymbalButton->setClickingTogglesState(true); + cymbalButton->setRepaintsOnMouseActivity(false); + hiHatButton->setClickingTogglesState(true); + hiHatButton->setRepaintsOnMouseActivity(false); + + recordButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + tremoloButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + vibratoButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + keyscaleEnvButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + sustainButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + tremoloButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + vibratoButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + keyscaleEnvButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + sustainButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); + + Font fw(Font::getDefaultMonospacedFontName(), 14, Font::bold); + channelButtonLookAndFeel.reset(new ChannelButtonLookAndFeel()); + String context = String("Disable channel "); + for (unsigned int i = 0; i < channels.size(); ++i) + { + TextButton *channel = new TextButton(TRANS("-"), context + String(i + 1)); + channel->setLookAndFeel(channelButtonLookAndFeel.get()); + channel->setColour(TextButton::ColourIds::buttonColourId, Colours::black); + channel->setColour(TextButton::ColourIds::buttonOnColourId, Colours::black); + channel->setColour(TextButton::ColourIds::textColourOnId, OPLLookAndFeel::DOS_GREEN); + channel->setColour(TextButton::ColourIds::textColourOffId, OPLLookAndFeel::DOS_GREEN); + channel->addListener(this); + addAndMakeVisible(channel); + channels[i] = channel; + } + + versionLabel->setText(String(ProjectInfo::versionString).dropLastCharacters(2) +#if DEMOVERSION + += " Demo" +#endif + , NotificationType::dontSendNotification); + + // Change LookandFeelFree combobox + oplComboBoxLookAndFeel.reset(new OPLComboBoxLookAndFeelMethods()); + + for (auto comB : {frequencyComboBox.get(), frequencyComboBox2.get(), velocityComboBox.get(), velocityComboBox2.get(), keyscaleAttenuationComboBox2.get(), keyscaleAttenuationComboBox.get()}){ + comB->setLookAndFeel(oplComboBoxLookAndFeel.get()); + } + //[/UserPreSize] + + setSize (860, 580); + + + //[Constructor] You can add your own custom stuff here.. + processor = ownerFilter; + startTimer(1000/30); + // Update GUI Only + if (processor->lastLoadFile.length() > 0) { + File file(processor->lastLoadFile); + loadButton->setButtonText(file.getFileNameWithoutExtension()); + } + //[/Constructor] +} + +PluginGui::~PluginGui() +{ + //[Destructor_pre]. You can add your own custom destruction code here.. + //[/Destructor_pre] + + groupComponent2 = nullptr; + groupComponent4 = nullptr; + groupComponent11 = nullptr; + groupComponent10 = nullptr; + groupComponent9 = nullptr; + groupComponent = nullptr; + frequencyComboBox = nullptr; + frequencyLabel = nullptr; + aSlider = nullptr; + aLabel = nullptr; + dSlider = nullptr; + dLabel = nullptr; + sSlider = nullptr; + dLabel2 = nullptr; + rSlider = nullptr; + rLabel = nullptr; + attenuationSlider = nullptr; + attenuationLabel = nullptr; + dbLabel = nullptr; + sineImageButton = nullptr; + halfsineImageButton = nullptr; + abssineImageButton = nullptr; + quartersineImageButton = nullptr; + waveLabel = nullptr; + tremoloButton = nullptr; + vibratoButton = nullptr; + sustainButton = nullptr; + keyscaleEnvButton = nullptr; + dbLabel2 = nullptr; + frequencyComboBox2 = nullptr; + frequencyLabel3 = nullptr; + aSlider2 = nullptr; + aLabel2 = nullptr; + dSlider2 = nullptr; + dLabel3 = nullptr; + sSlider2 = nullptr; + dLabel4 = nullptr; + rSlider2 = nullptr; + rLabel2 = nullptr; + attenuationSlider2 = nullptr; + attenuationLabel2 = nullptr; + dbLabel3 = nullptr; + sineImageButton2 = nullptr; + halfsineImageButton2 = nullptr; + abssineImageButton2 = nullptr; + quartersineImageButton2 = nullptr; + waveLabel2 = nullptr; + tremoloButton2 = nullptr; + vibratoButton2 = nullptr; + sustainButton2 = nullptr; + keyscaleEnvButton2 = nullptr; + frequencyLabel4 = nullptr; + groupComponent3 = nullptr; + tremoloSlider = nullptr; + frequencyLabel5 = nullptr; + dbLabel5 = nullptr; + vibratoSlider = nullptr; + frequencyLabel6 = nullptr; + dbLabel6 = nullptr; + feedbackSlider = nullptr; + frequencyLabel7 = nullptr; + velocityComboBox = nullptr; + velocityComboBox2 = nullptr; + attenuationLabel4 = nullptr; + alternatingsineImageButton = nullptr; + camelsineImageButton = nullptr; + squareImageButton = nullptr; + logsawImageButton = nullptr; + alternatingsineImageButton2 = nullptr; + camelsineImageButton2 = nullptr; + squareImageButton2 = nullptr; + logsawImageButton2 = nullptr; + dbLabel4 = nullptr; + keyscaleAttenuationComboBox2 = nullptr; + keyscaleAttenuationComboBox = nullptr; + groupComponent5 = nullptr; + emulatorSlider = nullptr; + emulatorLabel = nullptr; + emulatorLabel2 = nullptr; + recordButton = nullptr; + loadButton = nullptr; + versionLabel = nullptr; + ToggleButtonOffExample = nullptr; + ToggleButtonOnExample = nullptr; + label = nullptr; + label2 = nullptr; + LineBorderButton1C = nullptr; + LineBorderButton1A = nullptr; + LineBorderButton1B = nullptr; + label3 = nullptr; + LineBorderButton1C2 = nullptr; + LineBorderButton1A2 = nullptr; + LineBorderButton1B2 = nullptr; + LineBorderButton1C3 = nullptr; + LineBorderButton1B3 = nullptr; + algoSwitchButtonOffEx1 = nullptr; + algoSwitchButtonOffEx2 = nullptr; + algoSwitchButtonOnEx1 = nullptr; + algoSwitchButtonOnEx2 = nullptr; + label4 = nullptr; + label5 = nullptr; + label6 = nullptr; + label7 = nullptr; + label8 = nullptr; + algoSwitchButtonOn2Ex1 = nullptr; + algoSwitchButtonOn2Ex2 = nullptr; + label9 = nullptr; + label10 = nullptr; + algoSwitchButtonOn3Ex1 = nullptr; + algoSwitchButtonOn3Ex2 = nullptr; + label11 = nullptr; + label12 = nullptr; + TwoOpAMButton = nullptr; + TwoOpFMButton = nullptr; + label13 = nullptr; + label14 = nullptr; + label15 = nullptr; + label16 = nullptr; + label17 = nullptr; + groupComponent6 = nullptr; + algoSwitchButtonOnEx3 = nullptr; + label18 = nullptr; + algoSwitchButtonOffEx3 = nullptr; + label19 = nullptr; + TwoOpAMButton2 = nullptr; + label20 = nullptr; + label21 = nullptr; + label22 = nullptr; + algoSwitchButtonOffEx4 = nullptr; + label23 = nullptr; + algoSwitchButtonOn3Ex3 = nullptr; + label24 = nullptr; + TwoOpFMButton2 = nullptr; + label25 = nullptr; + label26 = nullptr; + groupComponent7 = nullptr; + algoSwitchButtonOffEx5 = nullptr; + label27 = nullptr; + algoSwitchButtonOn3Ex4 = nullptr; + label28 = nullptr; + groupComponent8 = nullptr; + frequencyLabel9 = nullptr; + label29 = nullptr; + label30 = nullptr; + frequencyLabel10 = nullptr; + attenuationLabel5 = nullptr; + fmButton = nullptr; + additiveButton = nullptr; + bassDrumButton = nullptr; + snareDrumButton = nullptr; + disablePercussionButton = nullptr; + tomTomButton = nullptr; + cymbalButton = nullptr; + hiHatButton = nullptr; + dbLabel7 = nullptr; + dbLabel8 = nullptr; + previousButton = nullptr; + nextButton = nullptr; + drawable1 = nullptr; + + + //[Destructor]. You can add your own custom destruction code here.. + + oplLookAndFeel = nullptr; + for (unsigned int i = 0; i < channels.size(); ++i) { + channels[i].reset(); + } + + channelButtonLookAndFeel = nullptr; + + //[/Destructor] +} + +//============================================================================== +void PluginGui::paint (Graphics& g) +{ + //[UserPrePaint] Add your own custom painting code here.. + //[/UserPrePaint] + + g.fillAll (Colours::black); + + { + int x = 0, y = 0, width = proportionOfWidth (1.0000f), height = proportionOfHeight (1.0000f); + //[UserPaintCustomArguments] Customize the painting arguments here.. + //[/UserPaintCustomArguments] + g.setColour (Colours::black); + jassert (drawable1 != nullptr); + if (drawable1 != nullptr) + drawable1->drawWithin (g, Rectangle (x, y, width, height).toFloat(), + RectanglePlacement::stretchToFit, 1.000f); + } + + //[UserPaint] Add your own custom painting code here.. + //[/UserPaint] +} + +void PluginGui::resized() +{ + //[UserPreResize] Add your own custom resize code here.. + //[/UserPreResize] + + //[UserResized] Add your own custom resize handling here.. + for (unsigned int i = 0; i < channels.size(); ++i) + channels[i]->setBounds(64+88*i, 30, 28, 28); + //[/UserResized] +} + +void PluginGui::comboBoxChanged (ComboBox* comboBoxThatHasChanged) +{ + //[UsercomboBoxChanged_Pre] + + //[/UsercomboBoxChanged_Pre] + + if (comboBoxThatHasChanged == frequencyComboBox.get()) + { + //[UserComboBoxCode_frequencyComboBox] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId(); + if (id > 15) id = 0; + processor->beginChangeGesture("Modulator Frequency Multiplier"); + processor->setEnumParameter("Modulator Frequency Multiplier", id); + processor->endChangeGesture("Modulator Frequency Multiplier"); + //[/UserComboBoxCode_frequencyComboBox] + } + else if (comboBoxThatHasChanged == frequencyComboBox2.get()) + { + //[UserComboBoxCode_frequencyComboBox2] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId(); + if (id > 15) id = 0; + processor->beginChangeGesture("Carrier Frequency Multiplier"); + processor->setEnumParameter("Carrier Frequency Multiplier", id); + processor->endChangeGesture("Carrier Frequency Multiplier"); + //[/UserComboBoxCode_frequencyComboBox2] + } + else if (comboBoxThatHasChanged == velocityComboBox.get()) + { + //[UserComboBoxCode_velocityComboBox] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId() - 1; + processor->beginChangeGesture("Modulator Velocity Sensitivity"); + processor->setEnumParameter("Modulator Velocity Sensitivity", id); + processor->endChangeGesture("Modulator Velocity Sensitivity"); + //[/UserComboBoxCode_velocityComboBox] + } + else if (comboBoxThatHasChanged == velocityComboBox2.get()) + { + //[UserComboBoxCode_velocityComboBox2] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId() - 1; + processor->beginChangeGesture("Carrier Velocity Sensitivity"); + processor->setEnumParameter("Carrier Velocity Sensitivity", id); + processor->endChangeGesture("Carrier Velocity Sensitivity"); + //[/UserComboBoxCode_velocityComboBox2] + } + else if (comboBoxThatHasChanged == keyscaleAttenuationComboBox2.get()) + { + //[UserComboBoxCode_keyscaleAttenuationComboBox2] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId() - 1; + processor->beginChangeGesture("Carrier Keyscale Level"); + processor->setEnumParameter("Carrier Keyscale Level", id); + processor->endChangeGesture("Carrier Keyscale Level"); + //[/UserComboBoxCode_keyscaleAttenuationComboBox2] + } + else if (comboBoxThatHasChanged == keyscaleAttenuationComboBox.get()) + { + //[UserComboBoxCode_keyscaleAttenuationComboBox] -- add your combo box handling code here.. + int id = comboBoxThatHasChanged->getSelectedId() - 1; + processor->beginChangeGesture("Modulator Keyscale Level"); + processor->setEnumParameter("Modulator Keyscale Level", id); + processor->endChangeGesture("Modulator Keyscale Level"); + //[/UserComboBoxCode_keyscaleAttenuationComboBox] + } + + //[UsercomboBoxChanged_Post] + //[/UsercomboBoxChanged_Post] +} + +void PluginGui::sliderValueChanged (Slider* sliderThatWasMoved) +{ + //[UsersliderValueChanged_Pre] + //[/UsersliderValueChanged_Pre] + + if (sliderThatWasMoved == aSlider.get()) + { + //[UserSliderCode_aSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Attack", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_aSlider] + } + else if (sliderThatWasMoved == dSlider.get()) + { + //[UserSliderCode_dSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Decay", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_dSlider] + } + else if (sliderThatWasMoved == sSlider.get()) + { + //[UserSliderCode_sSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Sustain Level", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_sSlider] + } + else if (sliderThatWasMoved == rSlider.get()) + { + //[UserSliderCode_rSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Release", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_rSlider] + } + else if (sliderThatWasMoved == attenuationSlider.get()) + { + //[UserSliderCode_attenuationSlider] -- add your slider handling code here.. + processor->setEnumParameter("Modulator Attenuation", -(int)(sliderThatWasMoved->getValue()/0.75)); + //[/UserSliderCode_attenuationSlider] + } + else if (sliderThatWasMoved == aSlider2.get()) + { + //[UserSliderCode_aSlider2] -- add your slider handling code here.. + processor->setIntParameter("Carrier Attack", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_aSlider2] + } + else if (sliderThatWasMoved == dSlider2.get()) + { + //[UserSliderCode_dSlider2] -- add your slider handling code here.. + processor->setIntParameter("Carrier Decay", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_dSlider2] + } + else if (sliderThatWasMoved == sSlider2.get()) + { + //[UserSliderCode_sSlider2] -- add your slider handling code here.. + processor->setIntParameter("Carrier Sustain Level", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_sSlider2] + } + else if (sliderThatWasMoved == rSlider2.get()) + { + //[UserSliderCode_rSlider2] -- add your slider handling code here.. + processor->setIntParameter("Carrier Release", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_rSlider2] + } + else if (sliderThatWasMoved == attenuationSlider2.get()) + { + //[UserSliderCode_attenuationSlider2] -- add your slider handling code here.. + processor->setEnumParameter("Carrier Attenuation", -(int)(sliderThatWasMoved->getValue()/0.75)); + //[/UserSliderCode_attenuationSlider2] + } + else if (sliderThatWasMoved == tremoloSlider.get()) + { + //[UserSliderCode_tremoloSlider] -- add your slider handling code here.. + processor->setEnumParameter("Tremolo Depth", sliderThatWasMoved->getValue() < 2.0 ? 0 : 1); + //[/UserSliderCode_tremoloSlider] + } + else if (sliderThatWasMoved == vibratoSlider.get()) + { + //[UserSliderCode_vibratoSlider] -- add your slider handling code here.. + processor->setEnumParameter("Vibrato Depth", sliderThatWasMoved->getValue() < 8.0 ? 0 : 1); + //[/UserSliderCode_vibratoSlider] + } + else if (sliderThatWasMoved == feedbackSlider.get()) + { + //[UserSliderCode_feedbackSlider] -- add your slider handling code here.. + processor->setIntParameter("Modulator Feedback", (int)sliderThatWasMoved->getValue()); + //[/UserSliderCode_feedbackSlider] + } + else if (sliderThatWasMoved == emulatorSlider.get()) + { + //[UserSliderCode_emulatorSlider] -- add your slider handling code here.. + //[/UserSliderCode_emulatorSlider] + } + + //[UsersliderValueChanged_Post] + //[/UsersliderValueChanged_Post] +} + +void PluginGui::buttonClicked (Button* buttonThatWasClicked) +{ + //[UserbuttonClicked_Pre] + // TODO: + // - fix button tooltip text + // - automatically select channel(s) by default? + // - record output to file + for (int i = 1; i <= Hiopl::CHANNELS; ++i) { + Button* channelButton = channels[i - 1]; + if (buttonThatWasClicked == channelButton) { + if (processor->nChannelsEnabled() > 1 || !processor->isChannelEnabled(i)) { + processor->toggleChannel(i); + } + const bool channelEnabled = processor->isChannelEnabled(i); + Colour textColour = channelEnabled ? OPLLookAndFeel::DOS_GREEN : OPLLookAndFeel::DOS_GREEN_DARK; + channelButton->setColour(TextButton::ColourIds::textColourOnId, textColour); + channelButton->setColour(TextButton::ColourIds::textColourOffId, textColour); + return; + } + } + //[/UserbuttonClicked_Pre] + + if (buttonThatWasClicked == sineImageButton.get()) + { + //[UserButtonCode_sineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 0); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_sineImageButton] + } + else if (buttonThatWasClicked == halfsineImageButton.get()) + { + //[UserButtonCode_halfsineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 1); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_halfsineImageButton] + } + else if (buttonThatWasClicked == abssineImageButton.get()) + { + //[UserButtonCode_abssineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 2); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_abssineImageButton] + } + else if (buttonThatWasClicked == quartersineImageButton.get()) + { + //[UserButtonCode_quartersineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 3); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_quartersineImageButton] + } + else if (buttonThatWasClicked == tremoloButton.get()) + { + //[UserButtonCode_tremoloButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Tremolo"); + processor->setEnumParameter("Modulator Tremolo", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Modulator Tremolo"); + updateFromHost=true; + //[/UserButtonCode_tremoloButton] + } + else if (buttonThatWasClicked == vibratoButton.get()) + { + //[UserButtonCode_vibratoButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Vibrato"); + processor->setEnumParameter("Modulator Vibrato", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Modulator Vibrato"); + updateFromHost=true; + //[/UserButtonCode_vibratoButton] + } + else if (buttonThatWasClicked == sustainButton.get()) + { + //[UserButtonCode_sustainButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Sustain"); + processor->setEnumParameter("Modulator Sustain", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Modulator Sustain"); + updateFromHost=true; + //[/UserButtonCode_sustainButton] + } + else if (buttonThatWasClicked == keyscaleEnvButton.get()) + { + //[UserButtonCode_keyscaleEnvButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Keyscale Rate"); + processor->setEnumParameter("Modulator Keyscale Rate", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Modulator Keyscale Rate"); + updateFromHost=true; + //[/UserButtonCode_keyscaleEnvButton] + } + else if (buttonThatWasClicked == sineImageButton2.get()) + { + //[UserButtonCode_sineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 0); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_sineImageButton2] + } + else if (buttonThatWasClicked == halfsineImageButton2.get()) + { + //[UserButtonCode_halfsineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 1); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_halfsineImageButton2] + } + else if (buttonThatWasClicked == abssineImageButton2.get()) + { + //[UserButtonCode_abssineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 2); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_abssineImageButton2] + } + else if (buttonThatWasClicked == quartersineImageButton2.get()) + { + //[UserButtonCode_quartersineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 3); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_quartersineImageButton2] + } + else if (buttonThatWasClicked == tremoloButton2.get()) + { + //[UserButtonCode_tremoloButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Tremolo"); + processor->setEnumParameter("Carrier Tremolo", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Carrier Tremolo"); + updateFromHost=true; + //[/UserButtonCode_tremoloButton2] + } + else if (buttonThatWasClicked == vibratoButton2.get()) + { + //[UserButtonCode_vibratoButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Vibrato"); + processor->setEnumParameter("Carrier Vibrato", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Carrier Vibrato"); + updateFromHost=true; + //[/UserButtonCode_vibratoButton2] + } + else if (buttonThatWasClicked == sustainButton2.get()) + { + //[UserButtonCode_sustainButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Sustain"); + processor->setEnumParameter("Carrier Sustain", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Carrier Sustain"); + updateFromHost=true; + //[/UserButtonCode_sustainButton2] + } + else if (buttonThatWasClicked == keyscaleEnvButton2.get()) + { + //[UserButtonCode_keyscaleEnvButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Keyscale Rate"); + processor->setEnumParameter("Carrier Keyscale Rate", buttonThatWasClicked->getToggleState() ? 1 : 0); + processor->endChangeGesture("Carrier Keyscale Rate"); + updateFromHost=true; + //[/UserButtonCode_keyscaleEnvButton2] + } + else if (buttonThatWasClicked == alternatingsineImageButton.get()) + { + //[UserButtonCode_alternatingsineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 4); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_alternatingsineImageButton] + } + else if (buttonThatWasClicked == camelsineImageButton.get()) + { + //[UserButtonCode_camelsineImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 5); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_camelsineImageButton] + } + else if (buttonThatWasClicked == squareImageButton.get()) + { + //[UserButtonCode_squareImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 6); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_squareImageButton] + } + else if (buttonThatWasClicked == logsawImageButton.get()) + { + //[UserButtonCode_logsawImageButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Modulator Wave"); + processor->setEnumParameter("Modulator Wave", 7); + processor->endChangeGesture("Modulator Wave"); + updateFromHost=true; + //[/UserButtonCode_logsawImageButton] + } + else if (buttonThatWasClicked == alternatingsineImageButton2.get()) + { + //[UserButtonCode_alternatingsineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 4); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_alternatingsineImageButton2] + } + else if (buttonThatWasClicked == camelsineImageButton2.get()) + { + //[UserButtonCode_camelsineImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 5); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_camelsineImageButton2] + } + else if (buttonThatWasClicked == squareImageButton2.get()) + { + //[UserButtonCode_squareImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 6); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_squareImageButton2] + } + else if (buttonThatWasClicked == logsawImageButton2.get()) + { + //[UserButtonCode_logsawImageButton2] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Carrier Wave"); + processor->setEnumParameter("Carrier Wave", 7); + processor->endChangeGesture("Carrier Wave"); + updateFromHost=true; + //[/UserButtonCode_logsawImageButton2] + } + else if (buttonThatWasClicked == recordButton.get()) + { + //[UserButtonCode_recordButton] -- add your button handler code here.. + //[/UserButtonCode_recordButton] + } + else if (buttonThatWasClicked == loadButton.get()) + { + //[UserButtonCode_loadButton] -- add your button handler code here.. + + if (!showLoadMenu()){ + loadBrowserFile(); + } + /*WildcardFileFilter wildcardFilter("*.sbi", String(), "SBI files"); + FileBrowserComponent browser(FileBrowserComponent::openMode + FileBrowserComponent::canSelectFiles, + instrumentLoadDirectory, + &wildcardFilter, + nullptr); + FileChooserDialogBox dialogBox("Load", + "Select SBI instrument file", + browser, + false, + Colours::darkgreen, this); + if (dialogBox.show()) + { + File selectedFile = browser.getSelectedFile(0); + instrumentLoadDirectory = browser.getRoot(); + processor->loadInstrumentFromFile(selectedFile.getFullPathName()); + }*/ + //[/UserButtonCode_loadButton] + } + else if (buttonThatWasClicked == ToggleButtonOffExample.get()) + { + //[UserButtonCode_ToggleButtonOffExample] -- add your button handler code here.. + //[/UserButtonCode_ToggleButtonOffExample] + } + else if (buttonThatWasClicked == ToggleButtonOnExample.get()) + { + //[UserButtonCode_ToggleButtonOnExample] -- add your button handler code here.. + //[/UserButtonCode_ToggleButtonOnExample] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx1.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx1] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx1] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx2.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx2] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx2] + } + else if (buttonThatWasClicked == algoSwitchButtonOnEx1.get()) + { + //[UserButtonCode_algoSwitchButtonOnEx1] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOnEx1] + } + else if (buttonThatWasClicked == algoSwitchButtonOnEx2.get()) + { + //[UserButtonCode_algoSwitchButtonOnEx2] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOnEx2] + } + else if (buttonThatWasClicked == algoSwitchButtonOn2Ex1.get()) + { + //[UserButtonCode_algoSwitchButtonOn2Ex1] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn2Ex1] + } + else if (buttonThatWasClicked == algoSwitchButtonOn2Ex2.get()) + { + //[UserButtonCode_algoSwitchButtonOn2Ex2] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn2Ex2] + } + else if (buttonThatWasClicked == algoSwitchButtonOn3Ex1.get()) + { + //[UserButtonCode_algoSwitchButtonOn3Ex1] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn3Ex1] + } + else if (buttonThatWasClicked == algoSwitchButtonOn3Ex2.get()) + { + //[UserButtonCode_algoSwitchButtonOn3Ex2] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn3Ex2] + } + else if (buttonThatWasClicked == TwoOpAMButton.get()) + { + //[UserButtonCode_TwoOpAMButton] -- add your button handler code here.. + //[/UserButtonCode_TwoOpAMButton] + } + else if (buttonThatWasClicked == TwoOpFMButton.get()) + { + //[UserButtonCode_TwoOpFMButton] -- add your button handler code here.. + //[/UserButtonCode_TwoOpFMButton] + } + else if (buttonThatWasClicked == algoSwitchButtonOnEx3.get()) + { + //[UserButtonCode_algoSwitchButtonOnEx3] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOnEx3] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx3.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx3] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx3] + } + else if (buttonThatWasClicked == TwoOpAMButton2.get()) + { + //[UserButtonCode_TwoOpAMButton2] -- add your button handler code here.. + //[/UserButtonCode_TwoOpAMButton2] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx4.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx4] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx4] + } + else if (buttonThatWasClicked == algoSwitchButtonOn3Ex3.get()) + { + //[UserButtonCode_algoSwitchButtonOn3Ex3] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn3Ex3] + } + else if (buttonThatWasClicked == TwoOpFMButton2.get()) + { + //[UserButtonCode_TwoOpFMButton2] -- add your button handler code here.. + //[/UserButtonCode_TwoOpFMButton2] + } + else if (buttonThatWasClicked == algoSwitchButtonOffEx5.get()) + { + //[UserButtonCode_algoSwitchButtonOffEx5] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOffEx5] + } + else if (buttonThatWasClicked == algoSwitchButtonOn3Ex4.get()) + { + //[UserButtonCode_algoSwitchButtonOn3Ex4] -- add your button handler code here.. + //[/UserButtonCode_algoSwitchButtonOn3Ex4] + } + else if (buttonThatWasClicked == fmButton.get()) + { + //[UserButtonCode_fmButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Algorithm"); + processor->setEnumParameter("Algorithm", 0); + processor->endChangeGesture("Algorithm"); + updateFromHost=true; + //[/UserButtonCode_fmButton] + } + else if (buttonThatWasClicked == additiveButton.get()) + { + //[UserButtonCode_additiveButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Algorithm"); + processor->setEnumParameter("Algorithm", 1); + processor->endChangeGesture("Algorithm"); + updateFromHost=true; + //[/UserButtonCode_additiveButton] + } + else if (buttonThatWasClicked == bassDrumButton.get()) + { + //[UserButtonCode_bassDrumButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 1); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_bassDrumButton] + } + else if (buttonThatWasClicked == snareDrumButton.get()) + { + //[UserButtonCode_snareDrumButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 2); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_snareDrumButton] + } + else if (buttonThatWasClicked == disablePercussionButton.get()) + { + //[UserButtonCode_disablePercussionButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 0); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_disablePercussionButton] + } + else if (buttonThatWasClicked == tomTomButton.get()) + { + //[UserButtonCode_tomTomButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 3); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_tomTomButton] + } + else if (buttonThatWasClicked == cymbalButton.get()) + { + //[UserButtonCode_cymbalButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 4); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_cymbalButton] + } + else if (buttonThatWasClicked == hiHatButton.get()) + { + //[UserButtonCode_hiHatButton] -- add your button handler code here.. + updateFromHost=false; + processor->beginChangeGesture("Percussion Mode"); + processor->setEnumParameter("Percussion Mode", 5); + processor->endChangeGesture("Percussion Mode"); + updateFromHost=true; + //[/UserButtonCode_hiHatButton] + } + else if (buttonThatWasClicked == previousButton.get()) + { + //[UserButtonCode_previousButton] -- add your button handler code here.. + loadPreNextFile(true); + //[/UserButtonCode_previousButton] + } + else if (buttonThatWasClicked == nextButton.get()) + { + //[UserButtonCode_nextButton] -- add your button handler code here.. + loadPreNextFile(false); + //[/UserButtonCode_nextButton] + } + + //[UserbuttonClicked_Post] + //[/UserbuttonClicked_Post] +} + + + +//[MiscUserCode] You can add your own definitions of your custom methods or any other code here... + void PluginGui::sliderDragStarted (Slider* sliderThatWasMoved) { + //[UsersliderValueChanged_Pre] + DBG("Slider -> Start"); + updateFromHost=false; + //[/UsersliderValueChanged_Pre] + + if (sliderThatWasMoved == aSlider.get()) + { + //[UserSliderCode_aSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Attack"); + //[/UserSliderCode_aSlider] + } + else if (sliderThatWasMoved == dSlider.get()) + { + //[UserSliderCode_dSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Decay"); + //[/UserSliderCode_dSlider] + } + else if (sliderThatWasMoved == sSlider.get()) + { + //[UserSliderCode_sSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Sustain Level"); + //[/UserSliderCode_sSlider] + } + else if (sliderThatWasMoved == rSlider.get()) + { + //[UserSliderCode_rSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Release"); + //[/UserSliderCode_rSlider] + } + else if (sliderThatWasMoved == attenuationSlider.get()) + { + //[UserSliderCode_attenuationSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Attenuation"); + //[/UserSliderCode_attenuationSlider] + } + else if (sliderThatWasMoved == aSlider2.get()) + { + //[UserSliderCode_aSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Attack"); + //[/UserSliderCode_aSlider2] + } + else if (sliderThatWasMoved == dSlider2.get()) + { + //[UserSliderCode_dSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Decay"); + //[/UserSliderCode_dSlider2] + } + else if (sliderThatWasMoved == sSlider2.get()) + { + //[UserSliderCode_sSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Sustain Level"); + //[/UserSliderCode_sSlider2] + } + else if (sliderThatWasMoved == rSlider2.get()) + { + //[UserSliderCode_rSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Release"); + //[/UserSliderCode_rSlider2] + } + else if (sliderThatWasMoved == attenuationSlider2.get()) + { + //[UserSliderCode_attenuationSlider2] -- add your slider handling code here.. + processor->beginChangeGesture("Carrier Attenuation"); + //[/UserSliderCode_attenuationSlider2] + } + else if (sliderThatWasMoved == tremoloSlider.get()) + { + //[UserSliderCode_tremoloSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Tremolo Depth"); + //[/UserSliderCode_tremoloSlider] + } + else if (sliderThatWasMoved == vibratoSlider.get()) + { + //[UserSliderCode_vibratoSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Vibrato Depth"); + //[/UserSliderCode_vibratoSlider] + } + else if (sliderThatWasMoved == feedbackSlider.get()) + { + //[UserSliderCode_feedbackSlider] -- add your slider handling code here.. + processor->beginChangeGesture("Modulator Feedback"); + //[/UserSliderCode_feedbackSlider] + } + else if (sliderThatWasMoved == emulatorSlider.get()) + { + //[UserSliderCode_emulatorSlider] -- add your slider handling code here.. + //[/UserSliderCode_emulatorSlider] + } + + //[UsersliderValueChanged_Post] + //[/UsersliderValueChanged_Post] + } + void PluginGui::sliderDragEnded (Slider* sliderThatWasMoved) { + //[UsersliderValueChanged_Pre] + + //[/UsersliderValueChanged_Pre] + + if (sliderThatWasMoved == aSlider.get()) + { + //[UserSliderCode_aSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Attack"); + //[/UserSliderCode_aSlider] + } + else if (sliderThatWasMoved == dSlider.get()) + { + //[UserSliderCode_dSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Decay"); + //[/UserSliderCode_dSlider] + } + else if (sliderThatWasMoved == sSlider.get()) + { + //[UserSliderCode_sSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Sustain Level"); + //[/UserSliderCode_sSlider] + } + else if (sliderThatWasMoved == rSlider.get()) + { + //[UserSliderCode_rSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Release"); + //[/UserSliderCode_rSlider] + } + else if (sliderThatWasMoved == attenuationSlider.get()) + { + //[UserSliderCode_attenuationSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Attenuation"); + //[/UserSliderCode_attenuationSlider] + } + else if (sliderThatWasMoved == aSlider2.get()) + { + //[UserSliderCode_aSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Attack"); + //[/UserSliderCode_aSlider2] + } + else if (sliderThatWasMoved == dSlider2.get()) + { + //[UserSliderCode_dSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Decay"); + //[/UserSliderCode_dSlider2] + } + else if (sliderThatWasMoved == sSlider2.get()) + { + //[UserSliderCode_sSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Sustain Level"); + //[/UserSliderCode_sSlider2] + } + else if (sliderThatWasMoved == rSlider2.get()) + { + //[UserSliderCode_rSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Release"); + //[/UserSliderCode_rSlider2] + } + else if (sliderThatWasMoved == attenuationSlider2.get()) + { + //[UserSliderCode_attenuationSlider2] -- add your slider handling code here.. + processor->endChangeGesture("Carrier Attenuation"); + //[/UserSliderCode_attenuationSlider2] + } + else if (sliderThatWasMoved == tremoloSlider.get()) + { + //[UserSliderCode_tremoloSlider] -- add your slider handling code here.. + processor->endChangeGesture("Tremolo Depth"); + //[/UserSliderCode_tremoloSlider] + } + else if (sliderThatWasMoved == vibratoSlider.get()) + { + //[UserSliderCode_vibratoSlider] -- add your slider handling code here.. + processor->endChangeGesture("Vibrato Depth"); + //[/UserSliderCode_vibratoSlider] + } + else if (sliderThatWasMoved == feedbackSlider.get()) + { + //[UserSliderCode_feedbackSlider] -- add your slider handling code here.. + processor->endChangeGesture("Modulator Feedback"); + //[/UserSliderCode_feedbackSlider] + } + else if (sliderThatWasMoved == emulatorSlider.get()) + { + //[UserSliderCode_emulatorSlider] -- add your slider handling code here.. + //[/UserSliderCode_emulatorSlider] + } + + //[UsersliderValueChanged_Post] + updateFromHost=true; + DBG("Slider -> End"); + //[/UsersliderValueChanged_Post] + } + //============================================================================== + // These methods implement the FileDragAndDropTarget interface, and allow our component + // to accept drag-and-drop of files.. + + bool PluginGui::isInterestedInFileDrag (const StringArray& files) + { + return 1 == files.size() && ( + files[0].toLowerCase().endsWith(".sbi") + || files[0].toLowerCase().endsWith(".sb2") + || files[0].toLowerCase().endsWith(".sb0") + ); + } + + void PluginGui::fileDragEnter (const StringArray& files, int x, int y) + { + } + + void PluginGui::fileDragMove (const StringArray& files, int x, int y) + { + } + + void PluginGui::fileDragExit (const StringArray& files) + { + } + + void PluginGui::filesDropped (const StringArray& files, int x, int y) + { + if (isInterestedInFileDrag(files)) { + this->loadandUpdateInstrument(files[0]); + } + } + + void PluginGui::timerCallback() + { + for (int i = 0; i < Hiopl::CHANNELS; ++i) { + channels[i]->setButtonText(processor->getChannelEnvelopeStage(i + 1)); + } + syncGUI(); + } + void PluginGui::loadPreNextFile(bool pre){ + if (pre){ + processor->selectedIdxFile -=1; + } + else{ + processor->selectedIdxFile +=1; + } + if (allSbiFiles.size() > 0){ + if (processor->selectedIdxFile > allSbiFiles.size() -1 ){ + processor->selectedIdxFile = 0; + } + if (processor->selectedIdxFile <0 ){ + processor->selectedIdxFile = allSbiFiles.size() - 1; + } + if (allSbiFiles[processor->selectedIdxFile].existsAsFile()){ + this->loadandUpdateInstrument(allSbiFiles[processor->selectedIdxFile].getFullPathName()); + } else { + loadBrowserFile(); + } + } + else{ + Array dirs; + instrumentLoadDirectory.findChildFiles(dirs, File::findDirectories, false); + bool hasFile = false; + dirs.sort(); + for (auto dir: dirs){ + Array files; + dir.findChildFiles (files, File::findFiles, false, "*.sbi"); + files.sort(); + if (files.size() > 0){ + for (auto file : files){ + hasFile = true; + allSbiFiles.add(file); + } + } + } + if (processor->selectedIdxFile > allSbiFiles.size() - 1){ + processor->selectedIdxFile = 0; + } + if (processor->selectedIdxFile <0 ){ + processor->selectedIdxFile = allSbiFiles.size() - 1; + } + if(hasFile){ + if (allSbiFiles[processor->selectedIdxFile].existsAsFile()){ + this->loadandUpdateInstrument(allSbiFiles[processor->selectedIdxFile].getFullPathName()); + } else { + loadBrowserFile(); + } + } + else { + loadBrowserFile(); + } + } + + } + bool PluginGui::loadBrowserFile(){ + + FileChooser browser("Select SBI instrument file", + instrumentLoadDirectory, + #ifdef JUCE_IOS + "*.sbi"); + #endif + + #ifndef JUCE_IOS + "*.sbi"); + #endif + if (browser.browseForFileToOpen()){ + File selectedFile = browser.getResult(); + instrumentLoadDirectory = selectedFile.getParentDirectory(); + this->loadandUpdateInstrument(selectedFile.getFullPathName()); + } + return 0; + } + + bool PluginGui::showLoadMenu() + { + menuLoad.clear(); + Array dirs; + allSbiFiles.clear(); + bool hasFile = false; + instrumentLoadDirectory.findChildFiles(dirs, File::findDirectories, false); + dirs.sort(); + for (auto dir: dirs) + { + Array files; + dir.findChildFiles (files, File::findFiles, false, "*.sbi"); + files.sort(); + if (files.size() > 0) + { + bool selectedSub = false; + PopupMenu subMenu; + for (auto file : files) + { + allSbiFiles.add(file); + hasFile = true; + if (processor->lastLoadFile == file.getFullPathName()) + { + selectedSub = true; + subMenu.addItem(allSbiFiles.size(), file.getFileNameWithoutExtension(), true, true); + } + else + subMenu.addItem(allSbiFiles.size(), file.getFileNameWithoutExtension()); + } + if(selectedSub) + menuLoad.addSubMenu (dir.getFileName(), std::move (subMenu), true, nullptr, true, 0); + else + menuLoad.addSubMenu(dir.getFileName(), subMenu); + + } + } + if(hasFile) + { + //int id = menuLoad.show(); + menuLoad.showMenuAsync (PopupMenu::Options().withParentComponent (this->getTopLevelComponent()), [this](int id) + { + if (id > 0) + { + auto fileId = id - 1; + processor->selectedIdxFile = fileId; + auto sbiFile = this->allSbiFiles[fileId]; + + if (sbiFile.existsAsFile()) + this->loadandUpdateInstrument(sbiFile.getFullPathName()); + else + this->loadBrowserFile(); + } + // No select, return true to ignore the popup menu + else + { + return; + } + }); + + } + return hasFile; + } + + void PluginGui::loadandUpdateInstrument(String path) { + + processor->loadInstrumentFromFile(path); + + File file(path); + loadButton->setButtonText(file.getFileNameWithoutExtension()); + } + + void PluginGui::syncGUI(){ + if (updateFromHost){ + updateFromParameters(); + } + } +//[/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 + + + + + + + + + + + + + + +END_JUCER_METADATA +*/ +#endif + +//============================================================================== +// Binary resources - be careful not to edit any of these sections! + +// JUCER_RESOURCE: full_sine_png, 203, "../img/full_sine.png" +static const unsigned char resource_PluginGui_full_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,146,73,68,65,84,88,133,237,151,81,14,64, +48,16,68,183,226,94,110,225,18,110,230,146,252,116,35,153,166,97,219,21,131,125,63,66,144,241,76,75,147,136,108,66,192,240,116,0,101,60,61,99,133,253,249,158,32,47,48,162,38,208,64,237,120,39,52,70,146, +224,168,185,250,196,206,102,104,140,68,16,228,232,72,235,59,119,234,10,141,145,8,130,148,51,235,212,120,39,235,117,75,222,230,110,209,24,41,103,86,43,78,163,141,198,72,4,65,250,59,162,116,126,181,105, +140,68,16,196,175,35,74,227,191,238,135,141,40,198,245,208,15,140,24,161,49,178,3,63,99,23,114,126,178,233,88,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::full_sine_png = (const char*) resource_PluginGui_full_sine_png; +const int PluginGui::full_sine_pngSize = 203; + +// JUCER_RESOURCE: half_sine_png, 179, "../img/half_sine.png" +static const unsigned char resource_PluginGui_half_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,122,73,68,65,84,88,133,237,148,65,10,128, +32,20,5,191,209,189,186,69,135,236,22,157,172,22,33,193,72,20,102,248,130,55,155,40,50,198,73,77,17,177,133,0,67,111,129,204,120,251,198,130,251,249,27,145,31,20,201,37,88,224,234,249,75,100,138,164,224, +174,121,58,227,198,101,100,138,88,132,156,107,164,246,159,55,90,43,50,69,44,66,202,147,117,170,252,82,237,184,245,184,200,20,41,79,214,78,200,20,177,8,177,8,177,8,177,8,177,8,177,8,217,1,254,115,12,122, +78,109,41,249,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::half_sine_png = (const char*) resource_PluginGui_half_sine_png; +const int PluginGui::half_sine_pngSize = 179; + +// JUCER_RESOURCE: abs_sine_png, 181, "../img/abs_sine.png" +static const unsigned char resource_PluginGui_abs_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,124,73,68,65,84,88,133,237,148,81,10,128, +32,16,5,215,232,94,221,162,67,118,201,250,81,130,17,209,182,192,13,222,252,21,62,153,125,150,201,204,78,11,192,50,91,160,176,118,87,28,120,222,7,119,126,152,251,65,35,101,34,78,210,122,255,50,23,166,145, +100,252,107,122,19,183,214,121,115,153,48,141,72,132,220,223,200,232,25,147,143,114,97,26,145,8,169,111,214,205,185,147,55,151,9,211,72,125,179,78,34,76,35,18,33,18,33,18,33,18,33,18,33,18,33,23,197,62, +17,185,230,123,254,103,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::abs_sine_png = (const char*) resource_PluginGui_abs_sine_png; +const int PluginGui::abs_sine_pngSize = 181; + +// JUCER_RESOURCE: quarter_sine_png, 181, "../img/quarter_sine.png" +static const unsigned char resource_PluginGui_quarter_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,124,73,68,65,84,88,133,237,150,81,10, +128,32,16,68,215,232,94,221,162,67,118,139,78,150,31,41,209,196,162,174,31,205,199,60,8,177,28,120,77,33,38,51,187,140,128,229,111,129,74,91,228,40,215,40,131,57,154,70,86,247,73,164,133,137,28,113,35, +245,141,118,152,183,136,230,10,52,141,72,4,121,254,17,252,198,189,68,115,0,77,35,18,65,190,251,200,230,172,244,238,207,230,206,123,160,105,36,153,206,35,111,36,130,72,4,145,8,34,17,68,34,136,68,144,12, +123,138,13,78,65,207,81,74,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::quarter_sine_png = (const char*) resource_PluginGui_quarter_sine_png; +const int PluginGui::quarter_sine_pngSize = 181; + +// JUCER_RESOURCE: camel_sine_png, 174, "../img/camel_sine.png" +static const unsigned char resource_PluginGui_camel_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,117,73,68,65,84,88,133,237,148,209,9,192, +32,12,68,99,233,94,221,162,67,118,139,78,86,63,218,80,56,41,129,40,245,62,238,129,136,6,225,229,132,20,51,187,140,128,101,182,128,243,45,114,60,43,91,31,38,242,51,107,115,227,93,238,201,115,18,154,68, +36,130,20,243,57,18,253,117,111,61,128,38,17,137,32,18,65,218,201,186,5,47,122,235,200,121,111,52,137,188,115,100,50,52,137,72,4,145,8,34,17,68,34,136,68,16,137,32,21,146,46,14,97,109,79,27,36,0,0,0,0, +73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::camel_sine_png = (const char*) resource_PluginGui_camel_sine_png; +const int PluginGui::camel_sine_pngSize = 174; + +// JUCER_RESOURCE: alternating_sine_png, 197, "../img/alternating_sine.png" +static const unsigned char resource_PluginGui_alternating_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,140,73,68,65,84,88,133,99,100,96, +96,248,207,48,8,0,211,64,59,0,6,112,59,100,21,20,15,184,67,232,12,88,48,68,96,161,16,134,131,79,35,48,104,66,100,212,33,232,128,145,1,86,142,16,74,11,52,78,43,131,38,68,70,29,130,14,70,29,130,14,48,75, +86,123,2,58,112,201,103,67,233,169,36,186,224,32,132,26,52,33,130,40,71,8,1,26,151,51,131,38,68,70,29,130,14,70,29,130,14,136,207,53,48,64,163,22,220,160,9,145,81,135,160,3,210,211,8,12,80,185,197,54, +12,66,132,202,96,208,132,8,0,67,200,18,200,95,246,147,104,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::alternating_sine_png = (const char*) resource_PluginGui_alternating_sine_png; +const int PluginGui::alternating_sine_pngSize = 197; + +// JUCER_RESOURCE: square_png, 179, "../img/square.png" +static const unsigned char resource_PluginGui_square_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,122,73,68,65,84,88,133,237,150,177,17,128,48, +12,3,29,142,189,216,130,37,216,44,75,66,99,83,40,85,34,238,80,161,111,146,198,190,143,10,59,45,34,238,16,96,251,91,160,216,223,91,39,59,157,92,185,96,34,197,236,203,216,36,19,153,68,44,130,88,4,177,8, +98,17,100,156,172,199,98,167,217,186,43,207,156,228,50,137,180,96,255,35,181,107,86,119,148,90,34,22,65,44,130,88,4,177,8,50,238,154,85,200,223,188,76,34,252,174,249,8,153,68,30,246,154,9,40,60,195,35, +102,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::square_png = (const char*) resource_PluginGui_square_png; +const int PluginGui::square_pngSize = 179; + +// JUCER_RESOURCE: logarithmic_saw_png, 206, "../img/logarithmic_saw.png" +static const unsigned char resource_PluginGui_logarithmic_saw_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,149,73,68,65,84,88,133,237,150,81, +10,128,32,16,68,215,232,94,221,194,75,116,158,46,225,37,235,103,37,24,19,139,218,118,64,31,136,172,32,12,15,87,13,34,178,11,1,147,119,128,204,25,36,233,112,15,226,204,8,130,148,65,156,206,10,177,17,39, +104,130,204,197,74,212,57,65,109,12,177,145,12,154,193,245,143,33,54,178,64,189,65,125,247,142,193,125,200,170,179,26,166,49,18,196,234,63,210,58,91,208,149,52,70,234,93,243,150,134,1,164,3,35,72,237, +94,82,104,140,140,32,200,255,65,162,92,118,78,199,70,42,208,4,177,123,107,30,66,99,228,0,184,114,16,107,149,79,109,141,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::logarithmic_saw_png = (const char*) resource_PluginGui_logarithmic_saw_png; +const int PluginGui::logarithmic_saw_pngSize = 206; + +// JUCER_RESOURCE: channeloff_png, 414, "../img/channeloff.png" +static const unsigned char resource_PluginGui_channeloff_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,0,31,243,255,97,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127, +0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,222,8,25,20,6,56,156,246,144,159,0,0,0,29,105,84,88,116,67,111,109,109,101,110,116,0,0,0,0,0,67,114,101,97,116,101,100,32, +119,105,116,104,32,71,73,77,80,100,46,101,7,0,0,1,2,73,68,65,84,56,203,165,211,61,78,66,65,20,5,224,143,193,82,119,224,62,104,40,166,196,194,202,10,66,65,137,149,75,120,121,193,21,216,104,108,164,32,178, +128,183,1,94,66,67,66,172,172,140,27,176,178,192,202,70,139,55,26,2,138,2,39,153,102,230,220,159,185,231,220,154,85,100,14,113,138,46,154,233,118,138,17,10,185,183,101,122,88,9,110,99,129,11,20,104,164, +83,164,187,69,226,252,128,204,64,230,67,166,239,55,100,250,137,51,176,86,185,122,104,249,11,153,86,226,182,161,150,254,188,192,185,220,141,255,160,234,242,26,71,117,209,25,142,229,27,90,95,69,105,46,58, +193,107,72,211,30,218,30,67,116,67,146,106,178,67,130,9,154,193,158,8,201,36,113,135,216,136,105,72,14,235,237,144,160,135,81,248,118,92,182,133,10,21,183,129,162,174,244,46,122,194,157,104,166,244,252, +167,145,24,163,35,247,80,79,186,62,138,14,112,43,122,81,154,111,168,60,198,165,220,85,229,196,245,101,186,199,44,233,60,89,26,88,47,181,221,145,27,127,133,212,246,93,231,79,44,229,73,181,37,137,229,213, +0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::channeloff_png = (const char*) resource_PluginGui_channeloff_png; +const int PluginGui::channeloff_pngSize = 414; + +// JUCER_RESOURCE: channelon_png, 326, "../img/channelon.png" +static const unsigned char resource_PluginGui_channelon_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,0,31,243,255,97,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127, +0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,222,8,25,20,6,39,17,254,157,106,0,0,0,29,105,84,88,116,67,111,109,109,101,110,116,0,0,0,0,0,67,114,101,97,116,101,100,32, +119,105,116,104,32,71,73,77,80,100,46,101,7,0,0,0,170,73,68,65,84,56,203,173,147,177,13,194,48,16,69,159,143,148,176,81,20,101,129,84,84,68,217,5,89,176,0,204,16,193,0,30,0,69,202,8,169,88,131,12,64,145, +139,176,82,64,116,230,117,182,252,206,242,249,159,99,201,145,45,80,1,13,144,235,110,15,180,64,192,51,198,199,221,66,62,0,55,190,83,227,185,207,139,77,36,159,128,11,191,217,83,146,209,241,248,20,152,110, +94,35,207,20,148,60,233,24,156,190,249,133,141,157,104,195,172,84,162,221,182,210,72,244,85,22,114,33,17,209,144,88,233,69,19,102,165,21,32,36,20,8,162,217,174,13,114,141,103,156,146,216,49,80,146,1,197, +74,249,140,231,250,151,97,114,169,227,252,6,230,208,38,246,228,75,209,233,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::channelon_png = (const char*) resource_PluginGui_channelon_png; +const int PluginGui::channelon_pngSize = 326; + +// JUCER_RESOURCE: toggle_off_sq_png, 118, "../img/toggle_off_sq.png" +static const unsigned char resource_PluginGui_toggle_off_sq_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0,0,86,117,92,231,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0, +0,48,73,68,65,84,40,21,99,100,172,103,248,207,64,2,96,1,169,253,223,72,156,14,160,225,12,76,196,41,69,168,26,213,128,8,11,220,44,218,135,18,56,166,65,49,72,44,0,0,186,23,4,27,1,178,34,38,0,0,0,0,73,69, +78,68,174,66,96,130,0,0}; + +const char* PluginGui::toggle_off_sq_png = (const char*) resource_PluginGui_toggle_off_sq_png; +const int PluginGui::toggle_off_sq_pngSize = 118; + +// JUCER_RESOURCE: toggle_on_sq_png, 134, "../img/toggle_on_sq.png" +static const unsigned char resource_PluginGui_toggle_on_sq_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0,0,86,117,92,231,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0, +64,73,68,65,84,40,21,99,100,172,103,248,207,64,2,96,1,169,253,223,72,156,14,160,225,12,96,13,32,229,32,14,62,0,51,148,9,159,34,108,114,163,26,176,133,10,186,24,60,30,96,225,140,174,0,157,15,214,64,40, +210,144,53,1,0,212,234,7,159,245,36,0,105,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::toggle_on_sq_png = (const char*) resource_PluginGui_toggle_on_sq_png; +const int PluginGui::toggle_on_sq_pngSize = 134; + +// JUCER_RESOURCE: line_border_horiz_png, 108, "../img/line_border_horiz.png" +static const unsigned char resource_PluginGui_line_border_horiz_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,6,8,6,0,0,0,199,98,110,160,0,0,0,1,115,82,71,66,0,174,206,28,233, +0,0,0,38,73,68,65,84,40,21,99,100,96,96,248,15,196,84,7,76,84,55,17,106,32,11,67,176,32,77,204,166,153,139,25,129,206,29,90,97,12,0,88,84,2,111,238,165,1,44,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::line_border_horiz_png = (const char*) resource_PluginGui_line_border_horiz_png; +const int PluginGui::line_border_horiz_pngSize = 108; + +// JUCER_RESOURCE: line_border_vert_png, 107, "../img/line_border_vert.png" +static const unsigned char resource_PluginGui_line_border_vert_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,6,0,0,0,22,8,6,0,0,0,227,26,237,211,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,37,73,68,65,84,40,21,99,100,96,96,248,15,196,12,12,193,130,96,138,97,237,123,48,205,4,225,97,146,163,18,24,97,50,236,131,4,0,123,194,3,43,141,43,209,32,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::line_border_vert_png = (const char*) resource_PluginGui_line_border_vert_png; +const int PluginGui::line_border_vert_pngSize = 107; + +// JUCER_RESOURCE: algo_switch_off_png, 162, "../img/algo_switch_off.png" +static const unsigned char resource_PluginGui_algo_switch_off_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,92,73,68,65,84,88,9,237,151,177,13,0,32,12,195,90,196,223,136,203,129,178,248,133,168,74,167,140,113,60,53,115,197,137,70,55,139,229,236,30,68,79,78,140,30,40,80,24,136,45,52,147,13,105,122,161,149, +13,177,133,102,178,33,77,47,180,178,33,182,208,76,54,164,233,133,86,54,196,22,154,201,134,52,189,208,234,127,172,245,233,117,185,11,224,6,4,43,49,160,14,163,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::algo_switch_off_png = (const char*) resource_PluginGui_algo_switch_off_png; +const int PluginGui::algo_switch_off_pngSize = 162; + +// JUCER_RESOURCE: algo_switch_on_png, 168, "../img/algo_switch_on.png" +static const unsigned char resource_PluginGui_algo_switch_on_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,98,73,68,65,84,88,9,237,151,177,13,192,48,12,195,236,52,223,244,200,92,153,115,10,7,233,196,19,4,67,158,52,138,226,228,204,21,21,141,110,94,150,231,205,22,72,223,174,24,45,72,0,97,32,140,33,25,109, +72,82,11,74,217,16,198,144,140,54,36,169,5,165,108,8,99,72,70,27,146,212,130,82,54,132,49,36,163,13,73,106,65,169,255,99,189,159,94,151,59,99,230,7,124,25,120,111,199,0,0,0,0,73,69,78,68,174,66,96,130, +0,0}; + +const char* PluginGui::algo_switch_on_png = (const char*) resource_PluginGui_algo_switch_on_png; +const int PluginGui::algo_switch_on_pngSize = 168; + +// JUCER_RESOURCE: algo_switch_on2_png, 169, "../img/algo_switch_on2.png" +static const unsigned char resource_PluginGui_algo_switch_on2_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,99,73,68,65,84,88,9,237,151,177,13,128,48,16,3,31,68,145,58,115,48,123,166,201,48,116,33,130,226,86,176,44,127,229,210,231,171,254,168,209,87,25,221,245,177,204,199,3,233,110,117,122,144,64,17,32, +182,208,76,49,164,233,133,86,49,196,22,154,41,134,52,189,208,42,134,216,66,51,197,144,166,23,90,197,16,91,104,166,24,210,244,66,171,255,99,221,159,158,203,189,241,194,4,31,18,119,100,16,0,0,0,0,73,69, +78,68,174,66,96,130,0,0}; + +const char* PluginGui::algo_switch_on2_png = (const char*) resource_PluginGui_algo_switch_on2_png; +const int PluginGui::algo_switch_on2_pngSize = 169; + +// JUCER_RESOURCE: algo_switch_on3_png, 151, "../img/algo_switch_on3.png" +static const unsigned char resource_PluginGui_algo_switch_on3_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, +0,0,81,73,68,65,84,88,9,237,146,65,10,0,32,12,195,166,71,159,237,199,21,252,65,47,65,70,118,47,165,201,70,237,117,170,209,205,70,91,222,20,7,253,110,84,67,26,130,9,248,114,48,240,184,78,67,49,50,56,160, +33,24,120,92,167,161,24,25,28,208,16,12,60,174,211,80,140,12,14,180,51,116,1,132,232,1,179,41,122,114,149,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::algo_switch_on3_png = (const char*) resource_PluginGui_algo_switch_on3_png; +const int PluginGui::algo_switch_on3_pngSize = 151; + +// JUCER_RESOURCE: twoopAm_png, 1872, "../img/Two-OP AM.png" +static const unsigned char resource_PluginGui_twoopAm_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,183,0,0,0,171,8,6,0,0,0,36,122,13,127,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,7,10, +73,68,65,84,120,1,237,157,191,110,84,71,20,135,231,174,221,208,145,221,164,67,72,116,161,112,30,0,185,72,73,210,217,239,1,72,32,37,101,156,50,145,82,36,77,222,194,86,20,41,166,11,5,242,3,64,65,164,20, +150,44,58,194,138,138,10,103,178,70,1,123,61,123,175,239,222,57,103,207,153,217,143,6,239,253,115,230,204,247,251,52,26,95,175,215,77,216,31,199,80,235,191,102,244,125,216,249,103,175,214,233,49,175,110, +2,163,238,211,156,133,64,185,4,144,187,220,236,232,252,10,2,200,125,5,32,78,151,75,0,185,203,205,142,206,175,32,128,220,87,0,226,116,185,4,54,91,91,223,157,54,173,231,188,157,56,248,116,47,196,127,191, +243,214,22,253,216,18,96,229,182,229,207,232,138,4,144,91,17,46,165,109,9,32,183,45,127,70,87,36,128,220,138,112,41,109,75,0,185,109,249,51,186,34,1,228,86,132,75,105,91,2,200,109,203,159,209,21,9,32, +183,34,92,74,219,18,64,110,91,254,140,174,72,0,185,21,225,82,218,150,0,114,219,242,103,116,69,2,200,173,8,151,210,182,4,144,219,150,63,163,43,18,64,110,69,184,148,182,37,208,180,254,130,176,208,91,94, +155,237,141,122,127,1,121,65,118,241,233,105,57,111,21,94,208,127,77,135,88,185,107,74,147,185,204,17,64,238,57,28,188,168,137,64,251,111,226,40,204,242,214,157,155,10,85,237,75,30,31,157,216,55,65,7, +9,1,86,238,4,9,7,106,33,128,220,181,36,201,60,18,2,200,157,32,225,64,45,4,144,187,150,36,153,71,66,0,185,19,36,28,168,133,0,114,215,146,36,243,72,8,32,119,130,132,3,181,16,64,238,90,146,100,30,9,1,228, +78,144,112,160,22,2,200,93,75,146,204,35,33,128,220,9,18,14,212,66,0,185,107,73,146,121,36,4,144,59,65,194,129,90,8,32,119,45,73,50,143,132,0,114,39,72,56,80,11,1,228,174,37,73,230,145,16,64,238,4,9,7, +106,33,128,220,181,36,201,60,18,2,200,157,32,225,64,45,4,144,187,150,36,153,71,66,0,185,19,36,28,168,133,0,114,215,146,36,243,72,8,32,119,130,132,3,181,16,88,233,231,150,212,2,173,115,30,251,99,95,31, +31,39,244,177,120,157,115,118,122,146,149,219,105,48,180,149,79,160,125,229,62,152,252,144,95,126,86,225,167,55,34,101,40,2,129,101,9,180,203,29,227,55,203,22,227,122,8,120,34,192,182,196,83,26,244,34, +74,0,185,69,113,82,204,19,129,246,109,137,167,46,75,234,197,234,233,132,183,167,52,14,50,99,229,118,16,2,45,232,16,216,12,77,243,173,78,233,143,85,101,158,186,124,44,199,23,16,232,71,96,51,236,188,254, +177,223,165,3,175,218,222,64,238,129,232,184,45,143,0,219,146,60,126,220,237,152,0,114,59,14,135,214,242,8,32,119,30,63,238,118,76,0,185,29,135,67,107,121,4,144,59,143,31,119,59,38,128,220,142,195,161, +181,60,2,200,157,199,143,187,29,19,64,110,199,225,208,90,30,1,228,206,227,199,221,142,9,32,183,227,112,104,45,143,0,114,231,241,227,110,199,4,144,219,113,56,180,150,71,0,185,243,248,113,183,99,2,200,237, +56,28,90,203,35,128,220,121,252,184,219,49,1,228,118,28,14,173,229,17,64,238,60,126,220,237,152,0,114,59,14,135,214,242,8,32,119,30,63,238,118,76,0,185,29,135,67,107,121,4,86,250,185,37,199,71,39,121, +221,114,55,4,150,32,192,202,189,4,44,46,45,139,0,114,151,149,23,221,46,65,64,125,91,18,159,158,54,75,244,195,165,16,16,35,192,202,45,134,146,66,222,8,32,183,183,68,232,71,140,0,114,139,161,164,80,22,129, +131,241,31,225,247,201,231,89,53,46,221,140,220,151,128,240,210,136,64,12,95,133,119,241,121,216,159,252,28,30,223,24,75,116,129,220,18,20,169,33,67,32,134,217,3,142,120,63,188,125,251,119,56,152,220, +11,127,126,153,245,192,3,185,101,98,161,138,44,129,113,136,241,151,240,230,249,179,240,219,103,119,135,150,70,238,161,228,184,79,159,64,140,183,195,233,233,97,24,184,31,71,110,253,136,24,33,151,192,192, +253,56,114,231,130,231,254,213,16,24,176,31,71,238,213,68,195,40,114,4,122,239,199,145,91,14,58,149,86,73,224,226,126,124,127,114,123,209,208,188,239,99,17,149,18,143,173,243,159,234,107,194,187,16,154, +95,195,181,107,123,225,238,203,233,135,248,88,185,63,144,224,255,114,9,156,237,199,99,188,119,249,249,56,43,119,185,145,206,119,190,206,43,247,60,137,217,34,222,188,8,97,244,136,149,251,50,24,94,151,79, +32,134,247,139,54,114,151,31,37,51,56,39,48,13,163,230,65,248,100,107,43,236,188,58,204,250,217,253,121,77,190,130,128,33,129,228,27,202,39,239,155,65,110,195,76,86,50,244,238,180,140,239,171,134,127, +207,240,56,196,230,97,216,125,61,219,103,207,255,67,238,121,30,188,42,134,64,243,87,104,70,15,207,182,31,109,45,179,231,110,35,195,113,175,4,230,246,213,93,77,178,114,119,209,225,156,31,2,45,251,234,174, +6,145,187,139,14,231,188,16,104,221,87,119,53,136,220,93,116,56,103,75,224,255,31,198,116,237,171,187,26,100,207,221,69,135,115,86,4,166,179,159,50,222,15,215,183,190,24,42,246,89,227,172,220,86,241,49, +110,74,96,192,190,58,45,114,126,4,185,207,89,240,149,37,129,38,28,206,158,87,63,90,244,188,122,104,91,200,61,148,28,247,201,18,216,153,126,45,91,112,246,214,41,233,130,212,131,128,23,2,200,237,37,9,250, +16,39,160,190,45,105,182,55,162,120,215,142,11,242,169,182,126,194,97,229,246,147,5,157,8,19,64,110,97,160,148,243,67,64,125,91,114,113,170,183,238,220,188,248,178,154,175,249,91,63,62,163,100,229,246, +153,11,93,9,16,64,110,1,136,148,240,73,0,185,125,230,66,87,2,4,144,91,0,34,37,124,18,64,110,159,185,208,149,0,1,228,22,128,72,9,159,4,144,219,103,46,116,37,64,0,185,5,32,82,194,39,1,228,246,153,11,93, +9,16,64,110,1,136,148,240,73,0,185,125,230,66,87,2,4,144,91,0,34,37,124,18,64,110,159,185,208,149,0,1,228,22,128,72,9,159,4,144,219,103,46,116,37,64,0,185,5,32,82,194,39,1,228,246,153,11,93,9,16,64,110, +1,136,148,240,73,0,185,125,230,66,87,2,4,144,91,0,34,37,124,18,64,110,159,185,208,149,0,1,228,22,128,72,9,159,4,144,219,103,46,116,37,64,96,165,159,91,34,208,175,255,18,195,255,228,156,255,185,21,214, +33,43,119,97,129,209,110,127,2,200,221,159,21,87,22,70,0,185,11,11,140,118,251,19,64,238,254,172,184,178,48,2,200,93,88,96,180,219,159,0,79,75,250,179,234,119,229,238,180,233,119,33,87,105,19,96,229,214, +38,76,125,51,2,200,109,134,158,129,181,9,32,183,54,97,234,155,17,64,110,51,244,12,172,77,0,185,181,9,83,223,140,0,114,155,161,103,96,109,2,200,173,77,152,250,102,4,144,219,12,61,3,107,19,64,110,109,194, +212,55,35,128,220,102,232,25,88,155,0,114,107,19,166,190,25,1,228,54,67,207,192,218,4,144,91,155,48,245,205,8,32,183,25,122,6,214,38,128,220,218,132,169,111,70,0,185,205,208,51,176,54,1,228,214,38,76, +125,51,2,200,109,134,158,129,181,9,32,183,54,97,234,155,17,64,110,51,244,12,172,77,0,185,181,9,83,223,140,0,114,155,161,103,96,109,2,200,173,77,152,250,102,4,86,250,185,37,199,71,39,102,19,101,224,245, +35,192,202,189,126,153,175,205,140,145,123,109,162,94,191,137,254,7,149,161,178,110,197,68,224,25,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::twoopAm_png = (const char*) resource_PluginGui_twoopAm_png; +const int PluginGui::twoopAm_pngSize = 1872; + +// JUCER_RESOURCE: twoopFm_png, 1203, "../img/Two-OP FM.png" +static const unsigned char resource_PluginGui_twoopFm_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,219,0,0,0,81,8,6,0,0,0,91,168,211,254,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,4,109, +73,68,65,84,120,1,237,221,177,79,147,65,24,199,241,231,10,11,147,218,202,102,76,220,100,168,127,128,97,208,193,4,221,202,127,225,0,38,144,232,40,140,154,104,162,131,254,23,109,140,137,176,201,96,248,3, +100,208,196,129,132,184,41,13,46,76,224,249,86,36,185,148,247,170,190,125,142,222,221,251,197,193,151,123,233,241,220,231,233,47,111,175,77,139,145,110,211,74,174,95,166,177,46,157,239,107,185,46,143, +117,165,37,208,72,171,92,170,69,32,93,1,194,150,110,239,168,60,49,1,194,150,88,195,40,55,93,1,194,150,110,239,168,60,49,1,194,150,88,195,40,55,93,129,105,111,233,139,125,227,61,23,219,137,222,229,53,177, +63,31,199,86,22,245,32,224,10,112,101,115,53,56,70,32,160,0,97,11,136,203,212,8,184,2,132,205,213,224,24,129,128,2,132,45,32,46,83,35,224,10,16,54,87,131,99,4,2,10,16,182,128,184,76,141,128,43,64,216, +92,13,142,17,8,40,64,216,2,226,50,53,2,174,0,97,115,53,56,70,32,160,0,97,11,136,203,212,8,184,2,132,205,213,224,24,129,128,2,132,45,32,46,83,35,224,10,16,54,87,131,99,4,2,10,16,182,128,184,76,141,128, +43,96,188,31,248,163,244,22,27,51,63,149,239,7,10,185,146,127,142,237,135,227,137,188,53,9,231,146,102,68,54,196,149,45,178,134,80,78,190,2,132,45,223,222,178,178,200,4,252,239,212,14,80,232,181,155,87, +3,204,58,249,41,119,183,247,38,95,132,83,1,206,14,70,68,135,92,217,34,106,6,165,228,45,64,216,242,238,47,171,139,72,128,176,69,212,12,74,201,91,128,176,229,221,95,86,23,145,0,97,139,168,25,148,146,183, +0,97,203,187,191,172,46,34,1,194,22,81,51,40,37,111,1,194,150,119,127,89,93,68,2,132,45,162,102,80,74,222,2,132,45,239,254,178,186,136,4,8,91,68,205,160,148,188,5,8,91,222,253,101,117,17,9,16,182,136, +154,65,41,121,11,16,182,188,251,203,234,34,18,32,108,17,53,131,82,34,18,232,53,223,201,219,214,117,205,138,8,155,166,38,115,229,35,96,229,174,28,217,29,233,182,94,200,230,149,166,198,194,8,155,134,34, +115,228,41,96,165,120,115,181,93,150,195,195,47,210,107,45,201,251,91,99,189,217,154,176,229,121,55,97,85,186,2,77,177,246,165,28,236,124,148,55,179,11,85,167,38,108,85,229,184,93,253,4,172,157,147,227, +227,13,169,184,159,35,108,245,187,203,176,226,113,5,42,238,231,8,219,184,240,220,190,158,2,21,246,115,132,173,158,119,21,86,173,39,240,207,251,57,194,166,135,206,76,117,22,112,247,115,221,214,92,25,197, +88,79,101,150,77,88,251,177,110,115,50,31,183,254,252,71,189,232,39,229,252,55,229,193,126,206,216,59,197,75,5,175,101,102,102,77,22,190,246,79,111,194,149,237,84,130,255,17,208,18,24,236,231,172,93,26, +126,125,206,127,101,235,181,158,168,252,238,103,7,42,211,48,9,2,9,10,156,238,231,238,75,111,118,213,31,54,107,31,38,184,56,74,70,32,62,1,43,166,248,39,60,140,140,175,53,84,148,143,64,95,26,230,129,92, +106,183,165,243,109,195,127,101,203,103,193,172,4,129,243,21,48,114,36,98,156,39,72,182,126,255,126,194,166,221,6,165,63,34,249,223,101,213,236,143,78,74,104,231,234,207,118,110,138,53,43,178,184,255, +105,184,135,132,109,88,132,239,17,168,36,96,62,139,105,172,12,30,46,250,110,62,45,198,60,242,157,84,26,215,121,86,83,169,24,166,65,64,89,96,176,47,91,151,11,237,87,114,123,171,120,248,232,255,154,150, +206,254,83,255,105,133,51,243,83,132,77,129,145,41,34,19,240,236,203,70,85,201,195,200,81,58,156,67,160,92,192,187,47,43,255,241,147,81,194,54,74,135,115,8,184,2,198,20,79,122,52,86,71,237,203,220,31, +31,62,230,117,182,97,17,190,71,224,172,64,191,120,110,99,89,46,182,111,84,13,218,96,74,174,108,103,97,25,65,224,68,160,194,190,108,20,29,97,27,165,195,185,250,10,24,217,40,94,47,91,45,123,189,172,42,10, +97,171,42,199,237,242,22,232,244,239,105,47,144,61,155,182,40,243,33,224,17,32,108,30,24,134,17,208,22,32,108,218,162,204,135,128,71,128,176,121,96,24,70,64,91,128,176,105,139,50,31,2,30,1,194,230,129, +97,24,1,109,1,194,166,45,202,124,8,120,4,8,155,7,134,97,4,180,5,8,155,182,40,243,33,224,17,32,108,30,24,134,17,208,22,32,108,218,162,204,135,128,71,128,176,121,96,24,70,64,91,128,176,105,139,50,31,2,30, +1,194,230,129,97,24,1,109,129,115,125,139,205,238,246,158,118,253,204,87,34,128,115,9,74,4,67,92,217,34,104,2,37,212,67,128,176,213,163,207,172,50,2,129,95,213,163,177,117,99,210,56,193,0,0,0,0,73,69, +78,68,174,66,96,130,0,0}; + +const char* PluginGui::twoopFm_png = (const char*) resource_PluginGui_twoopFm_png; +const int PluginGui::twoopFm_pngSize = 1203; + +// JUCER_RESOURCE: bassdrum_png, 234, "../img/bassdrum.png" +static const unsigned char resource_PluginGui_bassdrum_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,176,73,68,65,84,72,75,237,151,193,17,128, +32,12,4,67,101,118,97,145,118,97,101,250,138,206,28,19,47,4,4,30,248,211,33,89,238,66,16,146,136,92,50,224,73,243,130,143,160,29,251,119,28,87,220,29,172,64,156,185,245,29,5,146,113,182,226,238,224,70, +138,30,3,140,124,185,226,5,182,186,162,210,153,215,106,111,162,194,213,107,213,122,129,69,200,86,151,149,220,91,34,24,199,173,222,0,117,194,251,2,59,219,111,66,171,181,182,88,211,223,251,184,27,24,149, +48,112,112,53,43,198,254,31,119,7,51,160,78,185,185,226,105,193,149,74,237,26,51,197,205,193,184,39,235,212,180,143,75,143,185,238,115,245,48,112,240,194,16,13,227,55,137,104,102,18,119,3,1,34,108,1,9, +174,221,30,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; + +const char* PluginGui::bassdrum_png = (const char*) resource_PluginGui_bassdrum_png; +const int PluginGui::bassdrum_pngSize = 234; + +// JUCER_RESOURCE: snare_png, 261, "../img/snare.png" +static const unsigned char resource_PluginGui_snare_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,203,73,68,65,84,72,75,237,150,209,13,131,48, +12,5,195,100,221,162,67,118,11,38,43,63,88,149,94,244,240,65,80,172,86,229,51,56,62,46,137,77,150,214,218,187,21,60,203,239,128,31,251,242,173,199,203,120,191,241,237,224,151,49,120,238,227,14,104,198, +185,241,52,176,130,194,76,197,79,154,198,116,111,60,29,28,64,103,24,159,76,77,77,190,222,120,58,152,2,93,121,102,101,36,249,63,198,229,224,48,202,246,152,246,119,115,72,123,227,50,112,152,210,114,82,115, +55,15,239,113,25,56,76,92,171,204,246,88,207,8,54,46,7,103,102,244,253,105,99,154,56,139,251,131,187,203,222,104,235,116,117,45,167,252,250,223,41,219,83,173,138,20,236,202,136,246,110,216,120,198,111, +32,180,101,74,220,248,101,79,193,112,101,190,0,76,15,19,140,227,198,48,33,13,219,0,129,40,94,1,181,64,195,180,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; + +const char* PluginGui::snare_png = (const char*) resource_PluginGui_snare_png; +const int PluginGui::snare_pngSize = 261; + +// JUCER_RESOURCE: disabled_png, 210, "../img/disabled.png" +static const unsigned char resource_PluginGui_disabled_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,152,73,68,65,84,72,75,237,150,81,10,128,48, +12,67,187,75,122,72,47,169,63,78,161,48,146,148,97,55,168,95,194,218,62,147,56,93,51,179,203,18,174,86,224,191,92,47,171,63,167,207,231,246,8,154,15,250,199,86,167,129,187,80,245,1,200,122,252,114,145, +131,222,64,200,122,12,102,149,147,192,62,110,3,240,72,185,168,84,87,156,14,102,51,7,219,159,207,216,15,10,90,188,161,213,94,105,80,57,111,53,2,160,117,23,213,194,96,81,137,145,245,88,49,57,104,222,183, +90,5,138,219,109,225,255,113,240,0,130,218,112,198,104,66,112,189,192,65,227,244,182,52,171,111,130,58,64,1,51,47,73,27,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; + +const char* PluginGui::disabled_png = (const char*) resource_PluginGui_disabled_png; +const int PluginGui::disabled_pngSize = 210; + +// JUCER_RESOURCE: tom_png, 231, "../img/tom.png" +static const unsigned char resource_PluginGui_tom_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,174,73,68,65,84,72,75,237,150,209,13,128,32,12, +68,203,100,110,225,144,110,225,100,250,3,124,212,92,238,8,132,134,136,223,109,31,119,133,214,100,102,143,5,124,105,29,240,5,236,57,219,108,107,87,60,13,236,65,72,153,26,151,141,225,138,213,130,106,28, +5,151,66,141,189,171,157,38,249,88,113,56,216,95,86,181,199,37,15,196,115,197,97,96,127,98,245,57,13,239,113,24,88,29,80,195,21,111,48,114,96,91,237,156,225,3,228,63,179,186,88,163,174,59,53,142,174,197, +48,240,145,201,183,187,21,234,200,68,249,84,241,116,48,57,105,213,223,25,247,125,78,157,5,63,131,12,212,227,63,123,104,36,170,7,4,249,11,130,213,245,56,92,113,39,248,5,18,169,84,1,245,238,241,237,0,0, +0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::tom_png = (const char*) resource_PluginGui_tom_png; +const int PluginGui::tom_pngSize = 231; + +// JUCER_RESOURCE: hihat_png, 189, "../img/hihat.png" +static const unsigned char resource_PluginGui_hihat_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,131,73,68,65,84,72,75,99,100,96,96,248,207,48, +0,128,113,212,98,122,133,58,249,65,109,15,117,226,65,242,156,58,106,49,241,225,70,247,160,94,133,195,109,97,196,187,25,164,146,244,56,166,186,197,184,12,36,205,35,132,85,67,67,6,225,227,1,179,152,176, +91,169,170,130,244,56,166,146,245,131,32,168,7,125,28,83,61,59,17,27,119,3,102,49,204,129,116,47,50,71,45,30,109,8,16,153,59,200,47,50,71,83,53,145,65,12,83,54,4,131,154,68,31,162,43,39,223,199,20,90, +12,0,73,108,52,1,92,98,8,34,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; + +const char* PluginGui::hihat_png = (const char*) resource_PluginGui_hihat_png; +const int PluginGui::hihat_pngSize = 189; + +// JUCER_RESOURCE: cymbal_png, 237, "../img/cymbal.png" +static const unsigned char resource_PluginGui_cymbal_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,178,73,68,65,84,72,75,237,149,209,13,128,48, +8,5,233,100,110,225,144,110,225,100,250,97,209,4,67,30,164,21,108,82,127,140,161,114,61,68,90,136,232,160,132,171,76,112,84,213,227,74,189,84,165,253,186,15,0,222,140,31,97,21,235,132,41,71,237,198,97, +96,9,146,38,168,0,138,41,54,14,7,51,208,107,200,42,192,84,55,14,7,123,129,70,179,187,21,68,254,167,171,127,15,102,83,217,213,117,34,169,205,222,108,156,6,70,255,175,22,111,54,238,14,230,132,222,38,67, +27,81,242,189,103,117,26,88,154,243,179,117,146,25,71,173,126,58,25,19,188,42,109,124,239,251,99,81,233,129,1,192,168,123,157,113,187,177,51,49,90,62,193,168,66,221,226,105,165,62,1,75,77,70,1,212,184, +6,141,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0,0}; + +const char* PluginGui::cymbal_png = (const char*) resource_PluginGui_cymbal_png; +const int PluginGui::cymbal_pngSize = 237; + +// JUCER_RESOURCE: adlib_png, 1605, "../img/adlib.png" +static const unsigned char resource_PluginGui_adlib_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,85,0,0,0,87,8,2,0,0,0,250,95,158,6,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65, +77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,5,218,73,68,65,84,120,94,237,156,107,79,34,73,20,134,253,15,26,227,7,163,162,130,220,193,75,54,222,88,84, +226,10,49,198,104,212,168,49,70,116,8,1,1,47,136,72,200,122,93,64,205,70,252,201,251,174,117,166,211,67,87,99,119,139,125,153,244,243,145,145,234,122,207,121,79,213,169,238,102,186,108,108,108,108,108, +108,108,108,108,108,100,137,70,163,139,139,139,127,118,148,165,165,165,191,20,19,143,199,167,166,166,104,54,250,51,61,61,93,171,213,26,141,198,63,50,188,190,190,254,171,134,247,247,247,108,54,171,60,4, +6,235,7,161,80,232,250,250,250,246,246,246,111,9,143,143,143,137,68,2,243,251,67,49,179,179,179,61,61,61,52,180,85,184,188,188,124,120,120,32,209,34,52,232,7,8,129,134,42,192,23,105,54,250,19,14,135,171, +213,234,253,253,61,233,22,129,16,104,171,130,92,46,167,170,10,140,212,15,2,129,64,169,84,146,171,130,213,213,85,181,85,208,219,219,75,67,91,133,124,62,15,169,36,90,132,6,253,128,85,1,54,23,74,177,2,224, +2,172,199,52,27,253,9,6,131,149,74,165,77,21,188,188,188,144,191,149,129,42,40,20,10,202,67,96,176,126,224,243,249,138,197,162,92,21,172,173,173,77,78,78,82,126,21,0,11,244,245,245,209,208,86,33,147,201, +200,85,129,90,253,64,91,21,224,91,52,27,253,193,66,136,237,240,238,238,142,116,139,208,86,5,205,102,243,252,252,92,85,21,24,169,31,164,211,233,167,167,39,18,253,43,104,19,214,215,215,21,186,64,72,254, +240,240,48,13,109,9,252,126,255,197,197,5,215,2,202,245,91,178,248,5,82,169,84,27,11,252,127,48,144,225,249,249,153,217,30,139,63,130,56,58,58,74,35,90,11,108,4,56,20,112,155,98,1,105,32,32,254,248,248, +152,217,30,44,47,47,187,221,110,26,209,114,96,234,103,103,103,220,42,0,16,191,185,185,217,82,8,80,222,221,221,77,223,255,13,72,38,147,200,42,41,254,21,174,126,32,36,95,14,85,123,225,202,202,74,52,26,165, +217,232,143,199,227,185,186,186,146,171,2,124,174,97,47,196,128,202,67,96,176,126,224,114,185,208,17,114,59,34,232,223,218,218,82,213,17,205,204,204,12,12,12,208,208,86,193,233,116,226,104,36,93,8,52, +232,7,8,129,134,42,192,223,211,108,12,225,224,224,128,187,16,32,4,248,92,67,21,96,115,81,85,5,6,235,31,27,27,203,229,114,114,29,209,206,206,142,218,42,24,26,26,162,161,173,194,222,222,94,173,86,35,209, +34,52,232,7,218,170,32,22,139,209,108,244,7,11,33,250,57,185,133,144,53,63,228,111,101,160,10,110,110,110,84,85,129,145,250,193,200,200,72,54,155,149,171,130,221,221,221,137,137,9,202,175,2,96,1,12,72, +67,91,133,237,237,109,185,42,80,171,31,176,42,88,88,88,160,20,43,0,46,64,91,77,179,209,31,156,103,208,20,115,143,70,218,170,224,237,237,173,90,173,42,15,129,193,250,129,195,225,200,100,50,220,219,132, +248,112,127,127,255,83,23,176,180,51,160,28,199,109,26,218,42,108,108,108,212,235,117,18,45,66,137,126,75,110,126,45,96,221,66,71,200,173,2,132,0,85,192,165,209,104,192,240,172,249,193,74,62,62,62,78, +195,89,145,193,193,193,116,58,205,173,2,32,141,2,196,99,239,16,182,253,120,60,110,109,253,0,235,144,156,5,208,47,183,84,1,148,247,247,247,211,55,173,14,118,129,72,36,242,227,199,15,110,254,185,250,1,66, +208,210,237,192,5,104,28,105,80,75,128,46,112,126,126,30,78,134,159,229,204,15,152,255,91,246,66,233,225,223,74,250,221,110,55,148,99,217,107,175,92,0,127,115,120,120,40,118,1,242,111,189,195,63,240,122, +189,115,115,115,104,123,160,92,238,118,160,20,169,126,192,214,63,182,4,146,7,62,128,17,240,175,116,61,243,128,206,4,202,113,236,81,165,92,128,91,5,64,122,254,55,163,126,24,190,84,42,105,83,46,128,16,28, +29,29,73,93,96,246,22,200,227,241,124,122,255,95,9,92,253,128,21,130,180,10,12,126,254,205,128,248,114,185,252,117,241,12,86,5,240,17,185,255,39,210,243,191,41,244,251,124,190,14,138,103,32,4,199,199, +199,210,42,48,221,249,63,16,8,84,42,149,206,138,7,92,253,128,85,65,203,225,23,46,152,53,234,249,247,233,233,41,247,14,215,215,145,171,2,233,249,223,48,253,193,96,80,238,229,151,142,128,125,4,45,51,142, +61,148,253,15,96,1,167,211,73,51,48,22,185,247,191,58,5,87,63,64,8,164,37,128,190,131,166,165,15,161,80,72,238,253,191,14,130,16,40,44,1,189,245,163,189,253,214,228,51,160,63,149,74,181,88,0,123,158,193, +37,16,14,135,117,72,62,224,234,7,200,54,165,254,3,189,243,143,101,175,227,123,158,28,112,25,249,254,39,198,251,31,219,30,246,39,154,224,119,98,70,255,99,54,104,245,117,48,63,48,163,255,219,188,225,241, +29,152,206,255,133,66,65,31,243,3,51,250,223,112,253,45,253,15,146,175,107,255,171,155,126,238,17,192,248,254,95,31,253,184,196,201,201,137,116,229,51,190,255,55,92,191,144,124,100,222,128,251,31,58,172, +255,92,231,131,102,179,89,169,84,12,214,143,156,124,235,254,15,241,201,100,82,122,243,3,32,249,166,184,5,36,247,251,191,142,32,167,31,226,133,155,63,200,60,62,161,217,232,207,119,156,127,152,231,25,220, +71,0,229,114,89,184,249,105,176,126,208,217,243,47,196,115,31,129,10,32,249,14,135,131,174,109,6,66,161,16,246,97,204,155,20,124,141,54,250,153,237,65,44,22,195,31,208,229,205,0,187,249,171,57,4,88,65, +200,238,31,112,95,132,18,63,2,134,231,205,165,31,248,124,62,109,247,191,241,21,37,239,191,153,206,246,82,180,61,255,104,163,95,252,139,8,100,222,227,241,208,149,76,11,123,254,85,175,215,113,92,33,125, +34,90,124,46,32,103,120,241,143,255,18,137,68,48,24,164,203,152,25,204,18,39,240,98,177,136,166,13,218,132,64,64,188,242,223,255,129,72,36,98,118,195,183,193,239,247,163,63,65,209,34,135,44,16,224,83, +253,130,225,145,118,203,191,234,199,240,122,189,16,131,64,228,243,121,114,182,12,226,255,255,3,110,183,240,239,223,184,184,92,46,4,130,165,151,11,148,255,62,239,185,217,216,216,216,216,88,133,174,174, +255,0,140,50,58,48,137,109,192,72,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; + +const char* PluginGui::adlib_png = (const char*) resource_PluginGui_adlib_png; +const int PluginGui::adlib_pngSize = 1605; + +// JUCER_RESOURCE: gui_svg, 25404, "../Media/gui.svg" +static const unsigned char resource_PluginGui_gui_svg[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,32,115,116,97,110, +100,97,108,111,110,101,61,34,110,111,34,63,62,10,60,33,68,79,67,84,89,80,69,32,115,118,103,32,80,85,66,76,73,67,32,34,45,47,47,87,51,67,47,47,68,84,68,32,83,86,71,32,49,46,49,47,47,69,78,34,32,34,104, +116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,71,114,97,112,104,105,99,115,47,83,86,71,47,49,46,49,47,68,84,68,47,115,118,103,49,49,46,100,116,100,34,62,10,60,115,118,103,32,119,105,100, +116,104,61,34,49,48,48,37,34,32,104,101,105,103,104,116,61,34,49,48,48,37,34,32,118,105,101,119,66,111,120,61,34,48,32,48,32,56,54,48,32,53,56,48,34,32,118,101,114,115,105,111,110,61,34,49,46,49,34,32, +120,109,108,110,115,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,50,48,48,48,47,115,118,103,34,32,120,109,108,110,115,58,120,108,105,110,107,61,34,104,116,116,112,58,47,47,119, +119,119,46,119,51,46,111,114,103,47,49,57,57,57,47,120,108,105,110,107,34,32,120,109,108,58,115,112,97,99,101,61,34,112,114,101,115,101,114,118,101,34,32,120,109,108,110,115,58,115,101,114,105,102,61, +34,104,116,116,112,58,47,47,119,119,119,46,115,101,114,105,102,46,99,111,109,47,34,32,115,116,121,108,101,61,34,102,105,108,108,45,114,117,108,101,58,101,118,101,110,111,100,100,59,99,108,105,112,45,114, +117,108,101,58,101,118,101,110,111,100,100,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,114,111,117,110,100,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,114,111,117,110, +100,59,115,116,114,111,107,101,45,109,105,116,101,114,108,105,109,105,116,58,49,46,53,59,34,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48, +44,54,46,57,56,55,57,53,44,48,44,48,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,34,32,121,61,34,48,34,32,119,105,100,116,104,61,34,56,54,48,34,32,104,101,105,103,104,116,61,34, +56,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,53,44,49,53,44,49,53,41,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, +34,109,97,116,114,105,120,40,49,46,48,48,51,54,52,44,48,44,48,44,49,46,50,56,57,57,56,44,45,50,46,48,55,50,55,51,44,45,49,51,46,48,48,56,51,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120, +61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103, +98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,55,51,112,120,59,34,47,62,10,32,32,32,32,60,47, +103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,55,56,55,56,55,57,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,53,46,52,50,52,50,44,49,48,46, +52,52,51,56,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56, +46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116, +104,58,49,55,46,48,56,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102, +111,114,109,61,34,109,97,116,114,105,120,40,48,46,52,56,57,54,57,55,44,48,44,48,44,54,46,57,57,48,56,52,44,56,46,50,48,54,48,54,44,45,53,51,46,51,54,55,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101, +99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108, +58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,48,46,52,112,120,59,34,47,62,10,32,32,32, +32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,52,56,57,54,57,55,44,48,44,48,44,54,46,57,57,48,56,52,44,52,51,50,46,50,48,54,44,45,53, +51,46,51,54,55,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34, +52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45, +119,105,100,116,104,58,48,46,52,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,49,54,57,54,57,55,44,48, +44,48,44,50,46,50,56,56,54,55,44,55,48,50,46,54,48,54,44,51,57,57,46,48,56,50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100, +116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98, +40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109, +61,34,109,97,116,114,105,120,40,48,46,50,50,55,56,55,57,44,48,44,48,44,50,46,50,56,56,54,55,44,52,57,51,46,52,52,50,44,51,57,57,46,48,56,50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120, +61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103, +98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47, +103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,50,51,56,49,51,44,48,44,48,44,50,46,50,56,56,54,55,44,50,55,54,46,57,50,51,44,51,57,57,46,48,56, +50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54, +51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116, +104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,50,57,52,57,48,51,44,48,44,48,44,50, +46,50,56,56,54,55,44,49,50,46,55,52,50,53,44,51,57,57,46,48,56,50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61, +34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44, +51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, +97,116,114,105,120,40,48,46,48,56,57,54,57,55,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,53,46,50,48,54,49,44,56,57,46,57,53,48,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34, +50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40, +49,44,48,44,49,41,59,115,116,114,111,107,101,58,98,108,97,99,107,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,54,46,53,52,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58, +115,113,117,97,114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111, +114,109,61,34,109,97,116,114,105,120,40,48,46,48,54,53,52,53,52,53,44,48,44,48,44,48,46,49,52,53,54,52,50,44,52,53,49,46,54,57,49,44,56,57,46,52,50,57,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101, +99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108, +58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,55,46,55,49,112,120,59,34,47,62,10,32,32,32,32, +60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,56,56,52,49,56,52,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,56,57,46,50,51,50,44,52, +52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34, +52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105, +100,116,104,58,49,54,46,54,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114, +59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,57,51,50,54,54,57,44,48,44,48,44,48,46,49,52,53,54,52,50,44, +53,48,53,46,49,51,53,44,52,52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104, +101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116, +114,111,107,101,45,119,105,100,116,104,58,49,54,46,51,53,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111, +105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,51,54,53,54,51,49,44,48,44,48, +44,48,46,49,52,53,54,52,50,44,55,49,51,46,49,49,51,44,52,52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100, +116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98, +40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,56,46,56,52,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,115,116,114,111,107, +101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46, +49,48,53,51,56,56,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,51,46,56,57,50,50,44,52,52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48, +46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116, +114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,53,46,55,51,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97, +114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, +97,116,114,105,120,40,49,44,48,44,48,44,49,44,45,49,52,54,46,56,48,56,44,45,56,52,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56, +44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53, +53,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44, +45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48, +46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52, +54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56, +67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48, +46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44, +45,48,46,50,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10, +32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,55,55,50,44,49,48, +52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,51,76,48,46,50,55,53,44,45,48,46,51,76,48,46,50,55,53,44,48, +76,48,46,51,56,55,44,48,76,48,46,51,56,55,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44, +45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111, +110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49, +56,44,49,57,50,46,52,53,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56,52,44,45,48,46,55,76,48,46,49,50, +51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46,49,51,49,44,45,48,46,49,50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48,76,48,46,51,57,54,44,48,90,77,48, +46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76,48,46,50,53,49,44,45,48,46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108, +58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103, +32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,57,46,55,56,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112, +97,116,104,32,100,61,34,77,48,46,49,51,56,44,45,48,46,53,48,55,76,48,46,50,55,53,44,48,76,48,46,51,56,56,44,48,76,48,46,51,56,56,44,45,48,46,55,76,48,46,50,57,44,45,48,46,55,76,48,46,50,57,44,45,48,46, +50,56,49,76,48,46,49,55,55,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,56,44,48,76,48,46,49,51,56,44,45,48,46,53,48,55,90,34,32,115,116,121,108,101,61,34,102, +105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32, +32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,55,46,52,55,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,112,97,116,104,32,100,61,34,77,48,46,49,51,56,44,45,48,46,53,48,55,76,48,46,50,55,53,44,48,76,48,46,51,56,56,44,48,76,48,46,51,56,56,44,45,48,46,55,76,48,46,50,57,44,45,48,46,55,76,48,46,50,57,44, +45,48,46,50,56,49,76,48,46,49,55,55,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,56,44,48,76,48,46,49,51,56,44,45,48,46,53,48,55,90,34,32,115,116,121,108,101, +61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32, +32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,53,46,49,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55, +76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45, +48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110, +122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44, +50,50,49,46,55,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,51,49,44,48,76,48, +46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53, +48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111, +114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,50,55,46,56,56,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48, +46,48,50,54,44,45,48,46,53,51,50,67,48,46,48,50,54,44,45,48,46,51,51,50,32,48,46,50,52,49,44,45,48,46,51,48,53,32,48,46,50,52,49,44,45,48,46,49,54,49,67,48,46,50,52,49,44,45,48,46,49,49,49,32,48,46,50, +49,57,44,45,48,46,48,57,51,32,48,46,49,56,52,44,45,48,46,48,57,51,67,48,46,49,52,57,44,45,48,46,48,57,51,32,48,46,49,50,55,44,45,48,46,49,49,49,32,48,46,49,50,55,44,45,48,46,49,54,49,76,48,46,49,50,55, +44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,49,54,56,67,48,46,48,50,51,44,45,48,46,48,53,54,32,48,46,48,55,57,44,48,46,48,48,56,32,48,46,49,56,55,44,48,46, +48,48,56,67,48,46,50,57,53,44,48,46,48,48,56,32,48,46,51,53,49,44,45,48,46,48,53,54,32,48,46,51,53,49,44,45,48,46,49,54,56,67,48,46,51,53,49,44,45,48,46,51,54,56,32,48,46,49,51,54,44,45,48,46,51,57,53, +32,48,46,49,51,54,44,45,48,46,53,51,57,67,48,46,49,51,54,44,45,48,46,53,56,57,32,48,46,49,53,54,44,45,48,46,54,48,56,32,48,46,49,57,49,44,45,48,46,54,48,56,67,48,46,50,50,54,44,45,48,46,54,48,56,32,48, +46,50,52,54,44,45,48,46,53,56,57,32,48,46,50,52,54,44,45,48,46,53,51,57,76,48,46,50,52,54,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,51,50,67,48,46,51,53,44,45,48, +46,54,52,52,32,48,46,50,57,53,44,45,48,46,55,48,56,32,48,46,49,56,56,44,45,48,46,55,48,56,67,48,46,48,56,49,44,45,48,46,55,48,56,32,48,46,48,50,54,44,45,48,46,54,52,52,32,48,46,48,50,54,44,45,48,46,53, +51,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32, +32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,45,49,52,55,44,45,52,46,56,48,49, +48,56,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34, +62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,51,44,45,48,46,50,48,51,76,48,46,49,57,50,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48, +76,48,46,49,51,53,44,48,76,48,46,49,51,53,44,45,48,46,52,57,53,76,48,46,50,49,55,44,48,76,48,46,51,50,49,44,48,76,48,46,51,57,55,44,45,48,46,53,48,50,76,48,46,51,57,55,44,48,76,48,46,53,48,49,44,48,76, +48,46,53,48,49,44,45,48,46,55,76,48,46,51,52,56,44,45,48,46,55,76,48,46,50,55,51,44,45,48,46,50,48,51,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41, +59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, +97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,55,46,53,54,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45, +48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32, +48,46,51,54,53,44,45,48,46,48,53,54,32,48,46,51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48,46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46, +49,57,56,44,45,48,46,55,48,56,67,48,46,48,57,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52, +49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44, +45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48, +46,48,57,50,67,48,46,49,54,51,44,45,48,46,48,57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54, +53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110, +115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,52,46,54,57,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61, +34,77,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,50,49,52,44,48,67,48,46,51,50,52,44,48,32,48,46,51,55,56,44,45,48,46,48,54,49,32,48,46,51,55,56,44,45,48,46,49,55,51,76,48,46,51,55,56,44, +45,48,46,53,50,55,67,48,46,51,55,56,44,45,48,46,54,51,57,32,48,46,51,50,52,44,45,48,46,55,32,48,46,50,49,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,49, +50,44,45,48,46,54,67,48,46,50,52,55,44,45,48,46,54,32,48,46,50,54,56,44,45,48,46,53,56,50,32,48,46,50,54,56,44,45,48,46,53,51,50,76,48,46,50,54,56,44,45,48,46,49,54,56,67,48,46,50,54,56,44,45,48,46,49, +49,56,32,48,46,50,52,55,44,45,48,46,49,32,48,46,50,49,50,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40, +54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110, +115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,50,46,48,51,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100, +61,34,77,48,46,49,52,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,49,54,55,67,48,46,48,51,53,44,45,48,46,48,53,53,32,48,46,48,57,49,44,48,46,48,48,57,32,48,46,49,57, +57,44,48,46,48,48,57,67,48,46,51,48,55,44,48,46,48,48,57,32,48,46,51,54,51,44,45,48,46,48,53,53,32,48,46,51,54,51,44,45,48,46,49,54,55,76,48,46,51,54,51,44,45,48,46,55,76,48,46,50,53,57,44,45,48,46,55, +76,48,46,50,53,57,44,45,48,46,49,54,67,48,46,50,53,57,44,45,48,46,49,49,32,48,46,50,51,55,44,45,48,46,48,57,50,32,48,46,50,48,50,44,45,48,46,48,57,50,67,48,46,49,54,55,44,45,48,46,48,57,50,32,48,46,49, +52,53,44,45,48,46,49,49,32,48,46,49,52,53,44,45,48,46,49,54,76,48,46,49,52,53,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105, +108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114, +105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,57,46,49,57,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52,44,45,48,46,55,76,48, +46,48,52,44,48,76,48,46,51,51,49,44,48,76,48,46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102, +105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32, +32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,53,46,51,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, +60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56,52,44,45,48,46,55,76,48,46,49,50,51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46,49,51,49,44,45,48,46,49, +50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48,76,48,46,51,57,54,44,48,90,77,48,46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76,48,46,50,53,49,44,45,48, +46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110, +122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44, +50,50,50,46,54,50,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,54,76,48,46,49, +50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,55, +90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32, +32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,50,57,46,48,51,52,44,49,48,52,46,55,57,51,41, +34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46, +48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32,48,46,51,54,53,44,45,48,46,48,53,54,32,48,46,51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48, +46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46,49,57,56,44,45,48,46,55,48,56,67,48,46,48,57,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52, +52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56, +32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48, +46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48,46,48,57,50,67,48,46,49,54,51,44,45,48,46,48,57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49, +52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34, +47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,51,54,46,49,54,50, +44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55, +44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51, +52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55, +32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46, +50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46, +50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50, +53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44, +45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122, +101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44, +49,44,50,55,57,44,45,52,46,56,48,49,48,56,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56, +50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,50,54,49,76,48,46,50,53, +53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44,45,48,46,48,57,51,32,48,46,49,52,49,44, +45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48, +46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,52, +54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56,67,48,46,48,56,55,44,45,48,46,55,48,56, +32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,56,55,44,48,46,48,48,56,32,48,46, +49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44,45,48,46,50,54,49,90,34,32,115,116,121, +108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10, +32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,55,55,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56,52,44,45,48,46,55,76,48,46,49,50,51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46, +49,51,49,44,45,48,46,49,50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48,76,48,46,51,57,54,44,48,90,77,48,46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76, +48,46,50,53,49,44,45,48,46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117, +108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56, +44,48,44,48,44,49,56,44,49,57,50,46,48,57,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46, +51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48, +46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53, +51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45, +48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54, +67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48, +46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49, +57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105, +108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114, +105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,57,46,51,51,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56, +50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46, +51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54, +57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76, +48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44, +45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44, +45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51, +56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44, +54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109, +61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,54,46,53,55,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46,48,52,34,32, +121,61,34,45,48,46,55,34,32,119,105,100,116,104,61,34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54, +53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, +34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,57,46,57,57,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45, +48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48, +46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116, +121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, +10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,54,46,54,49,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32, +32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48, +46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53, +32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48, +54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56, +53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55, +44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57, +44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46, +54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32, +32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,45,49,52,54,46,57,50,57,44,51,52,55, +46,57,57,49,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51, +41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46, +55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46, +51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108, +45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, +40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,52,52,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,51,56,57,76,48,46, +49,53,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,57,76,48, +46,50,57,50,44,45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,51,56,57,76,48,46,49,53,44,45,48,46,51,56,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54, +53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, +34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,48,46,54,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45, +48,46,51,56,57,76,48,46,49,53,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44, +45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,51,56,57,76,48,46,49,53,44,45,48,46,51,56,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40, +54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110, +115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,54,46,56,51,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100, +61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44, +48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48, +46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32, +32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,51,46,52,53,54,44,49,48,52,46, +55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,49,54, +49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44,45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32, +48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46, +50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53, +57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56,67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44, +45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48, +48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44,45,48,46,50,54,49,90,34,32,115,116,121,108,101,61,34,102,105, +108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32, +32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,48,46,52,48,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32, +32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,54,76,48,46,49,50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44, +45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44, +54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109, +61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,57,46,54,48,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52, +44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,50,49,52,44,48,67,48,46,51,50,52,44,48,32,48,46,51,55,56,44,45,48,46,48,54,49,32,48,46,51,55,56,44,45,48,46,49,55,51,76,48,46,51,55,56,44,45,48,46,53,50,55, +67,48,46,51,55,56,44,45,48,46,54,51,57,32,48,46,51,50,52,44,45,48,46,55,32,48,46,50,49,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,49,50,44,45,48,46,54, +67,48,46,50,52,55,44,45,48,46,54,32,48,46,50,54,56,44,45,48,46,53,56,50,32,48,46,50,54,56,44,45,48,46,53,51,50,76,48,46,50,54,56,44,45,48,46,49,54,56,67,48,46,50,54,56,44,45,48,46,49,49,56,32,48,46,50, +52,55,44,45,48,46,49,32,48,46,50,49,50,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48, +44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114, +109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,50,54,46,57,52,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49, +53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52, +44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34, +32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32, +60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,51,51,46,53,55,44,49,48,52,46,55,57,51,41,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,48,50,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50, +54,51,76,48,46,50,48,50,44,45,48,46,50,54,51,67,48,46,51,49,50,44,45,48,46,50,54,51,32,48,46,51,54,54,44,45,48,46,51,50,52,32,48,46,51,54,54,44,45,48,46,52,51,54,76,48,46,51,54,54,44,45,48,46,53,50,55, +67,48,46,51,54,54,44,45,48,46,54,51,57,32,48,46,51,49,50,44,45,48,46,55,32,48,46,50,48,50,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,50,44,45,48,46,54,67,48,46,50,51,55,44,45,48,46, +54,32,48,46,50,53,54,44,45,48,46,53,56,52,32,48,46,50,53,54,44,45,48,46,53,51,52,76,48,46,50,53,54,44,45,48,46,52,50,57,67,48,46,50,53,54,44,45,48,46,51,55,57,32,48,46,50,51,55,44,45,48,46,51,54,51,32, +48,46,50,48,50,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41, +59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, +97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,52,48,46,52,52,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45, +48,46,55,76,48,46,48,48,56,44,45,48,46,54,76,48,46,49,50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51, +52,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111, +110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49, +56,44,50,52,54,46,56,53,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,51,76,48,46,50,55,53,44, +45,48,46,51,76,48,46,50,55,53,44,48,76,48,46,51,56,55,44,48,76,48,46,51,56,55,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,52,76,48,46,49, +53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108, +108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34, +109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,49,49,56,46,52,51,54,44,51,52,55,46,57,57,49,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105, +120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56, +52,44,45,48,46,55,76,48,46,49,50,51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46,49,51,49,44,45,48,46,49,50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48, +76,48,46,51,57,54,44,48,90,77,48,46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76,48,46,50,53,49,44,45,48,46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116, +121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, +10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,53,46,49,53,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,51,49,44,48,76,48,46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46, +49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110, +122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44, +49,57,49,46,50,53,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,48,53,44,45,48,46,51,57,76,48,46,50,48,53,44,45,48,46,50,57,76,48, +46,50,53,53,44,45,48,46,50,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54, +51,44,45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44, +45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48, +46,52,54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55, +48,56,67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54, +32,48,46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53, +57,44,45,48,46,51,57,76,48,46,50,48,53,44,45,48,46,51,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110, +111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44, +49,56,44,49,57,56,46,50,55,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46, +49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32,48,46,51,54,53,44,45,48,46,48,53,54,32,48,46, +51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48,46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46,49,57,56,44,45,48,46,55,48,56,67,48,46,48,57, +44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44, +45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48, +46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48,46,48,57,50,67,48,46,49,54,51,44,45,48,46,48, +57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108, +45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, +40,49,56,44,48,44,48,44,49,56,44,50,48,53,46,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48, +46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45, +48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46, +53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44, +45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56, +54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32, +48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46, +49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102, +105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116, +114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,50,46,54,51,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46,48,52,34,32,121,61,34,45, +48,46,55,34,32,119,105,100,116,104,61,34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102, +105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116, +114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,54,46,48,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45,48,46,55, +76,48,46,48,48,56,44,45,48,46,54,76,48,46,49,50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51,52,56,44, +45,48,46,55,76,48,46,48,48,56,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122, +101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50, +50,50,46,52,54,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,51,76,48,46,50,55,53,44,45,48,46, +51,76,48,46,50,55,53,44,48,76,48,46,51,56,55,44,48,76,48,46,51,56,55,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,52,76,48,46,49,53,44,45, +48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45, +114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, +40,49,56,44,48,44,48,44,49,56,44,50,51,48,46,49,53,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,51,44,45,48,46,50,48,51,76,48,46, +49,57,50,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,53,44,48,76,48,46,49,51,53,44,45,48,46,52,57,53,76,48,46,50,49,55,44,48,76,48,46,51,50,49,44,48,76,48,46, +51,57,55,44,45,48,46,53,48,50,76,48,46,51,57,55,44,48,76,48,46,53,48,49,44,48,76,48,46,53,48,49,44,45,48,46,55,76,48,46,51,52,56,44,45,48,46,55,76,48,46,50,55,51,44,45,48,46,50,48,51,90,34,32,115,116, +121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, +10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,51,51,52,46,54,52,52,44,51,52,56,46,52,57,50,41,34,62,10, +32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,48,50,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,54,51,76,48, +46,50,48,50,44,45,48,46,50,54,51,67,48,46,51,49,50,44,45,48,46,50,54,51,32,48,46,51,54,54,44,45,48,46,51,50,52,32,48,46,51,54,54,44,45,48,46,52,51,54,76,48,46,51,54,54,44,45,48,46,53,50,55,67,48,46,51, +54,54,44,45,48,46,54,51,57,32,48,46,51,49,50,44,45,48,46,55,32,48,46,50,48,50,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,50,44,45,48,46,54,67,48,46,50,51,55,44,45,48,46,54,32,48,46, +50,53,54,44,45,48,46,53,56,52,32,48,46,50,53,54,44,45,48,46,53,51,52,76,48,46,50,53,54,44,45,48,46,52,50,57,67,48,46,50,53,54,44,45,48,46,51,55,57,32,48,46,50,51,55,44,45,48,46,51,54,51,32,48,46,50,48, +50,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108, +108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105, +120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,55,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46, +49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44, +45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102, +105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32, +32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,49,46,51,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32, +32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46, +51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44, +45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76, +48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44, +45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49, +53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57, +67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116, +121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, +10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,56,46,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, +32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46, +49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44,45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54, +49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32, +48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46, +51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56,67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51, +49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46, +48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44,45,48,46,50,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53, +44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115, +102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,53,46,53,48,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34, +77,48,46,49,52,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,49,54,55,67,48,46,48,51,53,44,45,48,46,48,53,53,32,48,46,48,57,49,44,48,46,48,48,57,32,48,46,49,57,57,44, +48,46,48,48,57,67,48,46,51,48,55,44,48,46,48,48,57,32,48,46,51,54,51,44,45,48,46,48,53,53,32,48,46,51,54,51,44,45,48,46,49,54,55,76,48,46,51,54,51,44,45,48,46,55,76,48,46,50,53,57,44,45,48,46,55,76,48, +46,50,53,57,44,45,48,46,49,54,67,48,46,50,53,57,44,45,48,46,49,49,32,48,46,50,51,55,44,45,48,46,48,57,50,32,48,46,50,48,50,44,45,48,46,48,57,50,67,48,46,49,54,55,44,45,48,46,48,57,50,32,48,46,49,52,53, +44,45,48,46,49,49,32,48,46,49,52,53,44,45,48,46,49,54,76,48,46,49,52,53,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108, +108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105, +120,40,49,56,44,48,44,48,44,49,56,44,50,49,50,46,54,55,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,50,54,44,45,48,46,53,51,50, +67,48,46,48,50,54,44,45,48,46,51,51,50,32,48,46,50,52,49,44,45,48,46,51,48,53,32,48,46,50,52,49,44,45,48,46,49,54,49,67,48,46,50,52,49,44,45,48,46,49,49,49,32,48,46,50,49,57,44,45,48,46,48,57,51,32,48, +46,49,56,52,44,45,48,46,48,57,51,67,48,46,49,52,57,44,45,48,46,48,57,51,32,48,46,49,50,55,44,45,48,46,49,49,49,32,48,46,49,50,55,44,45,48,46,49,54,49,76,48,46,49,50,55,44,45,48,46,50,49,49,76,48,46,48, +50,51,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,49,54,56,67,48,46,48,50,51,44,45,48,46,48,53,54,32,48,46,48,55,57,44,48,46,48,48,56,32,48,46,49,56,55,44,48,46,48,48,56,67,48,46,50,57,53,44,48, +46,48,48,56,32,48,46,51,53,49,44,45,48,46,48,53,54,32,48,46,51,53,49,44,45,48,46,49,54,56,67,48,46,51,53,49,44,45,48,46,51,54,56,32,48,46,49,51,54,44,45,48,46,51,57,53,32,48,46,49,51,54,44,45,48,46,53, +51,57,67,48,46,49,51,54,44,45,48,46,53,56,57,32,48,46,49,53,54,44,45,48,46,54,48,56,32,48,46,49,57,49,44,45,48,46,54,48,56,67,48,46,50,50,54,44,45,48,46,54,48,56,32,48,46,50,52,54,44,45,48,46,53,56,57, +32,48,46,50,52,54,44,45,48,46,53,51,57,76,48,46,50,52,54,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,51,50,67,48,46,51,53,44,45,48,46,54,52,52,32,48,46,50,57,53,44, +45,48,46,55,48,56,32,48,46,49,56,56,44,45,48,46,55,48,56,67,48,46,48,56,49,44,45,48,46,55,48,56,32,48,46,48,50,54,44,45,48,46,54,52,52,32,48,46,48,50,54,44,45,48,46,53,51,50,90,34,32,115,116,121,108,101, +61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32, +32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,57,46,52,48,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32, +32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,50,54,44,45,48,46,53,51,50,67,48,46,48,50,54,44,45,48,46,51,51,50,32,48,46,50,52,49,44,45,48,46,51,48,53,32,48,46,50,52,49,44,45,48,46,49,54,49, +67,48,46,50,52,49,44,45,48,46,49,49,49,32,48,46,50,49,57,44,45,48,46,48,57,51,32,48,46,49,56,52,44,45,48,46,48,57,51,67,48,46,49,52,57,44,45,48,46,48,57,51,32,48,46,49,50,55,44,45,48,46,49,49,49,32,48, +46,49,50,55,44,45,48,46,49,54,49,76,48,46,49,50,55,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,49,54,56,67,48,46,48,50,51,44,45,48,46,48,53,54,32,48,46,48, +55,57,44,48,46,48,48,56,32,48,46,49,56,55,44,48,46,48,48,56,67,48,46,50,57,53,44,48,46,48,48,56,32,48,46,51,53,49,44,45,48,46,48,53,54,32,48,46,51,53,49,44,45,48,46,49,54,56,67,48,46,51,53,49,44,45,48, +46,51,54,56,32,48,46,49,51,54,44,45,48,46,51,57,53,32,48,46,49,51,54,44,45,48,46,53,51,57,67,48,46,49,51,54,44,45,48,46,53,56,57,32,48,46,49,53,54,44,45,48,46,54,48,56,32,48,46,49,57,49,44,45,48,46,54, +48,56,67,48,46,50,50,54,44,45,48,46,54,48,56,32,48,46,50,52,54,44,45,48,46,53,56,57,32,48,46,50,52,54,44,45,48,46,53,51,57,76,48,46,50,52,54,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,49,76,48,46, +51,53,44,45,48,46,53,51,50,67,48,46,51,53,44,45,48,46,54,52,52,32,48,46,50,57,53,44,45,48,46,55,48,56,32,48,46,49,56,56,44,45,48,46,55,48,56,67,48,46,48,56,49,44,45,48,46,55,48,56,32,48,46,48,50,54,44, +45,48,46,54,52,52,32,48,46,48,50,54,44,45,48,46,53,51,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110, +111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44, +49,56,44,50,50,54,46,49,51,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46,48,52,34,32,121,61,34,45,48,46,55,34,32,119,105,100,116,104,61, +34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110, +111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44, +49,56,44,50,50,57,46,53,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46, +49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32,48,46,51,54,53,44,45,48,46,48,53,54,32,48,46, +51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48,46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46,49,57,56,44,45,48,46,55,48,56,67,48,46,48,57, +44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44, +45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48, +46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48,46,48,57,50,67,48,46,49,54,51,44,45,48,46,48, +57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108, +45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, +40,49,56,44,48,44,48,44,49,56,44,50,51,54,46,54,56,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,51,56,44,45,48,46,53,48,55,76,48, +46,50,55,53,44,48,76,48,46,51,56,56,44,48,76,48,46,51,56,56,44,45,48,46,55,76,48,46,50,57,44,45,48,46,55,76,48,46,50,57,44,45,48,46,50,56,49,76,48,46,49,55,55,44,45,48,46,55,76,48,46,48,51,57,44,45,48, +46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,56,44,48,76,48,46,49,51,56,44,45,48,46,53,48,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105, +108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, +34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,53,52,48,46,54,52,52,44,51,52,56,46,52,57,50,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114, +105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,51,56,57, +76,48,46,49,53,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56, +57,76,48,46,50,57,50,44,45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,51,56,57,76,48,46,49,53,44,45,48,46,51,56,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53, +48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111, +114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,48,49,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46, +48,52,34,32,121,61,34,45,48,46,55,34,32,119,105,100,116,104,61,34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49, +53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111, +114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,55,46,52,51,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48, +46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,51,49,44,48,76,48,46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32, +115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60, +47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,51,46,53,51,56,44,49,48,52,46,55,57,51,41,34,62,10, +32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46, +48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76, +48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117, +108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,60,47,115,118,103,62,10,0,0}; + +const char* PluginGui::gui_svg = (const char*) resource_PluginGui_gui_svg; +const int PluginGui::gui_svgSize = 25404; + + +//[EndFile] You can add extra defines here... +//[/EndFile] + diff --git a/Source/PluginGui.cpp b/Source/PluginGui.cpp index a2ea30f..58244ee 100644 --- a/Source/PluginGui.cpp +++ b/Source/PluginGui.cpp @@ -7,12 +7,12 @@ the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. - Created with Projucer version: 5.4.7 + Created with Projucer version: 6.0.5 ------------------------------------------------------------------------------ The Projucer is part of the JUCE library. - Copyright (c) 2017 - ROLI Ltd. + Copyright (c) 2020 - Raw Material Software Limited. ============================================================================== */ @@ -87,9 +87,9 @@ void PluginGui::updateFromParameters() case 4: cymbalButton->setToggleState(true, dontSendNotification); break; case 5: hiHatButton->setToggleState(true, dontSendNotification); break; } - + //DBG(" multipler " << processor->getEnumParameter("Modulator Frequency Multiplier")); - + int val = processor->getEnumParameter("Modulator Frequency Multiplier"); if (val <=10 ){ frequencyComboBox->setSelectedItemIndex (val, @@ -192,761 +192,761 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) //[/Constructor_pre] - groupComponent2.reset (new GroupComponent ("new group", - TRANS("Carrier"))); + groupComponent2.reset (new juce::GroupComponent ("new group", + TRANS("Carrier"))); addAndMakeVisible (groupComponent2.get()); - groupComponent2->setTextLabelPosition (Justification::centredLeft); - groupComponent2->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); - groupComponent2->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + groupComponent2->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent2->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent2->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent2->setBounds (440, 88, 408, 344); - groupComponent4.reset (new GroupComponent ("new group", - TRANS("Channels"))); + groupComponent4.reset (new juce::GroupComponent ("new group", + TRANS("Channels"))); addAndMakeVisible (groupComponent4.get()); - groupComponent4->setTextLabelPosition (Justification::centredLeft); - groupComponent4->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); - groupComponent4->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + groupComponent4->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent4->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent4->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent4->setBounds (16, 8, 832, 64); - groupComponent11.reset (new GroupComponent ("new group", - TRANS("Percussion"))); + groupComponent11.reset (new juce::GroupComponent ("new group", + TRANS("Percussion"))); addAndMakeVisible (groupComponent11.get()); - groupComponent11->setTextLabelPosition (Justification::centredLeft); - groupComponent11->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); - groupComponent11->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + groupComponent11->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent11->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent11->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent11->setBounds (496, 440, 192, 120); - groupComponent10.reset (new GroupComponent ("new group", - TRANS("Algorithm"))); + groupComponent10.reset (new juce::GroupComponent ("new group", + TRANS("Algorithm"))); addAndMakeVisible (groupComponent10.get()); - groupComponent10->setTextLabelPosition (Justification::centredLeft); - groupComponent10->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); - groupComponent10->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + groupComponent10->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent10->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent10->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent10->setBounds (280, 440, 200, 120); - groupComponent9.reset (new GroupComponent ("new group", - TRANS("File"))); + groupComponent9.reset (new juce::GroupComponent ("new group", + TRANS("File"))); addAndMakeVisible (groupComponent9.get()); - groupComponent9->setTextLabelPosition (Justification::centredLeft); - groupComponent9->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); - groupComponent9->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + groupComponent9->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent9->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent9->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent9->setBounds (704, 440, 144, 120); - groupComponent.reset (new GroupComponent ("new group", - TRANS("Modulator"))); + groupComponent.reset (new juce::GroupComponent ("new group", + TRANS("Modulator"))); addAndMakeVisible (groupComponent.get()); - groupComponent->setTextLabelPosition (Justification::centredLeft); - groupComponent->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); - groupComponent->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + groupComponent->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent->setBounds (16, 88, 408, 344); - frequencyComboBox.reset (new ComboBox ("frequency combo box")); + frequencyComboBox.reset (new juce::ComboBox ("frequency combo box")); addAndMakeVisible (frequencyComboBox.get()); frequencyComboBox->setEditableText (false); - frequencyComboBox->setJustificationType (Justification::centredLeft); - frequencyComboBox->setTextWhenNothingSelected (String()); + frequencyComboBox->setJustificationType (juce::Justification::centredLeft); + frequencyComboBox->setTextWhenNothingSelected (juce::String()); frequencyComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); frequencyComboBox->addListener (this); frequencyComboBox->setBounds (200, 168, 64, 24); - frequencyLabel.reset (new Label ("frequency label", - TRANS("Frequency Multiplier"))); + frequencyLabel.reset (new juce::Label ("frequency label", + TRANS("Frequency Multiplier"))); addAndMakeVisible (frequencyLabel.get()); frequencyLabel->setTooltip (TRANS("Multiplier applied to base note frequency")); - frequencyLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - frequencyLabel->setJustificationType (Justification::centredLeft); + frequencyLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel->setJustificationType (juce::Justification::centredLeft); frequencyLabel->setEditable (false, false, false); - frequencyLabel->setColour (Label::textColourId, Colour (0xff007f00)); - frequencyLabel->setColour (TextEditor::textColourId, Colours::black); - frequencyLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + frequencyLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel->setBounds (40, 168, 152, 24); - aSlider.reset (new Slider ("a slider")); + aSlider.reset (new juce::Slider ("a slider")); addAndMakeVisible (aSlider.get()); aSlider->setTooltip (TRANS("Envelope attack rate")); aSlider->setRange (0, 15, 1); - aSlider->setSliderStyle (Slider::LinearVertical); - aSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 30, 20); - aSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); - aSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); - aSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - aSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); - aSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - aSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + aSlider->setSliderStyle (juce::Slider::LinearVertical); + aSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); + aSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + aSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + aSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + aSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + aSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + aSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); aSlider->addListener (this); aSlider->setBounds (40, 200, 30, 104); - aLabel.reset (new Label ("a label", - TRANS("A"))); + aLabel.reset (new juce::Label ("a label", + TRANS("A"))); addAndMakeVisible (aLabel.get()); aLabel->setTooltip (TRANS("Attack rate")); - aLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - aLabel->setJustificationType (Justification::centred); + aLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + aLabel->setJustificationType (juce::Justification::centred); aLabel->setEditable (false, false, false); - aLabel->setColour (Label::textColourId, Colour (0xff007f00)); - aLabel->setColour (TextEditor::textColourId, Colours::black); - aLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + aLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + aLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + aLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); aLabel->setBounds (40, 304, 30, 24); - dSlider.reset (new Slider ("d slider")); + dSlider.reset (new juce::Slider ("d slider")); addAndMakeVisible (dSlider.get()); dSlider->setTooltip (TRANS("Envelope decay rate")); dSlider->setRange (0, 15, 1); - dSlider->setSliderStyle (Slider::LinearVertical); - dSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 30, 20); - dSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); - dSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); - dSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - dSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); - dSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - dSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + dSlider->setSliderStyle (juce::Slider::LinearVertical); + dSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); + dSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + dSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + dSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + dSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + dSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + dSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); dSlider->addListener (this); dSlider->setBounds (88, 200, 30, 104); - dLabel.reset (new Label ("d label", - TRANS("D"))); + dLabel.reset (new juce::Label ("d label", + TRANS("D"))); addAndMakeVisible (dLabel.get()); dLabel->setTooltip (TRANS("Decay rate")); - dLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dLabel->setJustificationType (Justification::centred); + dLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dLabel->setJustificationType (juce::Justification::centred); dLabel->setEditable (false, false, false); - dLabel->setColour (Label::textColourId, Colour (0xff007f00)); - dLabel->setColour (TextEditor::textColourId, Colours::black); - dLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dLabel->setBounds (88, 304, 30, 24); - sSlider.reset (new Slider ("s slider")); + sSlider.reset (new juce::Slider ("s slider")); addAndMakeVisible (sSlider.get()); sSlider->setTooltip (TRANS("Envelope sustain level")); sSlider->setRange (0, 15, 1); - sSlider->setSliderStyle (Slider::LinearVertical); - sSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 30, 20); - sSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); - sSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); - sSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - sSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); - sSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - sSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + sSlider->setSliderStyle (juce::Slider::LinearVertical); + sSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); + sSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + sSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + sSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + sSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + sSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + sSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); sSlider->addListener (this); sSlider->setBounds (136, 200, 30, 104); - dLabel2.reset (new Label ("d label", - TRANS("S"))); + dLabel2.reset (new juce::Label ("d label", + TRANS("S"))); addAndMakeVisible (dLabel2.get()); dLabel2->setTooltip (TRANS("Sustain level")); - dLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dLabel2->setJustificationType (Justification::centred); + dLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dLabel2->setJustificationType (juce::Justification::centred); dLabel2->setEditable (false, false, false); - dLabel2->setColour (Label::textColourId, Colour (0xff007f00)); - dLabel2->setColour (TextEditor::textColourId, Colours::black); - dLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dLabel2->setBounds (136, 304, 30, 24); - rSlider.reset (new Slider ("r slider")); + rSlider.reset (new juce::Slider ("r slider")); addAndMakeVisible (rSlider.get()); rSlider->setTooltip (TRANS("Envelope release rate")); rSlider->setRange (0, 15, 1); - rSlider->setSliderStyle (Slider::LinearVertical); - rSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 30, 20); - rSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); - rSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); - rSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - rSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); - rSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - rSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + rSlider->setSliderStyle (juce::Slider::LinearVertical); + rSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); + rSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + rSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + rSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + rSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + rSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + rSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); rSlider->addListener (this); rSlider->setBounds (184, 200, 30, 104); - rLabel.reset (new Label ("r label", - TRANS("R"))); + rLabel.reset (new juce::Label ("r label", + TRANS("R"))); addAndMakeVisible (rLabel.get()); rLabel->setTooltip (TRANS("Release rate")); - rLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - rLabel->setJustificationType (Justification::centred); + rLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + rLabel->setJustificationType (juce::Justification::centred); rLabel->setEditable (false, false, false); - rLabel->setColour (Label::textColourId, Colour (0xff007f00)); - rLabel->setColour (TextEditor::textColourId, Colours::black); - rLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + rLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + rLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + rLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); rLabel->setBounds (184, 304, 30, 24); - attenuationSlider.reset (new Slider ("attenuation slider")); + attenuationSlider.reset (new juce::Slider ("attenuation slider")); addAndMakeVisible (attenuationSlider.get()); attenuationSlider->setRange (-47.25, 0, 0.75); - attenuationSlider->setSliderStyle (Slider::LinearVertical); - attenuationSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 64, 20); - attenuationSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); - attenuationSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); - attenuationSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - attenuationSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); - attenuationSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - attenuationSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + attenuationSlider->setSliderStyle (juce::Slider::LinearVertical); + attenuationSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 64, 20); + attenuationSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + attenuationSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + attenuationSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + attenuationSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + attenuationSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + attenuationSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); attenuationSlider->addListener (this); attenuationSlider->setBounds (328, 184, 56, 142); - attenuationLabel.reset (new Label ("attenuation label", - TRANS("Attenuation"))); + attenuationLabel.reset (new juce::Label ("attenuation label", + TRANS("Attenuation"))); addAndMakeVisible (attenuationLabel.get()); attenuationLabel->setTooltip (TRANS("Final output level adjustment")); - attenuationLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - attenuationLabel->setJustificationType (Justification::centred); + attenuationLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel->setJustificationType (juce::Justification::centred); attenuationLabel->setEditable (false, false, false); - attenuationLabel->setColour (Label::textColourId, Colour (0xff007f00)); - attenuationLabel->setColour (TextEditor::textColourId, Colours::black); - attenuationLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + attenuationLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + attenuationLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + attenuationLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); attenuationLabel->setBounds (304, 160, 112, 24); - dbLabel.reset (new Label ("db label", - TRANS("dB"))); + dbLabel.reset (new juce::Label ("db label", + TRANS("dB"))); addAndMakeVisible (dbLabel.get()); - dbLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dbLabel->setJustificationType (Justification::centred); + dbLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel->setJustificationType (juce::Justification::centred); dbLabel->setEditable (false, false, false); - dbLabel->setColour (Label::textColourId, Colour (0xff007f00)); - dbLabel->setColour (Label::outlineColourId, Colour (0x00000000)); - dbLabel->setColour (TextEditor::textColourId, Colours::black); - dbLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dbLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel->setBounds (384, 304, 32, 24); - sineImageButton.reset (new ImageButton ("sine image button")); + sineImageButton.reset (new juce::ImageButton ("sine image button")); addAndMakeVisible (sineImageButton.get()); sineImageButton->setButtonText (TRANS("Sine")); sineImageButton->setRadioGroupId (1); sineImageButton->addListener (this); sineImageButton->setImages (false, true, true, - ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); sineImageButton->setBounds (88, 113, 34, 30); - halfsineImageButton.reset (new ImageButton ("half sine image button")); + halfsineImageButton.reset (new juce::ImageButton ("half sine image button")); addAndMakeVisible (halfsineImageButton.get()); halfsineImageButton->setButtonText (TRANS("Half Sine")); halfsineImageButton->setRadioGroupId (1); halfsineImageButton->addListener (this); halfsineImageButton->setImages (false, true, true, - ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); halfsineImageButton->setBounds (128, 113, 34, 30); - abssineImageButton.reset (new ImageButton ("abs sine image button")); + abssineImageButton.reset (new juce::ImageButton ("abs sine image button")); addAndMakeVisible (abssineImageButton.get()); abssineImageButton->setButtonText (TRANS("Abs Sine")); abssineImageButton->setRadioGroupId (1); abssineImageButton->addListener (this); abssineImageButton->setImages (false, true, true, - ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); abssineImageButton->setBounds (168, 113, 34, 30); - quartersineImageButton.reset (new ImageButton ("quarter sine image button")); + quartersineImageButton.reset (new juce::ImageButton ("quarter sine image button")); addAndMakeVisible (quartersineImageButton.get()); quartersineImageButton->setButtonText (TRANS("Quarter Sine")); quartersineImageButton->setRadioGroupId (1); quartersineImageButton->addListener (this); quartersineImageButton->setImages (false, true, true, - ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); quartersineImageButton->setBounds (208, 113, 34, 30); - waveLabel.reset (new Label ("wave label", - TRANS("Wave"))); + waveLabel.reset (new juce::Label ("wave label", + TRANS("Wave"))); addAndMakeVisible (waveLabel.get()); - waveLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - waveLabel->setJustificationType (Justification::centredLeft); + waveLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + waveLabel->setJustificationType (juce::Justification::centredLeft); waveLabel->setEditable (false, false, false); - waveLabel->setColour (Label::textColourId, Colour (0xff007f00)); - waveLabel->setColour (TextEditor::textColourId, Colours::black); - waveLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + waveLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + waveLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + waveLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); waveLabel->setBounds (32, 115, 48, 24); - tremoloButton.reset (new ToggleButton ("tremolo button")); + tremoloButton.reset (new juce::ToggleButton ("tremolo button")); addAndMakeVisible (tremoloButton.get()); tremoloButton->setTooltip (TRANS("Modulate amplitude at 3.7 Hz")); tremoloButton->setButtonText (TRANS("Tremolo")); tremoloButton->addListener (this); - tremoloButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + tremoloButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); tremoloButton->setBounds (120, 352, 80, 24); - vibratoButton.reset (new ToggleButton ("vibrato button")); + vibratoButton.reset (new juce::ToggleButton ("vibrato button")); addAndMakeVisible (vibratoButton.get()); vibratoButton->setTooltip (TRANS("Modulate frequency at 6.1 Hz")); vibratoButton->setButtonText (TRANS("Vibrato")); vibratoButton->addListener (this); - vibratoButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + vibratoButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); vibratoButton->setBounds (32, 352, 72, 24); - sustainButton.reset (new ToggleButton ("sustain button")); + sustainButton.reset (new juce::ToggleButton ("sustain button")); addAndMakeVisible (sustainButton.get()); sustainButton->setTooltip (TRANS("Enable or disable sustain when note is held")); sustainButton->setButtonText (TRANS("Sustain")); sustainButton->addListener (this); - sustainButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + sustainButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); sustainButton->setBounds (32, 384, 70, 32); - keyscaleEnvButton.reset (new ToggleButton ("keyscale env button")); + keyscaleEnvButton.reset (new juce::ToggleButton ("keyscale env button")); addAndMakeVisible (keyscaleEnvButton.get()); keyscaleEnvButton->setTooltip (TRANS("Speed up envelope rate with note frequency")); keyscaleEnvButton->setButtonText (TRANS("Keyscale Env. Rate")); keyscaleEnvButton->addListener (this); - keyscaleEnvButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + keyscaleEnvButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); keyscaleEnvButton->setBounds (120, 376, 101, 48); - dbLabel2.reset (new Label ("db label", - TRANS("dB/8ve\n"))); + dbLabel2.reset (new juce::Label ("db label", + TRANS("dB/8ve\n"))); addAndMakeVisible (dbLabel2.get()); - dbLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dbLabel2->setJustificationType (Justification::centred); + dbLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel2->setJustificationType (juce::Justification::centred); dbLabel2->setEditable (false, false, false); - dbLabel2->setColour (Label::textColourId, Colour (0xff007f00)); - dbLabel2->setColour (Label::outlineColourId, Colour (0x00000000)); - dbLabel2->setColour (TextEditor::textColourId, Colours::black); - dbLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dbLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel2->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel2->setBounds (792, 712, 72, 16); - frequencyComboBox2.reset (new ComboBox ("frequency combo box")); + frequencyComboBox2.reset (new juce::ComboBox ("frequency combo box")); addAndMakeVisible (frequencyComboBox2.get()); frequencyComboBox2->setEditableText (false); - frequencyComboBox2->setJustificationType (Justification::centredLeft); - frequencyComboBox2->setTextWhenNothingSelected (String()); + frequencyComboBox2->setJustificationType (juce::Justification::centredLeft); + frequencyComboBox2->setTextWhenNothingSelected (juce::String()); frequencyComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); frequencyComboBox2->addListener (this); frequencyComboBox2->setBounds (624, 168, 66, 24); - frequencyLabel3.reset (new Label ("frequency label", - TRANS("Frequency Multiplier"))); + frequencyLabel3.reset (new juce::Label ("frequency label", + TRANS("Frequency Multiplier"))); addAndMakeVisible (frequencyLabel3.get()); frequencyLabel3->setTooltip (TRANS("Multiplier applied to base note frequency")); - frequencyLabel3->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - frequencyLabel3->setJustificationType (Justification::centredLeft); + frequencyLabel3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel3->setJustificationType (juce::Justification::centredLeft); frequencyLabel3->setEditable (false, false, false); - frequencyLabel3->setColour (Label::textColourId, Colour (0xff007f00)); - frequencyLabel3->setColour (TextEditor::textColourId, Colours::black); - frequencyLabel3->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + frequencyLabel3->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel3->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel3->setBounds (464, 168, 152, 24); - aSlider2.reset (new Slider ("a slider")); + aSlider2.reset (new juce::Slider ("a slider")); addAndMakeVisible (aSlider2.get()); aSlider2->setRange (0, 15, 1); - aSlider2->setSliderStyle (Slider::LinearVertical); - aSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20); - aSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); - aSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); - aSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - aSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); - aSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - aSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + aSlider2->setSliderStyle (juce::Slider::LinearVertical); + aSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); + aSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + aSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + aSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + aSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + aSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + aSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); aSlider2->addListener (this); aSlider2->setBounds (464, 200, 30, 104); - aLabel2.reset (new Label ("a label", - TRANS("A"))); + aLabel2.reset (new juce::Label ("a label", + TRANS("A"))); addAndMakeVisible (aLabel2.get()); aLabel2->setTooltip (TRANS("Attack rate")); - aLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - aLabel2->setJustificationType (Justification::centred); + aLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + aLabel2->setJustificationType (juce::Justification::centred); aLabel2->setEditable (false, false, false); - aLabel2->setColour (Label::textColourId, Colour (0xff007f00)); - aLabel2->setColour (TextEditor::textColourId, Colours::black); - aLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + aLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + aLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + aLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); aLabel2->setBounds (464, 304, 30, 24); - dSlider2.reset (new Slider ("d slider")); + dSlider2.reset (new juce::Slider ("d slider")); addAndMakeVisible (dSlider2.get()); dSlider2->setRange (0, 15, 1); - dSlider2->setSliderStyle (Slider::LinearVertical); - dSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20); - dSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); - dSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); - dSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - dSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); - dSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - dSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + dSlider2->setSliderStyle (juce::Slider::LinearVertical); + dSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); + dSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + dSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + dSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + dSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + dSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + dSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); dSlider2->addListener (this); dSlider2->setBounds (512, 200, 30, 104); - dLabel3.reset (new Label ("d label", - TRANS("D"))); + dLabel3.reset (new juce::Label ("d label", + TRANS("D"))); addAndMakeVisible (dLabel3.get()); dLabel3->setTooltip (TRANS("Decay rate")); - dLabel3->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dLabel3->setJustificationType (Justification::centred); + dLabel3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dLabel3->setJustificationType (juce::Justification::centred); dLabel3->setEditable (false, false, false); - dLabel3->setColour (Label::textColourId, Colour (0xff007f00)); - dLabel3->setColour (TextEditor::textColourId, Colours::black); - dLabel3->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dLabel3->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dLabel3->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dLabel3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dLabel3->setBounds (512, 304, 30, 24); - sSlider2.reset (new Slider ("s slider")); + sSlider2.reset (new juce::Slider ("s slider")); addAndMakeVisible (sSlider2.get()); sSlider2->setRange (0, 15, 1); - sSlider2->setSliderStyle (Slider::LinearVertical); - sSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20); - sSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); - sSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); - sSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - sSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); - sSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - sSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + sSlider2->setSliderStyle (juce::Slider::LinearVertical); + sSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); + sSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + sSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + sSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + sSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + sSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + sSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); sSlider2->addListener (this); sSlider2->setBounds (560, 200, 30, 104); - dLabel4.reset (new Label ("d label", - TRANS("S"))); + dLabel4.reset (new juce::Label ("d label", + TRANS("S"))); addAndMakeVisible (dLabel4.get()); dLabel4->setTooltip (TRANS("Sustain level")); - dLabel4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dLabel4->setJustificationType (Justification::centred); + dLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dLabel4->setJustificationType (juce::Justification::centred); dLabel4->setEditable (false, false, false); - dLabel4->setColour (Label::textColourId, Colour (0xff007f00)); - dLabel4->setColour (TextEditor::textColourId, Colours::black); - dLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dLabel4->setBounds (560, 304, 30, 24); - rSlider2.reset (new Slider ("r slider")); + rSlider2.reset (new juce::Slider ("r slider")); addAndMakeVisible (rSlider2.get()); rSlider2->setRange (0, 15, 1); - rSlider2->setSliderStyle (Slider::LinearVertical); - rSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20); - rSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); - rSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); - rSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - rSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); - rSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - rSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + rSlider2->setSliderStyle (juce::Slider::LinearVertical); + rSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); + rSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + rSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + rSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + rSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + rSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + rSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); rSlider2->addListener (this); rSlider2->setBounds (608, 200, 30, 104); - rLabel2.reset (new Label ("r label", - TRANS("R"))); + rLabel2.reset (new juce::Label ("r label", + TRANS("R"))); addAndMakeVisible (rLabel2.get()); rLabel2->setTooltip (TRANS("Release rate")); - rLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - rLabel2->setJustificationType (Justification::centred); + rLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + rLabel2->setJustificationType (juce::Justification::centred); rLabel2->setEditable (false, false, false); - rLabel2->setColour (Label::textColourId, Colour (0xff007f00)); - rLabel2->setColour (TextEditor::textColourId, Colours::black); - rLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + rLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + rLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + rLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); rLabel2->setBounds (608, 304, 30, 24); - attenuationSlider2.reset (new Slider ("attenuation slider")); + attenuationSlider2.reset (new juce::Slider ("attenuation slider")); addAndMakeVisible (attenuationSlider2.get()); attenuationSlider2->setRange (-47.25, 0, 0.75); - attenuationSlider2->setSliderStyle (Slider::LinearVertical); - attenuationSlider2->setTextBoxStyle (Slider::TextBoxBelow, false, 64, 20); - attenuationSlider2->setColour (Slider::thumbColourId, Colour (0xff007f00)); - attenuationSlider2->setColour (Slider::trackColourId, Colour (0x7f007f00)); - attenuationSlider2->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - attenuationSlider2->setColour (Slider::textBoxBackgroundColourId, Colours::black); - attenuationSlider2->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - attenuationSlider2->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + attenuationSlider2->setSliderStyle (juce::Slider::LinearVertical); + attenuationSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 64, 20); + attenuationSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + attenuationSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + attenuationSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + attenuationSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + attenuationSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + attenuationSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); attenuationSlider2->addListener (this); attenuationSlider2->setBounds (752, 184, 56, 142); - attenuationLabel2.reset (new Label ("attenuation label", - TRANS("Attenuation"))); + attenuationLabel2.reset (new juce::Label ("attenuation label", + TRANS("Attenuation"))); addAndMakeVisible (attenuationLabel2.get()); attenuationLabel2->setTooltip (TRANS("Final output level adjustment")); - attenuationLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - attenuationLabel2->setJustificationType (Justification::centred); + attenuationLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel2->setJustificationType (juce::Justification::centred); attenuationLabel2->setEditable (false, false, false); - attenuationLabel2->setColour (Label::textColourId, Colour (0xff007f00)); - attenuationLabel2->setColour (TextEditor::textColourId, Colours::black); - attenuationLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + attenuationLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + attenuationLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + attenuationLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); attenuationLabel2->setBounds (728, 160, 112, 24); - dbLabel3.reset (new Label ("db label", - TRANS("dB"))); + dbLabel3.reset (new juce::Label ("db label", + TRANS("dB"))); addAndMakeVisible (dbLabel3.get()); - dbLabel3->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dbLabel3->setJustificationType (Justification::centred); + dbLabel3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel3->setJustificationType (juce::Justification::centred); dbLabel3->setEditable (false, false, false); - dbLabel3->setColour (Label::textColourId, Colour (0xff007f00)); - dbLabel3->setColour (Label::outlineColourId, Colour (0x00000000)); - dbLabel3->setColour (TextEditor::textColourId, Colours::black); - dbLabel3->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dbLabel3->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel3->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel3->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel3->setBounds (800, 304, 40, 24); - sineImageButton2.reset (new ImageButton ("sine image button")); + sineImageButton2.reset (new juce::ImageButton ("sine image button")); addAndMakeVisible (sineImageButton2.get()); sineImageButton2->setButtonText (TRANS("Sine")); sineImageButton2->setRadioGroupId (2); sineImageButton2->addListener (this); sineImageButton2->setImages (false, true, true, - ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); sineImageButton2->setBounds (512, 113, 34, 30); - halfsineImageButton2.reset (new ImageButton ("half sine image button")); + halfsineImageButton2.reset (new juce::ImageButton ("half sine image button")); addAndMakeVisible (halfsineImageButton2.get()); halfsineImageButton2->setButtonText (TRANS("Half Sine")); halfsineImageButton2->setRadioGroupId (2); halfsineImageButton2->addListener (this); halfsineImageButton2->setImages (false, true, true, - ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); halfsineImageButton2->setBounds (552, 113, 34, 30); - abssineImageButton2.reset (new ImageButton ("abs sine image button")); + abssineImageButton2.reset (new juce::ImageButton ("abs sine image button")); addAndMakeVisible (abssineImageButton2.get()); abssineImageButton2->setButtonText (TRANS("Abs Sine")); abssineImageButton2->setRadioGroupId (2); abssineImageButton2->addListener (this); abssineImageButton2->setImages (false, true, true, - ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); abssineImageButton2->setBounds (592, 113, 34, 30); - quartersineImageButton2.reset (new ImageButton ("quarter sine image button")); + quartersineImageButton2.reset (new juce::ImageButton ("quarter sine image button")); addAndMakeVisible (quartersineImageButton2.get()); quartersineImageButton2->setButtonText (TRANS("Quarter Sine")); quartersineImageButton2->setRadioGroupId (2); quartersineImageButton2->addListener (this); quartersineImageButton2->setImages (false, true, true, - ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); quartersineImageButton2->setBounds (632, 113, 34, 30); - waveLabel2.reset (new Label ("wave label", - TRANS("Wave"))); + waveLabel2.reset (new juce::Label ("wave label", + TRANS("Wave"))); addAndMakeVisible (waveLabel2.get()); - waveLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - waveLabel2->setJustificationType (Justification::centredLeft); + waveLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + waveLabel2->setJustificationType (juce::Justification::centredLeft); waveLabel2->setEditable (false, false, false); - waveLabel2->setColour (Label::textColourId, Colour (0xff007f00)); - waveLabel2->setColour (TextEditor::textColourId, Colours::black); - waveLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + waveLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + waveLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + waveLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); waveLabel2->setBounds (456, 115, 48, 24); - tremoloButton2.reset (new ToggleButton ("tremolo button")); + tremoloButton2.reset (new juce::ToggleButton ("tremolo button")); addAndMakeVisible (tremoloButton2.get()); tremoloButton2->setTooltip (TRANS("Modulate amplitude at 3.7 Hz")); tremoloButton2->setButtonText (TRANS("Tremolo")); tremoloButton2->addListener (this); - tremoloButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + tremoloButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); tremoloButton2->setBounds (544, 352, 80, 24); - vibratoButton2.reset (new ToggleButton ("vibrato button")); + vibratoButton2.reset (new juce::ToggleButton ("vibrato button")); addAndMakeVisible (vibratoButton2.get()); vibratoButton2->setTooltip (TRANS("Modulate frequency at 6.1 Hz")); vibratoButton2->setButtonText (TRANS("Vibrato")); vibratoButton2->addListener (this); - vibratoButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + vibratoButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); vibratoButton2->setBounds (456, 352, 72, 24); - sustainButton2.reset (new ToggleButton ("sustain button")); + sustainButton2.reset (new juce::ToggleButton ("sustain button")); addAndMakeVisible (sustainButton2.get()); sustainButton2->setTooltip (TRANS("Enable or disable sustain when note is held")); sustainButton2->setButtonText (TRANS("Sustain")); sustainButton2->addListener (this); - sustainButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + sustainButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); sustainButton2->setBounds (456, 384, 70, 24); - keyscaleEnvButton2.reset (new ToggleButton ("keyscale env button")); + keyscaleEnvButton2.reset (new juce::ToggleButton ("keyscale env button")); addAndMakeVisible (keyscaleEnvButton2.get()); keyscaleEnvButton2->setTooltip (TRANS("Speed up envelope rate with note frequency")); keyscaleEnvButton2->setButtonText (TRANS("Keyscale Env. Rate")); keyscaleEnvButton2->addListener (this); - keyscaleEnvButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + keyscaleEnvButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); keyscaleEnvButton2->setBounds (544, 376, 102, 48); - frequencyLabel4.reset (new Label ("frequency label", - TRANS("Keyscale Attenuation"))); + frequencyLabel4.reset (new juce::Label ("frequency label", + TRANS("Keyscale Attenuation"))); addAndMakeVisible (frequencyLabel4.get()); frequencyLabel4->setTooltip (TRANS("Attenuate amplitude with note frequency in dB per octave")); - frequencyLabel4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - frequencyLabel4->setJustificationType (Justification::centred); + frequencyLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel4->setJustificationType (juce::Justification::centred); frequencyLabel4->setEditable (false, false, false); - frequencyLabel4->setColour (Label::textColourId, Colour (0xff007f00)); - frequencyLabel4->setColour (TextEditor::textColourId, Colours::black); - frequencyLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + frequencyLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel4->setBounds (656, 376, 88, 48); - groupComponent3.reset (new GroupComponent ("new group", - TRANS("Effect depth"))); + groupComponent3.reset (new juce::GroupComponent ("new group", + TRANS("Effect depth"))); addAndMakeVisible (groupComponent3.get()); - groupComponent3->setTextLabelPosition (Justification::centredLeft); - groupComponent3->setColour (GroupComponent::outlineColourId, Colour (0x00007f00)); - groupComponent3->setColour (GroupComponent::textColourId, Colour (0x00007f00)); + groupComponent3->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent3->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); + groupComponent3->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent3->setBounds (16, 440, 248, 120); - tremoloSlider.reset (new Slider ("tremolo slider")); + tremoloSlider.reset (new juce::Slider ("tremolo slider")); addAndMakeVisible (tremoloSlider.get()); tremoloSlider->setRange (1, 4.8, 3.8); - tremoloSlider->setSliderStyle (Slider::LinearHorizontal); - tremoloSlider->setTextBoxStyle (Slider::TextBoxRight, true, 32, 20); - tremoloSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); - 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->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + tremoloSlider->setSliderStyle (juce::Slider::LinearHorizontal); + tremoloSlider->setTextBoxStyle (juce::Slider::TextBoxRight, true, 32, 20); + tremoloSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + tremoloSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + tremoloSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + tremoloSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + tremoloSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + tremoloSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); tremoloSlider->addListener (this); tremoloSlider->setBounds (112, 472, 80, 24); - frequencyLabel5.reset (new Label ("frequency label", - TRANS("Tremolo\n"))); + frequencyLabel5.reset (new juce::Label ("frequency label", + TRANS("Tremolo\n"))); addAndMakeVisible (frequencyLabel5.get()); frequencyLabel5->setTooltip (TRANS("OPL global tremolo depth")); - frequencyLabel5->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - frequencyLabel5->setJustificationType (Justification::centredLeft); + frequencyLabel5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel5->setJustificationType (juce::Justification::centredLeft); frequencyLabel5->setEditable (false, false, false); - frequencyLabel5->setColour (Label::textColourId, Colour (0xff007f00)); - frequencyLabel5->setColour (TextEditor::textColourId, Colours::black); - frequencyLabel5->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + frequencyLabel5->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel5->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel5->setBounds (32, 472, 80, 24); - dbLabel5.reset (new Label ("db label", - TRANS("dB"))); + dbLabel5.reset (new juce::Label ("db label", + TRANS("dB"))); addAndMakeVisible (dbLabel5.get()); - dbLabel5->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dbLabel5->setJustificationType (Justification::centredLeft); + dbLabel5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel5->setJustificationType (juce::Justification::centredLeft); 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)); + dbLabel5->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel5->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel5->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel5->setBounds (200, 464, 32, 40); - vibratoSlider.reset (new Slider ("vibrato slider")); + vibratoSlider.reset (new juce::Slider ("vibrato slider")); addAndMakeVisible (vibratoSlider.get()); vibratoSlider->setRange (7, 14, 7); - vibratoSlider->setSliderStyle (Slider::LinearHorizontal); - vibratoSlider->setTextBoxStyle (Slider::TextBoxRight, true, 32, 20); - vibratoSlider->setColour (Slider::thumbColourId, Colour (0xff007f00)); - 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->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + vibratoSlider->setSliderStyle (juce::Slider::LinearHorizontal); + vibratoSlider->setTextBoxStyle (juce::Slider::TextBoxRight, true, 32, 20); + vibratoSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); + vibratoSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + vibratoSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + vibratoSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + vibratoSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + vibratoSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); vibratoSlider->addListener (this); vibratoSlider->setBounds (112, 512, 80, 24); - frequencyLabel6.reset (new Label ("frequency label", - TRANS("Vibrato"))); + frequencyLabel6.reset (new juce::Label ("frequency label", + TRANS("Vibrato"))); addAndMakeVisible (frequencyLabel6.get()); frequencyLabel6->setTooltip (TRANS("OPL global vibrato depth")); - frequencyLabel6->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - frequencyLabel6->setJustificationType (Justification::centredLeft); + frequencyLabel6->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel6->setJustificationType (juce::Justification::centredLeft); frequencyLabel6->setEditable (false, false, false); - frequencyLabel6->setColour (Label::textColourId, Colour (0xff007f00)); - frequencyLabel6->setColour (TextEditor::textColourId, Colours::black); - frequencyLabel6->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + frequencyLabel6->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel6->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel6->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel6->setBounds (32, 512, 80, 24); - dbLabel6.reset (new Label ("db label", - TRANS("cents\n"))); + dbLabel6.reset (new juce::Label ("db label", + TRANS("cents\n"))); addAndMakeVisible (dbLabel6.get()); dbLabel6->setTooltip (TRANS("A unit of pitch; 100 cents per semitone")); - dbLabel6->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dbLabel6->setJustificationType (Justification::centredLeft); + dbLabel6->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel6->setJustificationType (juce::Justification::centredLeft); 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)); + dbLabel6->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel6->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel6->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel6->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel6->setBounds (200, 504, 48, 40); - feedbackSlider.reset (new Slider ("feedback slider")); + feedbackSlider.reset (new juce::Slider ("feedback slider")); addAndMakeVisible (feedbackSlider.get()); feedbackSlider->setRange (0, 7, 1); - feedbackSlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag); - feedbackSlider->setTextBoxStyle (Slider::TextBoxBelow, true, 30, 20); - feedbackSlider->setColour (Slider::thumbColourId, Colour (0xff00af00)); - feedbackSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); - feedbackSlider->setColour (Slider::rotarySliderFillColourId, Colour (0xff00af00)); - feedbackSlider->setColour (Slider::rotarySliderOutlineColourId, Colour (0xff007f00)); - feedbackSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - feedbackSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); - feedbackSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); - feedbackSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x008e989b)); + feedbackSlider->setSliderStyle (juce::Slider::RotaryHorizontalVerticalDrag); + feedbackSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, true, 30, 20); + feedbackSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff00af00)); + feedbackSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + feedbackSlider->setColour (juce::Slider::rotarySliderFillColourId, juce::Colour (0xff00af00)); + feedbackSlider->setColour (juce::Slider::rotarySliderOutlineColourId, juce::Colour (0xff007f00)); + feedbackSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + feedbackSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + feedbackSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); + feedbackSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); feedbackSlider->addListener (this); feedbackSlider->setBounds (248, 237, 30, 67); - frequencyLabel7.reset (new Label ("frequency label", - TRANS("Feedback"))); + frequencyLabel7.reset (new juce::Label ("frequency label", + TRANS("Feedback"))); addAndMakeVisible (frequencyLabel7.get()); frequencyLabel7->setTooltip (TRANS("Extent to which modulator output is fed back into itself")); - frequencyLabel7->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - frequencyLabel7->setJustificationType (Justification::centred); + frequencyLabel7->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel7->setJustificationType (juce::Justification::centred); frequencyLabel7->setEditable (false, false, false); - frequencyLabel7->setColour (Label::textColourId, Colour (0xff007f00)); - frequencyLabel7->setColour (TextEditor::textColourId, Colours::black); - frequencyLabel7->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + frequencyLabel7->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel7->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel7->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel7->setBounds (224, 304, 80, 24); - velocityComboBox.reset (new ComboBox ("velocity combo box")); + velocityComboBox.reset (new juce::ComboBox ("velocity combo box")); addAndMakeVisible (velocityComboBox.get()); velocityComboBox->setEditableText (false); - velocityComboBox->setJustificationType (Justification::centredLeft); - velocityComboBox->setTextWhenNothingSelected (String()); + velocityComboBox->setJustificationType (juce::Justification::centredLeft); + velocityComboBox->setTextWhenNothingSelected (juce::String()); velocityComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); velocityComboBox->addItem (TRANS("Off"), 1); velocityComboBox->addItem (TRANS("Light"), 2); @@ -955,11 +955,11 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) velocityComboBox->setBounds (328, 352, 76, 24); - velocityComboBox2.reset (new ComboBox ("velocity combo box")); + velocityComboBox2.reset (new juce::ComboBox ("velocity combo box")); addAndMakeVisible (velocityComboBox2.get()); velocityComboBox2->setEditableText (false); - velocityComboBox2->setJustificationType (Justification::centredLeft); - velocityComboBox2->setTextWhenNothingSelected (String()); + velocityComboBox2->setJustificationType (juce::Justification::centredLeft); + velocityComboBox2->setTextWhenNothingSelected (juce::String()); velocityComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); velocityComboBox2->addItem (TRANS("Off"), 1); velocityComboBox2->addItem (TRANS("Light"), 2); @@ -968,959 +968,959 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) velocityComboBox2->setBounds (760, 352, 72, 24); - attenuationLabel4.reset (new Label ("attenuation label", - TRANS("Velocity Sensitivity"))); + attenuationLabel4.reset (new juce::Label ("attenuation label", + TRANS("Velocity Sensitivity"))); addAndMakeVisible (attenuationLabel4.get()); attenuationLabel4->setTooltip (TRANS("Set or disable velocity senstivity")); - attenuationLabel4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - attenuationLabel4->setJustificationType (Justification::centred); + attenuationLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel4->setJustificationType (juce::Justification::centred); attenuationLabel4->setEditable (false, false, false); - attenuationLabel4->setColour (Label::textColourId, Colour (0xff007f00)); - attenuationLabel4->setColour (TextEditor::textColourId, Colours::black); - attenuationLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + attenuationLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + attenuationLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + attenuationLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); attenuationLabel4->setBounds (760, 376, 80, 48); - alternatingsineImageButton.reset (new ImageButton ("alternating sine image button")); + alternatingsineImageButton.reset (new juce::ImageButton ("alternating sine image button")); addAndMakeVisible (alternatingsineImageButton.get()); alternatingsineImageButton->setButtonText (TRANS("Alternating Sine")); alternatingsineImageButton->setRadioGroupId (1); alternatingsineImageButton->addListener (this); alternatingsineImageButton->setImages (false, true, true, - ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); alternatingsineImageButton->setBounds (288, 113, 34, 30); - camelsineImageButton.reset (new ImageButton ("camel sine image button")); + camelsineImageButton.reset (new juce::ImageButton ("camel sine image button")); addAndMakeVisible (camelsineImageButton.get()); camelsineImageButton->setButtonText (TRANS("Camel Sine")); camelsineImageButton->setRadioGroupId (1); camelsineImageButton->addListener (this); camelsineImageButton->setImages (false, true, true, - ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); camelsineImageButton->setBounds (248, 113, 34, 30); - squareImageButton.reset (new ImageButton ("square image button")); + squareImageButton.reset (new juce::ImageButton ("square image button")); addAndMakeVisible (squareImageButton.get()); squareImageButton->setButtonText (TRANS("Square")); squareImageButton->setRadioGroupId (1); squareImageButton->addListener (this); squareImageButton->setImages (false, true, true, - ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); squareImageButton->setBounds (328, 113, 34, 30); - logsawImageButton.reset (new ImageButton ("logsaw image button")); + logsawImageButton.reset (new juce::ImageButton ("logsaw image button")); addAndMakeVisible (logsawImageButton.get()); logsawImageButton->setButtonText (TRANS("Logarithmic Sawtooth")); logsawImageButton->setRadioGroupId (1); logsawImageButton->addListener (this); logsawImageButton->setImages (false, true, true, - ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); logsawImageButton->setBounds (368, 113, 34, 30); - alternatingsineImageButton2.reset (new ImageButton ("alternating sine image button")); + alternatingsineImageButton2.reset (new juce::ImageButton ("alternating sine image button")); addAndMakeVisible (alternatingsineImageButton2.get()); alternatingsineImageButton2->setButtonText (TRANS("Alternating Sine")); alternatingsineImageButton2->setRadioGroupId (2); alternatingsineImageButton2->addListener (this); alternatingsineImageButton2->setImages (false, true, true, - ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); alternatingsineImageButton2->setBounds (714, 114, 34, 30); - camelsineImageButton2.reset (new ImageButton ("camel sine image button")); + camelsineImageButton2.reset (new juce::ImageButton ("camel sine image button")); addAndMakeVisible (camelsineImageButton2.get()); camelsineImageButton2->setButtonText (TRANS("Camel Sine")); camelsineImageButton2->setRadioGroupId (2); camelsineImageButton2->addListener (this); camelsineImageButton2->setImages (false, true, true, - ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); camelsineImageButton2->setBounds (674, 114, 34, 30); - squareImageButton2.reset (new ImageButton ("square image button")); + squareImageButton2.reset (new juce::ImageButton ("square image button")); addAndMakeVisible (squareImageButton2.get()); squareImageButton2->setButtonText (TRANS("Square")); squareImageButton2->setRadioGroupId (2); squareImageButton2->addListener (this); squareImageButton2->setImages (false, true, true, - ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); squareImageButton2->setBounds (754, 114, 34, 30); - logsawImageButton2.reset (new ImageButton ("logsaw image button")); + logsawImageButton2.reset (new juce::ImageButton ("logsaw image button")); addAndMakeVisible (logsawImageButton2.get()); logsawImageButton2->setButtonText (TRANS("Logarithmic Sawtooth")); logsawImageButton2->setRadioGroupId (2); logsawImageButton2->addListener (this); logsawImageButton2->setImages (false, true, true, - ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); logsawImageButton2->setBounds (794, 114, 34, 30); - dbLabel4.reset (new Label ("db label", - TRANS("dB/8ve\n"))); + dbLabel4.reset (new juce::Label ("db label", + TRANS("dB/8ve\n"))); addAndMakeVisible (dbLabel4.get()); - dbLabel4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dbLabel4->setJustificationType (Justification::centred); + dbLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel4->setJustificationType (juce::Justification::centred); dbLabel4->setEditable (false, false, false); - dbLabel4->setColour (Label::textColourId, Colour (0xff007f00)); - dbLabel4->setColour (Label::outlineColourId, Colour (0x00000000)); - dbLabel4->setColour (TextEditor::textColourId, Colours::black); - dbLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dbLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel4->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel4->setBounds (792, 688, 72, 16); - keyscaleAttenuationComboBox2.reset (new ComboBox ("keyscale combo box")); + keyscaleAttenuationComboBox2.reset (new juce::ComboBox ("keyscale combo box")); addAndMakeVisible (keyscaleAttenuationComboBox2.get()); keyscaleAttenuationComboBox2->setEditableText (false); - keyscaleAttenuationComboBox2->setJustificationType (Justification::centredLeft); - keyscaleAttenuationComboBox2->setTextWhenNothingSelected (String()); + keyscaleAttenuationComboBox2->setJustificationType (juce::Justification::centredLeft); + keyscaleAttenuationComboBox2->setTextWhenNothingSelected (juce::String()); keyscaleAttenuationComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); keyscaleAttenuationComboBox2->addItem (TRANS("-0.0"), 1); - keyscaleAttenuationComboBox2->addItem (TRANS("-1.5"), 2); - keyscaleAttenuationComboBox2->addItem (TRANS("-3.0"), 3); + keyscaleAttenuationComboBox2->addItem (TRANS("-3.0"), 2); + keyscaleAttenuationComboBox2->addItem (TRANS("-1.5"), 3); keyscaleAttenuationComboBox2->addItem (TRANS("-6.0"), 4); keyscaleAttenuationComboBox2->addListener (this); keyscaleAttenuationComboBox2->setBounds (664, 352, 76, 24); - keyscaleAttenuationComboBox.reset (new ComboBox ("keyscale combo box")); + keyscaleAttenuationComboBox.reset (new juce::ComboBox ("keyscale combo box")); addAndMakeVisible (keyscaleAttenuationComboBox.get()); keyscaleAttenuationComboBox->setEditableText (false); - keyscaleAttenuationComboBox->setJustificationType (Justification::centredLeft); - keyscaleAttenuationComboBox->setTextWhenNothingSelected (String()); + keyscaleAttenuationComboBox->setJustificationType (juce::Justification::centredLeft); + keyscaleAttenuationComboBox->setTextWhenNothingSelected (juce::String()); keyscaleAttenuationComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); keyscaleAttenuationComboBox->addItem (TRANS("-0.0"), 1); - keyscaleAttenuationComboBox->addItem (TRANS("-1.5"), 2); - keyscaleAttenuationComboBox->addItem (TRANS("-3.0"), 3); + keyscaleAttenuationComboBox->addItem (TRANS("-3.0"), 2); + keyscaleAttenuationComboBox->addItem (TRANS("-1.5"), 3); keyscaleAttenuationComboBox->addItem (TRANS("-6.0"), 4); keyscaleAttenuationComboBox->addListener (this); keyscaleAttenuationComboBox->setBounds (232, 352, 76, 24); - groupComponent5.reset (new GroupComponent ("new group", - TRANS("Emulator (currently locked)"))); + groupComponent5.reset (new juce::GroupComponent ("new group", + TRANS("Emulator (currently locked)"))); addAndMakeVisible (groupComponent5.get()); - groupComponent5->setTextLabelPosition (Justification::centredLeft); - groupComponent5->setColour (GroupComponent::outlineColourId, Colour (0xff007f00)); - groupComponent5->setColour (GroupComponent::textColourId, Colour (0xff007f00)); + groupComponent5->setTextLabelPosition (juce::Justification::centredLeft); + groupComponent5->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0xff007f00)); + groupComponent5->setColour (juce::GroupComponent::textColourId, juce::Colour (0xff007f00)); groupComponent5->setBounds (24, 712, 408, 64); - emulatorSlider.reset (new Slider ("emulator slider")); + emulatorSlider.reset (new juce::Slider ("emulator slider")); addAndMakeVisible (emulatorSlider.get()); emulatorSlider->setRange (0, 1, 1); - emulatorSlider->setSliderStyle (Slider::LinearHorizontal); - emulatorSlider->setTextBoxStyle (Slider::NoTextBox, true, 44, 20); - emulatorSlider->setColour (Slider::thumbColourId, Colour (0xff00af00)); - emulatorSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); - emulatorSlider->setColour (Slider::textBoxTextColourId, Colour (0xff007f00)); - emulatorSlider->setColour (Slider::textBoxBackgroundColourId, Colours::black); - emulatorSlider->setColour (Slider::textBoxHighlightColourId, Colour (0xff00af00)); + emulatorSlider->setSliderStyle (juce::Slider::LinearHorizontal); + emulatorSlider->setTextBoxStyle (juce::Slider::NoTextBox, true, 44, 20); + emulatorSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff00af00)); + emulatorSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); + emulatorSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); + emulatorSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); + emulatorSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); emulatorSlider->addListener (this); emulatorSlider->setBounds (208, 736, 40, 24); - emulatorLabel.reset (new Label ("emulator label", - TRANS("DOSBox"))); + emulatorLabel.reset (new juce::Label ("emulator label", + TRANS("DOSBox"))); addAndMakeVisible (emulatorLabel.get()); emulatorLabel->setTooltip (TRANS("Use the OPL emulator from the DOSBox project")); - emulatorLabel->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - emulatorLabel->setJustificationType (Justification::centredRight); + emulatorLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + emulatorLabel->setJustificationType (juce::Justification::centredRight); emulatorLabel->setEditable (false, false, false); - emulatorLabel->setColour (Label::textColourId, Colour (0xff007f00)); - emulatorLabel->setColour (TextEditor::textColourId, Colours::black); - emulatorLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + emulatorLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + emulatorLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + emulatorLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); emulatorLabel->setBounds (120, 736, 72, 24); - emulatorLabel2.reset (new Label ("emulator label", - TRANS("ZDoom"))); + emulatorLabel2.reset (new juce::Label ("emulator label", + TRANS("ZDoom"))); addAndMakeVisible (emulatorLabel2.get()); emulatorLabel2->setTooltip (TRANS("Use the OPL emulator from the ZDoom project")); - emulatorLabel2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - emulatorLabel2->setJustificationType (Justification::centredLeft); + emulatorLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + emulatorLabel2->setJustificationType (juce::Justification::centredLeft); emulatorLabel2->setEditable (false, false, false); - emulatorLabel2->setColour (Label::textColourId, Colour (0xff007f00)); - emulatorLabel2->setColour (TextEditor::textColourId, Colours::black); - emulatorLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + emulatorLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + emulatorLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + emulatorLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); emulatorLabel2->setBounds (256, 736, 72, 24); - recordButton.reset (new ToggleButton ("record button")); + recordButton.reset (new juce::ToggleButton ("record button")); addAndMakeVisible (recordButton.get()); recordButton->setTooltip (TRANS("Start recording all register writes to a DRO file - an OPL recording file format defined by DOSBox")); recordButton->setButtonText (TRANS("Record to DRO (not working yet)")); recordButton->addListener (this); - recordButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); + recordButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); recordButton->setBounds (32, 680, 224, 24); - exportButton.reset (new TextButton ("export button")); + exportButton.reset (new juce::TextButton ("export button")); addAndMakeVisible (exportButton.get()); exportButton->setButtonText (TRANS("Export")); - exportButton->setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); + exportButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); exportButton->addListener (this); - exportButton->setColour (TextButton::buttonColourId, Colour (0xff007f00)); - exportButton->setColour (TextButton::buttonOnColourId, Colours::lime); + exportButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); + exportButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); exportButton->setBounds (728, 512, 48, 24); - loadButton.reset (new TextButton ("load button")); + loadButton.reset (new juce::TextButton ("load button")); addAndMakeVisible (loadButton.get()); loadButton->setButtonText (TRANS("Load")); - loadButton->setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); + loadButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); loadButton->addListener (this); - loadButton->setColour (TextButton::buttonColourId, Colour (0xff007f00)); - loadButton->setColour (TextButton::buttonOnColourId, Colours::lime); + loadButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); + loadButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); loadButton->setBounds (728, 472, 96, 24); - versionLabel.reset (new Label ("version label", - String())); + versionLabel.reset (new juce::Label ("version label", + juce::String())); addAndMakeVisible (versionLabel.get()); - versionLabel->setFont (Font (12.00f, Font::plain).withTypefaceStyle ("Regular")); - versionLabel->setJustificationType (Justification::centredRight); + versionLabel->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + versionLabel->setJustificationType (juce::Justification::centredRight); versionLabel->setEditable (false, false, false); - versionLabel->setColour (Label::textColourId, Colour (0xff007f00)); - versionLabel->setColour (TextEditor::textColourId, Colours::black); - versionLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + versionLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + versionLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); + versionLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); versionLabel->setBounds (648, 560, 198, 16); - ToggleButtonOffExample.reset (new ImageButton ("Toggle Button Off Example")); + ToggleButtonOffExample.reset (new juce::ImageButton ("Toggle Button Off Example")); addAndMakeVisible (ToggleButtonOffExample.get()); ToggleButtonOffExample->setButtonText (TRANS("new button")); ToggleButtonOffExample->addListener (this); ToggleButtonOffExample->setImages (false, true, true, - ImageCache::getFromMemory (toggle_off_sq_png, toggle_off_sq_pngSize), 1.000f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (toggle_off_sq_png, toggle_off_sq_pngSize), 1.000f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); ToggleButtonOffExample->setBounds (1032, 584, 12, 12); - ToggleButtonOnExample.reset (new ImageButton ("Toggle Button On Example")); + ToggleButtonOnExample.reset (new juce::ImageButton ("Toggle Button On Example")); addAndMakeVisible (ToggleButtonOnExample.get()); ToggleButtonOnExample->setButtonText (TRANS("new button")); ToggleButtonOnExample->addListener (this); ToggleButtonOnExample->setImages (false, true, true, - ImageCache::getFromMemory (toggle_on_sq_png, toggle_on_sq_pngSize), 1.000f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (toggle_on_sq_png, toggle_on_sq_pngSize), 1.000f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); ToggleButtonOnExample->setBounds (1064, 584, 12, 12); - label.reset (new Label ("new label", - TRANS("Toggle buttons"))); + label.reset (new juce::Label ("new label", + TRANS("Toggle buttons"))); addAndMakeVisible (label.get()); - label->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label->setJustificationType (Justification::centred); + label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label->setJustificationType (juce::Justification::centred); label->setEditable (false, false, false); - label->setColour (Label::textColourId, Colours::green); - label->setColour (TextEditor::textColourId, Colours::black); - label->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label->setColour (juce::Label::textColourId, juce::Colours::green); + label->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label->setBounds (1000, 608, 104, 24); - label2.reset (new Label ("new label", - TRANS("Line borders"))); + label2.reset (new juce::Label ("new label", + TRANS("Line borders"))); addAndMakeVisible (label2.get()); - label2->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label2->setJustificationType (Justification::centred); + label2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label2->setJustificationType (juce::Justification::centred); label2->setEditable (false, false, false); - label2->setColour (Label::textColourId, Colours::green); - label2->setColour (TextEditor::textColourId, Colours::black); - label2->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label2->setColour (juce::Label::textColourId, juce::Colours::green); + label2->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label2->setBounds (872, 608, 104, 24); - LineBorderButton1C.reset (new ImageButton ("Line Border 1C")); + LineBorderButton1C.reset (new juce::ImageButton ("Line Border 1C")); addAndMakeVisible (LineBorderButton1C.get()); LineBorderButton1C->setButtonText (TRANS("new button")); LineBorderButton1C->setImages (false, true, false, - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1C->setBounds (20, 336, 400, 6); - LineBorderButton1A.reset (new ImageButton ("Line Border 1A")); + LineBorderButton1A.reset (new juce::ImageButton ("Line Border 1A")); addAndMakeVisible (LineBorderButton1A.get()); LineBorderButton1A->setButtonText (TRANS("new button")); LineBorderButton1A->setImages (false, true, false, - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1A->setBounds (20, 152, 400, 6); - LineBorderButton1B.reset (new ImageButton ("Line Border 1B")); + LineBorderButton1B.reset (new juce::ImageButton ("Line Border 1B")); addAndMakeVisible (LineBorderButton1B.get()); LineBorderButton1B->setButtonText (TRANS("new button")); LineBorderButton1B->setImages (false, true, false, - ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1B->setBounds (296, 156, 6, 182); - label3.reset (new Label ("new label", - TRANS("Temporarily removed labels to avoid making wider boxes."))); + label3.reset (new juce::Label ("new label", + TRANS("Temporarily removed labels to avoid making wider boxes."))); addAndMakeVisible (label3.get()); - label3->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label3->setJustificationType (Justification::centred); + label3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label3->setJustificationType (juce::Justification::centred); label3->setEditable (false, false, false); - label3->setColour (Label::textColourId, Colours::green); - label3->setColour (TextEditor::textColourId, Colours::black); - label3->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label3->setColour (juce::Label::textColourId, juce::Colours::green); + label3->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label3->setBounds (776, 736, 104, 56); - LineBorderButton1C2.reset (new ImageButton ("Line Border 1C")); + LineBorderButton1C2.reset (new juce::ImageButton ("Line Border 1C")); addAndMakeVisible (LineBorderButton1C2.get()); LineBorderButton1C2->setButtonText (TRANS("new button")); LineBorderButton1C2->setImages (false, true, false, - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1C2->setBounds (444, 336, 400, 6); - LineBorderButton1A2.reset (new ImageButton ("Line Border 1A")); + LineBorderButton1A2.reset (new juce::ImageButton ("Line Border 1A")); addAndMakeVisible (LineBorderButton1A2.get()); LineBorderButton1A2->setButtonText (TRANS("new button")); LineBorderButton1A2->setImages (false, true, false, - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1A2->setBounds (444, 152, 400, 6); - LineBorderButton1B2.reset (new ImageButton ("Line Border 1B")); + LineBorderButton1B2.reset (new juce::ImageButton ("Line Border 1B")); addAndMakeVisible (LineBorderButton1B2.get()); LineBorderButton1B2->setButtonText (TRANS("new button")); LineBorderButton1B2->setImages (false, true, false, - ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1B2->setBounds (720, 156, 6, 182); - LineBorderButton1C3.reset (new ImageButton ("Line Border 1C")); + LineBorderButton1C3.reset (new juce::ImageButton ("Line Border 1C")); addAndMakeVisible (LineBorderButton1C3.get()); LineBorderButton1C3->setButtonText (TRANS("new button")); LineBorderButton1C3->setImages (false, true, false, - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1C3->setBounds (892, 584, 20, 6); - LineBorderButton1B3.reset (new ImageButton ("Line Border 1B")); + LineBorderButton1B3.reset (new juce::ImageButton ("Line Border 1B")); addAndMakeVisible (LineBorderButton1B3.get()); LineBorderButton1B3->setButtonText (TRANS("new button")); LineBorderButton1B3->setImages (false, true, false, - ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000), - ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1B3->setBounds (936, 576, 6, 20); - algoSwitchButtonOffEx1.reset (new ImageButton ("Algorithm Switch Off AM")); + algoSwitchButtonOffEx1.reset (new juce::ImageButton ("Algorithm Switch Off AM")); addAndMakeVisible (algoSwitchButtonOffEx1.get()); algoSwitchButtonOffEx1->setButtonText (TRANS("new button")); algoSwitchButtonOffEx1->addListener (this); algoSwitchButtonOffEx1->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx1->setBounds (952, 701, 64, 24); - algoSwitchButtonOffEx2.reset (new ImageButton ("Algorithm Switch Off FM")); + algoSwitchButtonOffEx2.reset (new juce::ImageButton ("Algorithm Switch Off FM")); addAndMakeVisible (algoSwitchButtonOffEx2.get()); algoSwitchButtonOffEx2->setButtonText (TRANS("new button")); algoSwitchButtonOffEx2->addListener (this); algoSwitchButtonOffEx2->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx2->setBounds (952, 727, 64, 24); - algoSwitchButtonOnEx1.reset (new ImageButton ("Algorithm Switch On AM")); + algoSwitchButtonOnEx1.reset (new juce::ImageButton ("Algorithm Switch On AM")); addAndMakeVisible (algoSwitchButtonOnEx1.get()); algoSwitchButtonOnEx1->setButtonText (TRANS("new button")); algoSwitchButtonOnEx1->addListener (this); algoSwitchButtonOnEx1->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOnEx1->setBounds (1040, 701, 64, 24); - algoSwitchButtonOnEx2.reset (new ImageButton ("Algorithm Switch On FM")); + algoSwitchButtonOnEx2.reset (new juce::ImageButton ("Algorithm Switch On FM")); addAndMakeVisible (algoSwitchButtonOnEx2.get()); algoSwitchButtonOnEx2->setButtonText (TRANS("new button")); algoSwitchButtonOnEx2->addListener (this); algoSwitchButtonOnEx2->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOnEx2->setBounds (1040, 727, 64, 24); - label4.reset (new Label ("new label", - TRANS("AM"))); + label4.reset (new juce::Label ("new label", + TRANS("AM"))); addAndMakeVisible (label4.get()); - label4->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label4->setJustificationType (Justification::centredLeft); + label4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label4->setJustificationType (juce::Justification::centredLeft); label4->setEditable (false, false, false); - label4->setColour (Label::textColourId, Colours::green); - label4->setColour (TextEditor::textColourId, Colours::black); - label4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label4->setColour (juce::Label::textColourId, juce::Colours::green); + label4->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label4->setBounds (970, 701, 32, 24); - label5.reset (new Label ("new label", - TRANS("FM"))); + label5.reset (new juce::Label ("new label", + TRANS("FM"))); addAndMakeVisible (label5.get()); - label5->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label5->setJustificationType (Justification::centredLeft); + label5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label5->setJustificationType (juce::Justification::centredLeft); label5->setEditable (false, false, false); - label5->setColour (Label::textColourId, Colours::green); - label5->setColour (TextEditor::textColourId, Colours::black); - label5->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label5->setColour (juce::Label::textColourId, juce::Colours::green); + label5->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label5->setBounds (971, 727, 32, 24); - label6.reset (new Label ("new label", - TRANS("AM"))); + label6.reset (new juce::Label ("new label", + TRANS("AM"))); addAndMakeVisible (label6.get()); - label6->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label6->setJustificationType (Justification::centredLeft); + label6->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label6->setJustificationType (juce::Justification::centredLeft); label6->setEditable (false, false, false); - label6->setColour (Label::textColourId, Colours::black); - label6->setColour (TextEditor::textColourId, Colours::black); - label6->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label6->setColour (juce::Label::textColourId, juce::Colours::black); + label6->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label6->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label6->setBounds (1057, 701, 32, 24); - label7.reset (new Label ("new label", - TRANS("FM"))); + label7.reset (new juce::Label ("new label", + TRANS("FM"))); addAndMakeVisible (label7.get()); - label7->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label7->setJustificationType (Justification::centredLeft); + label7->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label7->setJustificationType (juce::Justification::centredLeft); label7->setEditable (false, false, false); - label7->setColour (Label::textColourId, Colours::black); - label7->setColour (TextEditor::textColourId, Colours::black); - label7->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label7->setColour (juce::Label::textColourId, juce::Colours::black); + label7->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label7->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label7->setBounds (1058, 727, 32, 24); - label8.reset (new Label ("new label", - TRANS("Example AM/FM switches"))); + label8.reset (new juce::Label ("new label", + TRANS("Example AM/FM switches"))); addAndMakeVisible (label8.get()); - label8->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label8->setJustificationType (Justification::centred); + label8->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label8->setJustificationType (juce::Justification::centred); label8->setEditable (false, false, false); - label8->setColour (Label::textColourId, Colours::green); - label8->setColour (TextEditor::textColourId, Colours::black); - label8->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label8->setColour (juce::Label::textColourId, juce::Colours::green); + label8->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label8->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label8->setBounds (944, 816, 320, 24); - algoSwitchButtonOn2Ex1.reset (new ImageButton ("Algorithm Switch On2 AM")); + algoSwitchButtonOn2Ex1.reset (new juce::ImageButton ("Algorithm Switch On2 AM")); addAndMakeVisible (algoSwitchButtonOn2Ex1.get()); algoSwitchButtonOn2Ex1->setButtonText (TRANS("new button")); algoSwitchButtonOn2Ex1->addListener (this); algoSwitchButtonOn2Ex1->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn2Ex1->setBounds (1128, 700, 64, 24); - algoSwitchButtonOn2Ex2.reset (new ImageButton ("Algorithm Switch On2 FM")); + algoSwitchButtonOn2Ex2.reset (new juce::ImageButton ("Algorithm Switch On2 FM")); addAndMakeVisible (algoSwitchButtonOn2Ex2.get()); algoSwitchButtonOn2Ex2->setButtonText (TRANS("new button")); algoSwitchButtonOn2Ex2->addListener (this); algoSwitchButtonOn2Ex2->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn2Ex2->setBounds (1128, 727, 64, 24); - label9.reset (new Label ("new label", - TRANS("AM"))); + label9.reset (new juce::Label ("new label", + TRANS("AM"))); addAndMakeVisible (label9.get()); - label9->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label9->setJustificationType (Justification::centredLeft); + label9->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label9->setJustificationType (juce::Justification::centredLeft); label9->setEditable (false, false, false); - label9->setColour (Label::textColourId, Colours::black); - label9->setColour (TextEditor::textColourId, Colours::black); - label9->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label9->setColour (juce::Label::textColourId, juce::Colours::black); + label9->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label9->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label9->setBounds (1145, 700, 32, 24); - label10.reset (new Label ("new label", - TRANS("FM"))); + label10.reset (new juce::Label ("new label", + TRANS("FM"))); addAndMakeVisible (label10.get()); - label10->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label10->setJustificationType (Justification::centredLeft); + label10->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label10->setJustificationType (juce::Justification::centredLeft); label10->setEditable (false, false, false); - label10->setColour (Label::textColourId, Colours::black); - label10->setColour (TextEditor::textColourId, Colours::black); - label10->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label10->setColour (juce::Label::textColourId, juce::Colours::black); + label10->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label10->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label10->setBounds (1146, 727, 32, 24); - algoSwitchButtonOn3Ex1.reset (new ImageButton ("Algorithm Switch On3 AM")); + algoSwitchButtonOn3Ex1.reset (new juce::ImageButton ("Algorithm Switch On3 AM")); addAndMakeVisible (algoSwitchButtonOn3Ex1.get()); algoSwitchButtonOn3Ex1->setButtonText (TRANS("new button")); algoSwitchButtonOn3Ex1->addListener (this); algoSwitchButtonOn3Ex1->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn3Ex1->setBounds (1216, 700, 64, 24); - algoSwitchButtonOn3Ex2.reset (new ImageButton ("Algorithm Switch On3 FM")); + algoSwitchButtonOn3Ex2.reset (new juce::ImageButton ("Algorithm Switch On3 FM")); addAndMakeVisible (algoSwitchButtonOn3Ex2.get()); algoSwitchButtonOn3Ex2->setButtonText (TRANS("new button")); algoSwitchButtonOn3Ex2->addListener (this); algoSwitchButtonOn3Ex2->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn3Ex2->setBounds (1216, 727, 64, 24); - label11.reset (new Label ("new label", - TRANS("AM"))); + label11.reset (new juce::Label ("new label", + TRANS("AM"))); addAndMakeVisible (label11.get()); - label11->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label11->setJustificationType (Justification::centredLeft); + label11->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label11->setJustificationType (juce::Justification::centredLeft); label11->setEditable (false, false, false); - label11->setColour (Label::textColourId, Colours::black); - label11->setColour (TextEditor::textColourId, Colours::black); - label11->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label11->setColour (juce::Label::textColourId, juce::Colours::black); + label11->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label11->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label11->setBounds (1233, 700, 31, 24); - label12.reset (new Label ("new label", - TRANS("FM"))); + label12.reset (new juce::Label ("new label", + TRANS("FM"))); addAndMakeVisible (label12.get()); - label12->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label12->setJustificationType (Justification::centredLeft); + label12->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label12->setJustificationType (juce::Justification::centredLeft); label12->setEditable (false, false, false); - label12->setColour (Label::textColourId, Colours::black); - label12->setColour (TextEditor::textColourId, Colours::black); - label12->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label12->setColour (juce::Label::textColourId, juce::Colours::black); + label12->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label12->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label12->setBounds (1234, 727, 32, 24); - TwoOpAMButton.reset (new ImageButton ("Two OP AM Button")); + TwoOpAMButton.reset (new juce::ImageButton ("Two OP AM Button")); addAndMakeVisible (TwoOpAMButton.get()); TwoOpAMButton->setButtonText (TRANS("new button")); TwoOpAMButton->addListener (this); TwoOpAMButton->setImages (false, true, false, - ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000)); TwoOpAMButton->setBounds (1173, 484, 60, 56); - TwoOpFMButton.reset (new ImageButton ("Two OP FM Button")); + TwoOpFMButton.reset (new juce::ImageButton ("Two OP FM Button")); addAndMakeVisible (TwoOpFMButton.get()); TwoOpFMButton->setButtonText (TRANS("new button")); TwoOpFMButton->addListener (this); TwoOpFMButton->setImages (false, true, true, - ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000)); TwoOpFMButton->setBounds (1156, 568, 80, 26); - label13.reset (new Label ("new label", - TRANS("M"))); + label13.reset (new juce::Label ("new label", + TRANS("M"))); addAndMakeVisible (label13.get()); - label13->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label13->setJustificationType (Justification::centred); + label13->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label13->setJustificationType (juce::Justification::centred); label13->setEditable (false, false, false); - label13->setColour (TextEditor::textColourId, Colours::black); - label13->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label13->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label13->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label13->setBounds (1179, 489, 24, 24); - label14.reset (new Label ("new label", - TRANS("C"))); + label14.reset (new juce::Label ("new label", + TRANS("C"))); addAndMakeVisible (label14.get()); - label14->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label14->setJustificationType (Justification::centred); + label14->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label14->setJustificationType (juce::Justification::centred); label14->setEditable (false, false, false); - label14->setColour (TextEditor::textColourId, Colours::black); - label14->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label14->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label14->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label14->setBounds (1179, 518, 24, 24); - label15.reset (new Label ("new label", - TRANS("M"))); + label15.reset (new juce::Label ("new label", + TRANS("M"))); addAndMakeVisible (label15.get()); - label15->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label15->setJustificationType (Justification::centred); + label15->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label15->setJustificationType (juce::Justification::centred); label15->setEditable (false, false, false); - label15->setColour (TextEditor::textColourId, Colours::black); - label15->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label15->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label15->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label15->setBounds (1166, 572, 24, 24); - label16.reset (new Label ("new label", - TRANS("C"))); + label16.reset (new juce::Label ("new label", + TRANS("C"))); addAndMakeVisible (label16.get()); - label16->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label16->setJustificationType (Justification::centred); + label16->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label16->setJustificationType (juce::Justification::centred); label16->setEditable (false, false, false); - label16->setColour (TextEditor::textColourId, Colours::black); - label16->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label16->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label16->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label16->setBounds (1195, 572, 24, 24); - label17.reset (new Label ("new label", - TRANS("Example Algorithms"))); + label17.reset (new juce::Label ("new label", + TRANS("Example Algorithms"))); addAndMakeVisible (label17.get()); - label17->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label17->setJustificationType (Justification::centred); + label17->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label17->setJustificationType (juce::Justification::centred); label17->setEditable (false, false, false); - label17->setColour (Label::textColourId, Colours::green); - label17->setColour (TextEditor::textColourId, Colours::black); - label17->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label17->setColour (juce::Label::textColourId, juce::Colours::green); + label17->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label17->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label17->setBounds (1128, 608, 136, 24); - groupComponent6.reset (new GroupComponent ("new group", - String())); + groupComponent6.reset (new juce::GroupComponent ("new group", + juce::String())); addAndMakeVisible (groupComponent6.get()); - groupComponent6->setColour (GroupComponent::outlineColourId, Colours::green); + groupComponent6->setColour (juce::GroupComponent::outlineColourId, juce::Colours::green); groupComponent6->setBounds (933, 56, 168, 95); - algoSwitchButtonOnEx3.reset (new ImageButton ("Algorithm Switch On AM")); + algoSwitchButtonOnEx3.reset (new juce::ImageButton ("Algorithm Switch On AM")); addAndMakeVisible (algoSwitchButtonOnEx3.get()); algoSwitchButtonOnEx3->setButtonText (TRANS("new button")); algoSwitchButtonOnEx3->addListener (this); algoSwitchButtonOnEx3->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOnEx3->setBounds (949, 82, 64, 24); - label18.reset (new Label ("new label", - TRANS("AM"))); + label18.reset (new juce::Label ("new label", + TRANS("AM"))); addAndMakeVisible (label18.get()); - label18->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label18->setJustificationType (Justification::centredLeft); + label18->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label18->setJustificationType (juce::Justification::centredLeft); label18->setEditable (false, false, false); - label18->setColour (Label::textColourId, Colours::black); - label18->setColour (TextEditor::textColourId, Colours::black); - label18->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label18->setColour (juce::Label::textColourId, juce::Colours::black); + label18->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label18->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label18->setBounds (966, 82, 32, 24); - algoSwitchButtonOffEx3.reset (new ImageButton ("Algorithm Switch Off FM")); + algoSwitchButtonOffEx3.reset (new juce::ImageButton ("Algorithm Switch Off FM")); addAndMakeVisible (algoSwitchButtonOffEx3.get()); algoSwitchButtonOffEx3->setButtonText (TRANS("new button")); algoSwitchButtonOffEx3->addListener (this); algoSwitchButtonOffEx3->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx3->setBounds (949, 108, 64, 24); - label19.reset (new Label ("new label", - TRANS("FM"))); + label19.reset (new juce::Label ("new label", + TRANS("FM"))); addAndMakeVisible (label19.get()); - label19->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label19->setJustificationType (Justification::centredLeft); + label19->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label19->setJustificationType (juce::Justification::centredLeft); label19->setEditable (false, false, false); - label19->setColour (Label::textColourId, Colours::green); - label19->setColour (TextEditor::textColourId, Colours::black); - label19->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label19->setColour (juce::Label::textColourId, juce::Colours::green); + label19->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label19->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label19->setBounds (968, 108, 32, 24); - TwoOpAMButton2.reset (new ImageButton ("Two OP AM Button")); + TwoOpAMButton2.reset (new juce::ImageButton ("Two OP AM Button")); addAndMakeVisible (TwoOpAMButton2.get()); TwoOpAMButton2->setButtonText (TRANS("new button")); TwoOpAMButton2->addListener (this); TwoOpAMButton2->setImages (false, true, false, - ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000)); TwoOpAMButton2->setBounds (1029, 77, 60, 56); - label20.reset (new Label ("new label", - TRANS("M"))); + label20.reset (new juce::Label ("new label", + TRANS("M"))); addAndMakeVisible (label20.get()); - label20->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label20->setJustificationType (Justification::centred); + label20->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label20->setJustificationType (juce::Justification::centred); label20->setEditable (false, false, false); - label20->setColour (TextEditor::textColourId, Colours::black); - label20->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label20->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label20->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label20->setBounds (1035, 82, 24, 24); - label21.reset (new Label ("new label", - TRANS("C"))); + label21.reset (new juce::Label ("new label", + TRANS("C"))); addAndMakeVisible (label21.get()); - label21->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label21->setJustificationType (Justification::centred); + label21->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label21->setJustificationType (juce::Justification::centred); label21->setEditable (false, false, false); - label21->setColour (TextEditor::textColourId, Colours::black); - label21->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label21->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label21->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label21->setBounds (1035, 111, 24, 24); - label22.reset (new Label ("new label", - TRANS("Example Algo Sections w/ Diagram"))); + label22.reset (new juce::Label ("new label", + TRANS("Example Algo Sections w/ Diagram"))); addAndMakeVisible (label22.get()); - label22->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label22->setJustificationType (Justification::centred); + label22->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label22->setJustificationType (juce::Justification::centred); label22->setEditable (false, false, false); - label22->setColour (Label::textColourId, Colours::green); - label22->setColour (TextEditor::textColourId, Colours::black); - label22->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label22->setColour (juce::Label::textColourId, juce::Colours::green); + label22->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label22->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label22->setBounds (952, 160, 328, 40); - algoSwitchButtonOffEx4.reset (new ImageButton ("Algorithm Switch Off AM")); + algoSwitchButtonOffEx4.reset (new juce::ImageButton ("Algorithm Switch Off AM")); addAndMakeVisible (algoSwitchButtonOffEx4.get()); algoSwitchButtonOffEx4->setButtonText (TRANS("new button")); algoSwitchButtonOffEx4->addListener (this); algoSwitchButtonOffEx4->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx4->setBounds (1125, 82, 64, 24); - label23.reset (new Label ("new label", - TRANS("AM"))); + label23.reset (new juce::Label ("new label", + TRANS("AM"))); addAndMakeVisible (label23.get()); - label23->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label23->setJustificationType (Justification::centredLeft); + label23->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label23->setJustificationType (juce::Justification::centredLeft); label23->setEditable (false, false, false); - label23->setColour (Label::textColourId, Colours::green); - label23->setColour (TextEditor::textColourId, Colours::black); - label23->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label23->setColour (juce::Label::textColourId, juce::Colours::green); + label23->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label23->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label23->setBounds (1143, 82, 32, 24); - algoSwitchButtonOn3Ex3.reset (new ImageButton ("Algorithm Switch On3 FM")); + algoSwitchButtonOn3Ex3.reset (new juce::ImageButton ("Algorithm Switch On3 FM")); addAndMakeVisible (algoSwitchButtonOn3Ex3.get()); algoSwitchButtonOn3Ex3->setButtonText (TRANS("new button")); algoSwitchButtonOn3Ex3->addListener (this); algoSwitchButtonOn3Ex3->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn3Ex3->setBounds (1125, 109, 64, 24); - label24.reset (new Label ("new label", - TRANS("FM"))); + label24.reset (new juce::Label ("new label", + TRANS("FM"))); addAndMakeVisible (label24.get()); - label24->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label24->setJustificationType (Justification::centredLeft); + label24->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label24->setJustificationType (juce::Justification::centredLeft); label24->setEditable (false, false, false); - label24->setColour (Label::textColourId, Colours::black); - label24->setColour (TextEditor::textColourId, Colours::black); - label24->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label24->setColour (juce::Label::textColourId, juce::Colours::black); + label24->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label24->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label24->setBounds (1143, 109, 32, 24); - TwoOpFMButton2.reset (new ImageButton ("Two OP FM Button")); + TwoOpFMButton2.reset (new juce::ImageButton ("Two OP FM Button")); addAndMakeVisible (TwoOpFMButton2.get()); TwoOpFMButton2->setButtonText (TRANS("new button")); TwoOpFMButton2->addListener (this); TwoOpFMButton2->setImages (false, true, true, - ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000)); TwoOpFMButton2->setBounds (1196, 94, 80, 26); - label25.reset (new Label ("new label", - TRANS("M"))); + label25.reset (new juce::Label ("new label", + TRANS("M"))); addAndMakeVisible (label25.get()); - label25->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label25->setJustificationType (Justification::centred); + label25->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label25->setJustificationType (juce::Justification::centred); label25->setEditable (false, false, false); - label25->setColour (TextEditor::textColourId, Colours::black); - label25->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label25->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label25->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label25->setBounds (1206, 98, 24, 24); - label26.reset (new Label ("new label", - TRANS("C"))); + label26.reset (new juce::Label ("new label", + TRANS("C"))); addAndMakeVisible (label26.get()); - label26->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label26->setJustificationType (Justification::centred); + label26->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label26->setJustificationType (juce::Justification::centred); label26->setEditable (false, false, false); - label26->setColour (TextEditor::textColourId, Colours::black); - label26->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label26->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label26->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label26->setBounds (1235, 98, 24, 24); - groupComponent7.reset (new GroupComponent ("new group", - String())); + groupComponent7.reset (new juce::GroupComponent ("new group", + juce::String())); addAndMakeVisible (groupComponent7.get()); - groupComponent7->setColour (GroupComponent::outlineColourId, Colours::green); + groupComponent7->setColour (juce::GroupComponent::outlineColourId, juce::Colours::green); groupComponent7->setBounds (1112, 56, 168, 95); - algoSwitchButtonOffEx5.reset (new ImageButton ("Algorithm Switch Off AM")); + algoSwitchButtonOffEx5.reset (new juce::ImageButton ("Algorithm Switch Off AM")); addAndMakeVisible (algoSwitchButtonOffEx5.get()); algoSwitchButtonOffEx5->setButtonText (TRANS("new button")); algoSwitchButtonOffEx5->addListener (this); algoSwitchButtonOffEx5->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx5->setBounds (1037, 250, 64, 24); - label27.reset (new Label ("new label", - TRANS("AM"))); + label27.reset (new juce::Label ("new label", + TRANS("AM"))); addAndMakeVisible (label27.get()); - label27->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label27->setJustificationType (Justification::centredLeft); + label27->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label27->setJustificationType (juce::Justification::centredLeft); label27->setEditable (false, false, false); - label27->setColour (Label::textColourId, Colours::green); - label27->setColour (TextEditor::textColourId, Colours::black); - label27->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label27->setColour (juce::Label::textColourId, juce::Colours::green); + label27->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label27->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label27->setBounds (1055, 250, 32, 24); - algoSwitchButtonOn3Ex4.reset (new ImageButton ("Algorithm Switch On3 FM")); + algoSwitchButtonOn3Ex4.reset (new juce::ImageButton ("Algorithm Switch On3 FM")); addAndMakeVisible (algoSwitchButtonOn3Ex4.get()); algoSwitchButtonOn3Ex4->setButtonText (TRANS("new button")); algoSwitchButtonOn3Ex4->addListener (this); algoSwitchButtonOn3Ex4->setImages (false, true, true, - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000), - ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), + juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn3Ex4->setBounds (1103, 250, 64, 24); - label28.reset (new Label ("new label", - TRANS("FM"))); + label28.reset (new juce::Label ("new label", + TRANS("FM"))); addAndMakeVisible (label28.get()); - label28->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label28->setJustificationType (Justification::centredLeft); + label28->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label28->setJustificationType (juce::Justification::centredLeft); label28->setEditable (false, false, false); - label28->setColour (Label::textColourId, Colours::black); - label28->setColour (TextEditor::textColourId, Colours::black); - label28->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label28->setColour (juce::Label::textColourId, juce::Colours::black); + label28->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label28->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label28->setBounds (1121, 250, 32, 24); - groupComponent8.reset (new GroupComponent ("new group", - String())); + groupComponent8.reset (new juce::GroupComponent ("new group", + juce::String())); addAndMakeVisible (groupComponent8.get()); - groupComponent8->setColour (GroupComponent::outlineColourId, Colours::green); + groupComponent8->setColour (juce::GroupComponent::outlineColourId, juce::Colours::green); groupComponent8->setBounds (1008, 208, 168, 95); - frequencyLabel9.reset (new Label ("frequency label", - TRANS("Algorithm"))); + frequencyLabel9.reset (new juce::Label ("frequency label", + TRANS("Algorithm"))); addAndMakeVisible (frequencyLabel9.get()); frequencyLabel9->setTooltip (TRANS("In additive mode, carrier and modulator output are simply summed rather than modulated")); - frequencyLabel9->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - frequencyLabel9->setJustificationType (Justification::centredLeft); + frequencyLabel9->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel9->setJustificationType (juce::Justification::centredLeft); frequencyLabel9->setEditable (false, false, false); - frequencyLabel9->setColour (Label::textColourId, Colour (0xff007f00)); - frequencyLabel9->setColour (TextEditor::textColourId, Colours::black); - frequencyLabel9->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + frequencyLabel9->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel9->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel9->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel9->setBounds (1067, 216, 72, 24); - label29.reset (new Label ("new label", - TRANS("Example Algo Section w/o Diagram"))); + label29.reset (new juce::Label ("new label", + TRANS("Example Algo Section w/o Diagram"))); addAndMakeVisible (label29.get()); - label29->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label29->setJustificationType (Justification::centred); + label29->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label29->setJustificationType (juce::Justification::centred); label29->setEditable (false, false, false); - label29->setColour (Label::textColourId, Colours::green); - label29->setColour (TextEditor::textColourId, Colours::black); - label29->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label29->setColour (juce::Label::textColourId, juce::Colours::green); + label29->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label29->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label29->setBounds (944, 304, 328, 40); - label30.reset (new Label ("new label", - TRANS("Off On (Bright) On (Dark) On (Solid)"))); + label30.reset (new juce::Label ("new label", + TRANS("Off On (Bright) On (Dark) On (Solid)"))); addAndMakeVisible (label30.get()); - label30->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - label30->setJustificationType (Justification::centred); + label30->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + label30->setJustificationType (juce::Justification::centred); label30->setEditable (false, false, false); - label30->setColour (Label::textColourId, Colours::green); - label30->setColour (TextEditor::textColourId, Colours::black); - label30->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + label30->setColour (juce::Label::textColourId, juce::Colours::green); + label30->setColour (juce::TextEditor::textColourId, juce::Colours::black); + label30->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label30->setBounds (961, 768, 319, 24); - frequencyLabel10.reset (new Label ("frequency label", - TRANS("Keyscale Attenuation"))); + frequencyLabel10.reset (new juce::Label ("frequency label", + TRANS("Keyscale Attenuation"))); addAndMakeVisible (frequencyLabel10.get()); frequencyLabel10->setTooltip (TRANS("Attenuate amplitude with note frequency in dB per octave")); - frequencyLabel10->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - frequencyLabel10->setJustificationType (Justification::centred); + frequencyLabel10->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + frequencyLabel10->setJustificationType (juce::Justification::centred); frequencyLabel10->setEditable (false, false, false); - frequencyLabel10->setColour (Label::textColourId, Colour (0xff007f00)); - frequencyLabel10->setColour (TextEditor::textColourId, Colours::black); - frequencyLabel10->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + frequencyLabel10->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + frequencyLabel10->setColour (juce::TextEditor::textColourId, juce::Colours::black); + frequencyLabel10->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel10->setBounds (224, 376, 88, 48); - attenuationLabel5.reset (new Label ("attenuation label", - TRANS("Velocity Sensitivity"))); + attenuationLabel5.reset (new juce::Label ("attenuation label", + TRANS("Velocity Sensitivity"))); addAndMakeVisible (attenuationLabel5.get()); attenuationLabel5->setTooltip (TRANS("Set or disable velocity senstivity")); - attenuationLabel5->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - attenuationLabel5->setJustificationType (Justification::centred); + attenuationLabel5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + attenuationLabel5->setJustificationType (juce::Justification::centred); attenuationLabel5->setEditable (false, false, false); - attenuationLabel5->setColour (Label::textColourId, Colour (0xff007f00)); - attenuationLabel5->setColour (TextEditor::textColourId, Colours::black); - attenuationLabel5->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + attenuationLabel5->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + attenuationLabel5->setColour (juce::TextEditor::textColourId, juce::Colours::black); + attenuationLabel5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); attenuationLabel5->setBounds (328, 376, 80, 48); - fmButton.reset (new ImageButton ("fm button")); + fmButton.reset (new juce::ImageButton ("fm button")); addAndMakeVisible (fmButton.get()); fmButton->setTooltip (TRANS("FM: carrier frequency is modulated by the modulator")); fmButton->setButtonText (TRANS("FM")); @@ -1928,12 +1928,12 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) fmButton->addListener (this); fmButton->setImages (false, true, true, - ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); fmButton->setBounds (298, 472, 72, 56); - additiveButton.reset (new ImageButton ("Additive mode button")); + additiveButton.reset (new juce::ImageButton ("Additive mode button")); addAndMakeVisible (additiveButton.get()); additiveButton->setTooltip (TRANS("Additive: output the sum of the modulator and carrier")); additiveButton->setButtonText (TRANS("Additive Mode")); @@ -1941,12 +1941,12 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) additiveButton->addListener (this); additiveButton->setImages (false, true, true, - ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); additiveButton->setBounds (400, 472, 56, 56); - bassDrumButton.reset (new ImageButton ("bass drum button")); + bassDrumButton.reset (new juce::ImageButton ("bass drum button")); addAndMakeVisible (bassDrumButton.get()); bassDrumButton->setTooltip (TRANS("Bass drum")); bassDrumButton->setButtonText (TRANS("bass drum")); @@ -1954,12 +1954,12 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) bassDrumButton->addListener (this); bassDrumButton->setImages (false, true, true, - ImageCache::getFromMemory (bassdrum_png, bassdrum_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (bassdrum_png, bassdrum_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); bassDrumButton->setBounds (576, 464, 30, 30); - snareDrumButton.reset (new ImageButton ("snare drum button")); + snareDrumButton.reset (new juce::ImageButton ("snare drum button")); addAndMakeVisible (snareDrumButton.get()); snareDrumButton->setTooltip (TRANS("Snare")); snareDrumButton->setButtonText (TRANS("snare")); @@ -1967,12 +1967,12 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) snareDrumButton->addListener (this); snareDrumButton->setImages (false, true, true, - ImageCache::getFromMemory (snare_png, snare_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (snare_png, snare_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); snareDrumButton->setBounds (632, 464, 30, 30); - disablePercussionButton.reset (new ImageButton ("percussion disabled button")); + disablePercussionButton.reset (new juce::ImageButton ("percussion disabled button")); addAndMakeVisible (disablePercussionButton.get()); disablePercussionButton->setTooltip (TRANS("Disable percussion")); disablePercussionButton->setButtonText (TRANS("disabled")); @@ -1980,12 +1980,12 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) disablePercussionButton->addListener (this); disablePercussionButton->setImages (false, true, true, - ImageCache::getFromMemory (disabled_png, disabled_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (disabled_png, disabled_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); disablePercussionButton->setBounds (520, 464, 30, 30); - tomTomButton.reset (new ImageButton ("tom tom button")); + tomTomButton.reset (new juce::ImageButton ("tom tom button")); addAndMakeVisible (tomTomButton.get()); tomTomButton->setTooltip (TRANS("Tom-tom")); tomTomButton->setButtonText (TRANS("tom tom")); @@ -1993,12 +1993,12 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) tomTomButton->addListener (this); tomTomButton->setImages (false, true, true, - ImageCache::getFromMemory (tom_png, tom_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (tom_png, tom_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); tomTomButton->setBounds (520, 512, 30, 30); - cymbalButton.reset (new ImageButton ("cymbalButton")); + cymbalButton.reset (new juce::ImageButton ("cymbalButton")); addAndMakeVisible (cymbalButton.get()); cymbalButton->setTooltip (TRANS("Cymbal")); cymbalButton->setButtonText (TRANS("snare")); @@ -2006,12 +2006,12 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) cymbalButton->addListener (this); cymbalButton->setImages (false, true, true, - ImageCache::getFromMemory (cymbal_png, cymbal_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (cymbal_png, cymbal_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); cymbalButton->setBounds (576, 512, 30, 30); - hiHatButton.reset (new ImageButton ("hi hat button")); + hiHatButton.reset (new juce::ImageButton ("hi hat button")); addAndMakeVisible (hiHatButton.get()); hiHatButton->setTooltip (TRANS("Hi-hat")); hiHatButton->setButtonText (TRANS("hi-hat")); @@ -2019,58 +2019,58 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) hiHatButton->addListener (this); hiHatButton->setImages (false, true, true, - ImageCache::getFromMemory (hihat_png, hihat_pngSize), 0.500f, Colour (0x00000000), - Image(), 0.500f, Colour (0x00000000), - Image(), 1.000f, Colour (0x00000000)); + juce::ImageCache::getFromMemory (hihat_png, hihat_pngSize), 0.500f, juce::Colour (0x00000000), + juce::Image(), 0.500f, juce::Colour (0x00000000), + juce::Image(), 1.000f, juce::Colour (0x00000000)); hiHatButton->setBounds (632, 512, 30, 30); - dbLabel7.reset (new Label ("db label", - TRANS("FM"))); + dbLabel7.reset (new juce::Label ("db label", + TRANS("FM"))); addAndMakeVisible (dbLabel7.get()); - dbLabel7->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dbLabel7->setJustificationType (Justification::centredLeft); + dbLabel7->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel7->setJustificationType (juce::Justification::centredLeft); dbLabel7->setEditable (false, false, false); - dbLabel7->setColour (Label::textColourId, Colour (0xff007f00)); - dbLabel7->setColour (Label::outlineColourId, Colour (0x00000000)); - dbLabel7->setColour (TextEditor::textColourId, Colours::black); - dbLabel7->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dbLabel7->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel7->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel7->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel7->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel7->setBounds (320, 520, 32, 40); - dbLabel8.reset (new Label ("db label", - TRANS("Additive"))); + dbLabel8.reset (new juce::Label ("db label", + TRANS("Additive"))); addAndMakeVisible (dbLabel8.get()); - dbLabel8->setFont (Font (15.00f, Font::plain).withTypefaceStyle ("Regular")); - dbLabel8->setJustificationType (Justification::centred); + dbLabel8->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); + dbLabel8->setJustificationType (juce::Justification::centred); dbLabel8->setEditable (false, false, false); - dbLabel8->setColour (Label::textColourId, Colour (0xff007f00)); - dbLabel8->setColour (Label::outlineColourId, Colour (0x00000000)); - dbLabel8->setColour (TextEditor::textColourId, Colours::black); - dbLabel8->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + dbLabel8->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); + dbLabel8->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); + dbLabel8->setColour (juce::TextEditor::textColourId, juce::Colours::black); + dbLabel8->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel8->setBounds (392, 520, 72, 40); - previousButton.reset (new TextButton ("previous button")); + previousButton.reset (new juce::TextButton ("previous button")); addAndMakeVisible (previousButton.get()); previousButton->setButtonText (TRANS("-")); - previousButton->setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); + previousButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); previousButton->addListener (this); - previousButton->setColour (TextButton::buttonColourId, Colour (0xff007f00)); - previousButton->setColour (TextButton::buttonOnColourId, Colours::lime); + previousButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); + previousButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); previousButton->setBounds (776, 512, 24, 24); - nextButton.reset (new TextButton ("next button")); + nextButton.reset (new juce::TextButton ("next button")); addAndMakeVisible (nextButton.get()); nextButton->setButtonText (TRANS("+")); - nextButton->setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); + nextButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); nextButton->addListener (this); - nextButton->setColour (TextButton::buttonColourId, Colour (0xff007f00)); - nextButton->setColour (TextButton::buttonOnColourId, Colours::lime); + nextButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); + nextButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); nextButton->setBounds (800, 512, 24, 24); - drawable1 = Drawable::createFromImageData (gui_svg, gui_svgSize); + drawable1 = juce::Drawable::createFromImageData (gui_svg, gui_svgSize); //[UserPreSize] oplLookAndFeel.reset(new OPLLookAndFeel()); @@ -2424,22 +2424,22 @@ PluginGui::~PluginGui() } //============================================================================== -void PluginGui::paint (Graphics& g) +void PluginGui::paint (juce::Graphics& g) { //[UserPrePaint] Add your own custom painting code here.. //[/UserPrePaint] - g.fillAll (Colours::black); + g.fillAll (juce::Colours::black); { int x = 0, y = 0, width = proportionOfWidth (1.0000f), height = proportionOfHeight (1.0000f); //[UserPaintCustomArguments] Customize the painting arguments here.. //[/UserPaintCustomArguments] - g.setColour (Colours::black); + g.setColour (juce::Colours::black); jassert (drawable1 != nullptr); if (drawable1 != nullptr) - drawable1->drawWithin (g, Rectangle (x, y, width, height).toFloat(), - RectanglePlacement::stretchToFit, 1.000f); + drawable1->drawWithin (g, juce::Rectangle (x, y, width, height).toFloat(), + juce::RectanglePlacement::stretchToFit, 1.000f); } //[UserPaint] Add your own custom painting code here.. @@ -2457,7 +2457,7 @@ void PluginGui::resized() //[/UserResized] } -void PluginGui::comboBoxChanged (ComboBox* comboBoxThatHasChanged) +void PluginGui::comboBoxChanged (juce::ComboBox* comboBoxThatHasChanged) { //[UsercomboBoxChanged_Pre] @@ -2524,7 +2524,7 @@ void PluginGui::comboBoxChanged (ComboBox* comboBoxThatHasChanged) //[/UsercomboBoxChanged_Post] } -void PluginGui::sliderValueChanged (Slider* sliderThatWasMoved) +void PluginGui::sliderValueChanged (juce::Slider* sliderThatWasMoved) { //[UsersliderValueChanged_Pre] //[/UsersliderValueChanged_Pre] @@ -2617,7 +2617,7 @@ void PluginGui::sliderValueChanged (Slider* sliderThatWasMoved) //[/UsersliderValueChanged_Post] } -void PluginGui::buttonClicked (Button* buttonThatWasClicked) +void PluginGui::buttonClicked (juce::Button* buttonThatWasClicked) { //[UserbuttonClicked_Pre] // TODO: diff --git a/Source/PluginGui.h b/Source/PluginGui.h index 77621a7..b336d86 100644 --- a/Source/PluginGui.h +++ b/Source/PluginGui.h @@ -7,12 +7,12 @@ the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. - Created with Projucer version: 5.4.7 + Created with Projucer version: 6.0.5 ------------------------------------------------------------------------------ The Projucer is part of the JUCE library. - Copyright (c) 2017 - ROLI Ltd. + Copyright (c) 2020 - Raw Material Software Limited. ============================================================================== */ @@ -39,9 +39,9 @@ class PluginGui : public Component, public FileDragAndDropTarget, public DragAndDropContainer, public Timer, - public ComboBox::Listener, - public Slider::Listener, - public Button::Listener + public juce::ComboBox::Listener, + public juce::Slider::Listener, + public juce::Button::Listener { public: //============================================================================== @@ -69,11 +69,11 @@ public: //[/UserMethods] - void paint (Graphics& g) override; + void paint (juce::Graphics& g) override; void resized() override; - void comboBoxChanged (ComboBox* comboBoxThatHasChanged) override; - void sliderValueChanged (Slider* sliderThatWasMoved) override; - void buttonClicked (Button* buttonThatWasClicked) override; + void comboBoxChanged (juce::ComboBox* comboBoxThatHasChanged) override; + void sliderValueChanged (juce::Slider* sliderThatWasMoved) override; + void buttonClicked (juce::Button* buttonThatWasClicked) override; // Binary resources: static const char* full_sine_png; @@ -181,166 +181,166 @@ return options; //[/UserVariables] //============================================================================== - std::unique_ptr groupComponent2; - std::unique_ptr groupComponent4; - std::unique_ptr groupComponent11; - std::unique_ptr groupComponent10; - std::unique_ptr groupComponent9; - std::unique_ptr groupComponent; - std::unique_ptr frequencyComboBox; - std::unique_ptr