diff --git a/Instruments/original/apoc_lead.sbi b/Instruments/original/apoc_lead.sbi new file mode 100644 index 0000000..f6b5833 Binary files /dev/null and b/Instruments/original/apoc_lead.sbi differ diff --git a/Instruments/original/chimes.sbi b/Instruments/original/chimes.sbi new file mode 100644 index 0000000..ba65dc3 Binary files /dev/null and b/Instruments/original/chimes.sbi differ diff --git a/JuceOPLVSTi.jucer b/JuceOPLVSTi.jucer index 278abee..fc8f925 100644 --- a/JuceOPLVSTi.jucer +++ b/JuceOPLVSTi.jucer @@ -1,6 +1,6 @@ -setValue(processor->getEnumParameter("Emulator"), juce::NotificationType::dontSendNotification); -/// setToggleState(bool, bool) is deprecated. -/// Jeff-Russ replaced the second arg of "false" with dontSendNotification: - sineImageButton->setToggleState(false, dontSendNotification); halfsineImageButton->setToggleState(false, dontSendNotification); abssineImageButton->setToggleState(false, dontSendNotification); @@ -49,8 +46,8 @@ void PluginGui::updateFromParameters() 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); @@ -70,8 +67,27 @@ void PluginGui::updateFromParameters() case 7: logsawImageButton2->setToggleState(true, dontSendNotification); break; } -/// setSelectedItemIndex(bool, bool) is deprecated. -/// Jeff-Russ replaced the second arg of "true" with "sendNotificationAsync": + 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; + } frequencyComboBox->setSelectedItemIndex ( processor->getEnumParameter("Modulator Frequency Multiplier"), @@ -124,12 +140,6 @@ void PluginGui::updateFromParameters() velocityComboBox2->setSelectedItemIndex ( processor->getEnumParameter("Carrier Velocity Sensitivity"), sendNotificationAsync); - algorithmComboBox->setSelectedItemIndex ( - processor->getEnumParameter("Algorithm"), - sendNotificationAsync); - percussionComboBox->setSelectedItemIndex ( - processor->getEnumParameter("Percussion Mode"), - sendNotificationAsync); tooltipWindow.setColour(tooltipWindow.backgroundColourId, Colour(0x0)); tooltipWindow.setColour(tooltipWindow.textColourId, Colour(COLOUR_MID)); @@ -156,6 +166,24 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) //[Constructor_pre] You can add your own custom stuff here.. //[/Constructor_pre] + addAndMakeVisible (groupComponent11 = new GroupComponent ("new group", + TRANS("Percussion"))); + groupComponent11->setTextLabelPosition (Justification::centredLeft); + groupComponent11->setColour (GroupComponent::outlineColourId, Colour (0xff007f00)); + groupComponent11->setColour (GroupComponent::textColourId, Colour (0xff007f00)); + + addAndMakeVisible (groupComponent10 = new GroupComponent ("new group", + TRANS("Algorithm"))); + groupComponent10->setTextLabelPosition (Justification::centredLeft); + groupComponent10->setColour (GroupComponent::outlineColourId, Colour (0xff007f00)); + groupComponent10->setColour (GroupComponent::textColourId, Colour (0xff007f00)); + + addAndMakeVisible (groupComponent9 = new GroupComponent ("new group", + TRANS("File"))); + groupComponent9->setTextLabelPosition (Justification::centredLeft); + groupComponent9->setColour (GroupComponent::outlineColourId, Colour (0xff007f00)); + groupComponent9->setColour (GroupComponent::textColourId, Colour (0xff007f00)); + addAndMakeVisible (groupComponent = new GroupComponent ("new group", TRANS("Modulator"))); groupComponent->setTextLabelPosition (Justification::centredLeft); @@ -595,7 +623,7 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) frequencyLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); addAndMakeVisible (groupComponent3 = new GroupComponent ("new group", - TRANS("Common"))); + TRANS("Effect depth"))); groupComponent3->setTextLabelPosition (Justification::centredLeft); groupComponent3->setColour (GroupComponent::outlineColourId, Colour (0xff007f00)); groupComponent3->setColour (GroupComponent::textColourId, Colour (0xff007f00)); @@ -612,7 +640,7 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) tremoloSlider->addListener (this); addAndMakeVisible (frequencyLabel5 = new Label ("frequency label", - TRANS("Tremolo Depth\n"))); + TRANS("Tremolo\n"))); frequencyLabel5->setTooltip (TRANS("OPL global tremolo depth")); frequencyLabel5->setFont (Font (15.00f, Font::plain)); frequencyLabel5->setJustificationType (Justification::centredLeft); @@ -643,7 +671,7 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) vibratoSlider->addListener (this); addAndMakeVisible (frequencyLabel6 = new Label ("frequency label", - TRANS("Vibrato Depth"))); + TRANS("Vibrato"))); frequencyLabel6->setTooltip (TRANS("OPL global vibrato depth")); frequencyLabel6->setFont (Font (15.00f, Font::plain)); frequencyLabel6->setJustificationType (Justification::centredLeft); @@ -665,7 +693,7 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) addAndMakeVisible (feedbackSlider = new Slider ("feedback slider")); feedbackSlider->setRange (0, 7, 1); - feedbackSlider->setSliderStyle (Slider::RotaryVerticalDrag); + feedbackSlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag); feedbackSlider->setTextBoxStyle (Slider::TextBoxBelow, true, 30, 20); feedbackSlider->setColour (Slider::thumbColourId, Colour (0xff00af00)); feedbackSlider->setColour (Slider::trackColourId, Colour (0x7f007f00)); @@ -788,25 +816,6 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, Colour (0x00000000), Image(), 0.500f, Colour (0x00000000), Image(), 1.000f, Colour (0x00000000)); - addAndMakeVisible (algorithmComboBox = new ComboBox ("algorithm combo box")); - algorithmComboBox->setEditableText (false); - algorithmComboBox->setJustificationType (Justification::centredLeft); - algorithmComboBox->setTextWhenNothingSelected (String()); - algorithmComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); - algorithmComboBox->addItem (TRANS("FM"), 1); - algorithmComboBox->addItem (TRANS("Additive"), 2); - algorithmComboBox->addListener (this); - - addAndMakeVisible (frequencyLabel8 = new Label ("frequency label", - TRANS("Algorithm"))); - frequencyLabel8->setTooltip (TRANS("In additive mode, carrier and modulator output are simply summed rather than modulated")); - frequencyLabel8->setFont (Font (15.00f, Font::plain)); - frequencyLabel8->setJustificationType (Justification::centred); - frequencyLabel8->setEditable (false, false, false); - frequencyLabel8->setColour (Label::textColourId, Colour (0xff007f00)); - frequencyLabel8->setColour (TextEditor::textColourId, Colours::black); - frequencyLabel8->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); - addAndMakeVisible (dbLabel4 = new Label ("db label", TRANS("dB/8ve\n"))); dbLabel4->setFont (Font (15.00f, Font::plain)); @@ -888,38 +897,15 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) recordButton->addListener (this); recordButton->setColour (ToggleButton::textColourId, Colour (0xff007f00)); - addAndMakeVisible (percussionComboBox = new ComboBox ("percussion combo box")); - percussionComboBox->setEditableText (false); - percussionComboBox->setJustificationType (Justification::centredLeft); - percussionComboBox->setTextWhenNothingSelected (String()); - percussionComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); - percussionComboBox->addItem (TRANS("Off"), 1); - percussionComboBox->addItem (TRANS("Bass drum"), 2); - percussionComboBox->addItem (TRANS("Snare"), 3); - percussionComboBox->addItem (TRANS("Tom"), 4); - percussionComboBox->addItem (TRANS("Cymbal"), 5); - percussionComboBox->addItem (TRANS("Hi-hat"), 6); - percussionComboBox->addListener (this); - - addAndMakeVisible (percussionLabel = new Label ("percussion label", - TRANS("Percussion Mode"))); - percussionLabel->setTooltip (TRANS("Enable percussion instruments instead of oscillators")); - percussionLabel->setFont (Font (15.00f, Font::plain)); - percussionLabel->setJustificationType (Justification::centred); - percussionLabel->setEditable (false, false, false); - percussionLabel->setColour (Label::textColourId, Colour (0xff007f00)); - percussionLabel->setColour (TextEditor::textColourId, Colours::black); - percussionLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); - addAndMakeVisible (exportButton = new TextButton ("export button")); - exportButton->setButtonText (TRANS("Export .SBI instrument")); + exportButton->setButtonText (TRANS("Export .SBI")); exportButton->setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); exportButton->addListener (this); exportButton->setColour (TextButton::buttonColourId, Colour (0xff007f00)); exportButton->setColour (TextButton::buttonOnColourId, Colours::lime); addAndMakeVisible (loadButton = new TextButton ("load button")); - loadButton->setButtonText (TRANS("Load .SBI instrument")); + loadButton->setButtonText (TRANS("Load .SBI")); loadButton->setConnectedEdges (Button::ConnectedOnLeft | Button::ConnectedOnRight); loadButton->addListener (this); loadButton->setColour (TextButton::buttonColourId, Colour (0xff007f00)); @@ -998,27 +984,6 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) label3->setColour (TextEditor::textColourId, Colours::black); label3->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); - addAndMakeVisible (LineBorderButton3A = new ImageButton ("Line Border 3A")); - LineBorderButton3A->setButtonText (TRANS("new button")); - - LineBorderButton3A->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)); - addAndMakeVisible (LineBorderButton3B = new ImageButton ("Line Border 3B")); - LineBorderButton3B->setButtonText (TRANS("new button")); - - LineBorderButton3B->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)); - addAndMakeVisible (LineBorderButton3B2 = new ImageButton ("Line Border 3B")); - LineBorderButton3B2->setButtonText (TRANS("new button")); - - LineBorderButton3B2->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)); addAndMakeVisible (LineBorderButton1C2 = new ImageButton ("Line Border 1C")); LineBorderButton1C2->setButtonText (TRANS("new button")); @@ -1475,6 +1440,86 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) attenuationLabel5->setColour (TextEditor::textColourId, Colours::black); attenuationLabel5->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); + addAndMakeVisible (fmButton = new ImageButton ("fm button")); + 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 (twoopAm_png, twoopAm_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + addAndMakeVisible (additiveButton = new ImageButton ("Additive mode button")); + 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 (twoopFm_png, twoopFm_pngSize), 0.500f, Colour (0x00000000), + Image(), 0.500f, Colour (0x00000000), + Image(), 1.000f, Colour (0x00000000)); + addAndMakeVisible (bassDrumButton = new ImageButton ("bass drum button")); + 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)); + addAndMakeVisible (snareDrumButton = new ImageButton ("snare drum button")); + 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)); + addAndMakeVisible (disablePercussionButton = new ImageButton ("percussion disabled button")); + 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)); + addAndMakeVisible (tomTomButton = new ImageButton ("tom tom button")); + 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)); + addAndMakeVisible (cymbalButton = new ImageButton ("cymbalButton")); + 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)); + addAndMakeVisible (hiHatButton = new ImageButton ("hi hat button")); + 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)); //[UserPreSize] LookAndFeel::setDefaultLookAndFeel(new OPLLookAndFeel()); @@ -1529,12 +1574,6 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) velocityComboBox2->setColour (ComboBox::buttonColourId, Colours::black); velocityComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); - algorithmComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); - algorithmComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); - algorithmComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); - algorithmComboBox->setColour (ComboBox::buttonColourId, Colours::black); - algorithmComboBox->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)); @@ -1546,12 +1585,6 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) keyscaleAttenuationComboBox2->setColour (ComboBox::buttonColourId, Colours::black); keyscaleAttenuationComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); - percussionComboBox->setColour(ComboBox::textColourId, Colour(COLOUR_MID)); - percussionComboBox->setColour(ComboBox::outlineColourId, Colour(COLOUR_MID)); - percussionComboBox->setColour(ComboBox::arrowColourId, Colour(COLOUR_MID)); - percussionComboBox->setColour(ComboBox::buttonColourId, Colours::black); - percussionComboBox->setColour(ComboBox::backgroundColourId, Colours::black); - sineImageButton->setClickingTogglesState(true); sineImageButton->setRepaintsOnMouseActivity(false); abssineImageButton->setClickingTogglesState(true); @@ -1586,6 +1619,25 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) 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)); @@ -1608,7 +1660,7 @@ PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) versionLabel->setText(String(ProjectInfo::versionString), NotificationType::dontSendNotification); //[/UserPreSize] - setSize (860, 520); + setSize (860, 580); //[Constructor] You can add your own custom stuff here.. @@ -1622,6 +1674,9 @@ PluginGui::~PluginGui() //[Destructor_pre]. You can add your own custom destruction code here.. //[/Destructor_pre] + groupComponent11 = nullptr; + groupComponent10 = nullptr; + groupComponent9 = nullptr; groupComponent = nullptr; frequencyComboBox = nullptr; frequencyLabel = nullptr; @@ -1690,8 +1745,6 @@ PluginGui::~PluginGui() camelsineImageButton2 = nullptr; squareImageButton2 = nullptr; logsawImageButton2 = nullptr; - algorithmComboBox = nullptr; - frequencyLabel8 = nullptr; dbLabel4 = nullptr; keyscaleAttenuationComboBox2 = nullptr; keyscaleAttenuationComboBox = nullptr; @@ -1701,8 +1754,6 @@ PluginGui::~PluginGui() emulatorLabel = nullptr; emulatorLabel2 = nullptr; recordButton = nullptr; - percussionComboBox = nullptr; - percussionLabel = nullptr; exportButton = nullptr; loadButton = nullptr; versionLabel = nullptr; @@ -1714,9 +1765,6 @@ PluginGui::~PluginGui() LineBorderButton1A = nullptr; LineBorderButton1B = nullptr; label3 = nullptr; - LineBorderButton3A = nullptr; - LineBorderButton3B = nullptr; - LineBorderButton3B2 = nullptr; LineBorderButton1C2 = nullptr; LineBorderButton1A2 = nullptr; LineBorderButton1B2 = nullptr; @@ -1773,6 +1821,14 @@ PluginGui::~PluginGui() label30 = nullptr; frequencyLabel10 = nullptr; attenuationLabel5 = nullptr; + fmButton = nullptr; + additiveButton = nullptr; + bassDrumButton = nullptr; + snareDrumButton = nullptr; + disablePercussionButton = nullptr; + tomTomButton = nullptr; + cymbalButton = nullptr; + hiHatButton = nullptr; //[Destructor]. You can add your own custom destruction code here.. @@ -1796,104 +1852,100 @@ void PluginGui::resized() //[UserPreResize] Add your own custom resize code here.. //[/UserPreResize] - groupComponent->setBounds (16, 80, 408, 312); - frequencyComboBox->setBounds (149, 165, 66, 24); - frequencyLabel->setBounds (32, 165, 112, 24); - aSlider->setBounds (30, 203, 30, 88); - aLabel->setBounds (30, 293, 30, 24); - dSlider->setBounds (70, 203, 30, 88); - dLabel->setBounds (70, 293, 30, 24); - sSlider->setBounds (110, 203, 30, 88); - dLabel2->setBounds (110, 293, 30, 24); - rSlider->setBounds (150, 203, 30, 88); - rLabel->setBounds (150, 293, 30, 24); - attenuationSlider->setBounds (130, 350, 232, 24); - attenuationLabel->setBounds (32, 350, 106, 24); - dbLabel->setBounds (362, 350, 32, 24); - sineImageButton->setBounds (88, 105, 34, 30); - halfsineImageButton->setBounds (128, 105, 34, 30); - abssineImageButton->setBounds (168, 105, 34, 30); - quartersineImageButton->setBounds (208, 105, 34, 30); - waveLabel->setBounds (32, 107, 48, 24); - tremoloButton->setBounds (323, 162, 80, 24); - vibratoButton->setBounds (243, 162, 72, 24); - sustainButton->setBounds (243, 198, 70, 24); - keyscaleEnvButton->setBounds (323, 186, 101, 48); + groupComponent11->setBounds (496, 416, 192, 144); + groupComponent10->setBounds (280, 416, 200, 144); + groupComponent9->setBounds (704, 416, 144, 144); + groupComponent->setBounds (16, 88, 408, 312); + frequencyComboBox->setBounds (149, 173, 66, 24); + frequencyLabel->setBounds (32, 173, 112, 24); + aSlider->setBounds (30, 211, 30, 88); + aLabel->setBounds (30, 301, 30, 24); + dSlider->setBounds (70, 211, 30, 88); + dLabel->setBounds (70, 301, 30, 24); + sSlider->setBounds (110, 211, 30, 88); + dLabel2->setBounds (110, 301, 30, 24); + rSlider->setBounds (150, 211, 30, 88); + rLabel->setBounds (150, 301, 30, 24); + attenuationSlider->setBounds (130, 358, 232, 24); + attenuationLabel->setBounds (32, 358, 106, 24); + dbLabel->setBounds (362, 358, 32, 24); + sineImageButton->setBounds (88, 113, 34, 30); + halfsineImageButton->setBounds (128, 113, 34, 30); + abssineImageButton->setBounds (168, 113, 34, 30); + quartersineImageButton->setBounds (208, 113, 34, 30); + waveLabel->setBounds (32, 115, 48, 24); + tremoloButton->setBounds (323, 170, 80, 24); + vibratoButton->setBounds (243, 170, 72, 24); + sustainButton->setBounds (243, 206, 70, 24); + keyscaleEnvButton->setBounds (323, 194, 101, 48); dbLabel2->setBounds (792, 712, 72, 16); - groupComponent2->setBounds (440, 80, 408, 312); - frequencyComboBox2->setBounds (573, 165, 66, 24); - frequencyLabel3->setBounds (456, 165, 112, 24); - aSlider2->setBounds (462, 203, 30, 88); - aLabel2->setBounds (462, 293, 30, 24); - dSlider2->setBounds (510, 203, 30, 88); - dLabel3->setBounds (510, 293, 30, 24); - sSlider2->setBounds (558, 203, 30, 88); - dLabel4->setBounds (558, 293, 30, 24); - rSlider2->setBounds (606, 203, 30, 88); - rLabel2->setBounds (606, 293, 30, 24); - attenuationSlider2->setBounds (554, 350, 232, 24); - attenuationLabel2->setBounds (456, 350, 106, 24); - dbLabel3->setBounds (782, 350, 40, 24); - sineImageButton2->setBounds (512, 105, 34, 30); - halfsineImageButton2->setBounds (552, 105, 34, 30); - abssineImageButton2->setBounds (592, 105, 34, 30); - quartersineImageButton2->setBounds (632, 105, 34, 30); - waveLabel2->setBounds (456, 107, 48, 24); - tremoloButton2->setBounds (746, 162, 80, 24); - vibratoButton2->setBounds (666, 162, 72, 24); - sustainButton2->setBounds (666, 198, 70, 24); - keyscaleEnvButton2->setBounds (746, 186, 102, 48); - frequencyLabel4->setBounds (752, 280, 88, 48); - groupComponent3->setBounds (16, 400, 832, 96); - tremoloSlider->setBounds (149, 424, 80, 24); - frequencyLabel5->setBounds (40, 424, 104, 24); - dbLabel5->setBounds (230, 416, 32, 40); - vibratoSlider->setBounds (149, 456, 80, 24); - frequencyLabel6->setBounds (40, 456, 96, 24); - dbLabel6->setBounds (230, 448, 48, 40); - feedbackSlider->setBounds (190, 232, 30, 59); - frequencyLabel7->setBounds (190, 293, 30, 24); - velocityComboBox->setBounds (244, 249, 72, 24); - velocityComboBox2->setBounds (672, 249, 72, 24); - attenuationLabel4->setBounds (664, 280, 80, 48); - alternatingsineImageButton->setBounds (288, 105, 34, 30); - camelsineImageButton->setBounds (248, 105, 34, 30); - squareImageButton->setBounds (328, 105, 34, 30); - logsawImageButton->setBounds (368, 105, 34, 30); - alternatingsineImageButton2->setBounds (714, 106, 34, 30); - camelsineImageButton2->setBounds (674, 106, 34, 30); - squareImageButton2->setBounds (754, 106, 34, 30); - logsawImageButton2->setBounds (794, 106, 34, 30); - algorithmComboBox->setBounds (314, 450, 112, 24); - frequencyLabel8->setBounds (304, 422, 136, 24); + groupComponent2->setBounds (440, 88, 408, 312); + frequencyComboBox2->setBounds (573, 173, 66, 24); + frequencyLabel3->setBounds (456, 173, 112, 24); + aSlider2->setBounds (462, 211, 30, 88); + aLabel2->setBounds (462, 301, 30, 24); + dSlider2->setBounds (510, 211, 30, 88); + dLabel3->setBounds (510, 301, 30, 24); + sSlider2->setBounds (558, 211, 30, 88); + dLabel4->setBounds (558, 301, 30, 24); + rSlider2->setBounds (606, 211, 30, 88); + rLabel2->setBounds (606, 301, 30, 24); + attenuationSlider2->setBounds (554, 358, 232, 24); + attenuationLabel2->setBounds (456, 358, 106, 24); + dbLabel3->setBounds (782, 358, 40, 24); + sineImageButton2->setBounds (512, 113, 34, 30); + halfsineImageButton2->setBounds (552, 113, 34, 30); + abssineImageButton2->setBounds (592, 113, 34, 30); + quartersineImageButton2->setBounds (632, 113, 34, 30); + waveLabel2->setBounds (456, 115, 48, 24); + tremoloButton2->setBounds (746, 170, 80, 24); + vibratoButton2->setBounds (666, 170, 72, 24); + sustainButton2->setBounds (666, 206, 70, 24); + keyscaleEnvButton2->setBounds (746, 194, 102, 48); + frequencyLabel4->setBounds (752, 288, 88, 48); + groupComponent3->setBounds (16, 416, 248, 144); + tremoloSlider->setBounds (112, 456, 80, 24); + frequencyLabel5->setBounds (32, 456, 104, 24); + dbLabel5->setBounds (200, 448, 32, 40); + vibratoSlider->setBounds (112, 504, 80, 24); + frequencyLabel6->setBounds (32, 504, 96, 24); + dbLabel6->setBounds (200, 496, 48, 40); + feedbackSlider->setBounds (190, 240, 30, 59); + frequencyLabel7->setBounds (190, 301, 30, 24); + velocityComboBox->setBounds (244, 257, 72, 24); + velocityComboBox2->setBounds (672, 257, 72, 24); + attenuationLabel4->setBounds (664, 288, 80, 48); + alternatingsineImageButton->setBounds (288, 113, 34, 30); + camelsineImageButton->setBounds (248, 113, 34, 30); + squareImageButton->setBounds (328, 113, 34, 30); + logsawImageButton->setBounds (368, 113, 34, 30); + alternatingsineImageButton2->setBounds (714, 114, 34, 30); + camelsineImageButton2->setBounds (674, 114, 34, 30); + squareImageButton2->setBounds (754, 114, 34, 30); + logsawImageButton2->setBounds (794, 114, 34, 30); dbLabel4->setBounds (792, 688, 72, 16); - keyscaleAttenuationComboBox2->setBounds (763, 249, 60, 24); - keyscaleAttenuationComboBox->setBounds (338, 249, 60, 24); + keyscaleAttenuationComboBox2->setBounds (763, 257, 60, 24); + keyscaleAttenuationComboBox->setBounds (338, 257, 60, 24); groupComponent4->setBounds (16, 8, 832, 64); groupComponent5->setBounds (24, 712, 408, 64); emulatorSlider->setBounds (208, 736, 40, 24); emulatorLabel->setBounds (120, 736, 72, 24); emulatorLabel2->setBounds (256, 736, 72, 24); recordButton->setBounds (32, 680, 224, 24); - percussionComboBox->setBounds (476, 450, 112, 24); - percussionLabel->setBounds (456, 422, 152, 24); - exportButton->setBounds (644, 455, 168, 24); - loadButton->setBounds (644, 422, 168, 24); - versionLabel->setBounds (640, 496, 198, 16); + exportButton->setBounds (728, 504, 96, 24); + loadButton->setBounds (728, 456, 96, 24); + versionLabel->setBounds (648, 560, 198, 16); ToggleButtonOffExample->setBounds (1032, 584, 12, 12); ToggleButtonOnExample->setBounds (1064, 584, 12, 12); label->setBounds (1000, 608, 104, 24); label2->setBounds (872, 608, 104, 24); - LineBorderButton1C->setBounds (20, 332, 400, 6); - LineBorderButton1A->setBounds (20, 144, 400, 6); - LineBorderButton1B->setBounds (230, 148, 6, 186); + LineBorderButton1C->setBounds (20, 340, 400, 6); + LineBorderButton1A->setBounds (20, 152, 400, 6); + LineBorderButton1B->setBounds (230, 156, 6, 186); label3->setBounds (776, 736, 104, 56); - LineBorderButton3A->setBounds (288, 410, 6, 82); - LineBorderButton3B->setBounds (450, 410, 6, 82); - LineBorderButton3B2->setBounds (612, 410, 6, 82); - LineBorderButton1C2->setBounds (444, 332, 400, 6); - LineBorderButton1A2->setBounds (444, 144, 400, 6); - LineBorderButton1B2->setBounds (654, 148, 6, 186); + LineBorderButton1C2->setBounds (444, 340, 400, 6); + LineBorderButton1A2->setBounds (444, 152, 400, 6); + LineBorderButton1B2->setBounds (654, 156, 6, 186); LineBorderButton1C3->setBounds (892, 584, 20, 6); LineBorderButton1B3->setBounds (936, 576, 6, 20); algoSwitchButtonOffEx1->setBounds (952, 701, 64, 24); @@ -1945,8 +1997,16 @@ void PluginGui::resized() frequencyLabel9->setBounds (1067, 216, 72, 24); label29->setBounds (944, 304, 328, 40); label30->setBounds (961, 768, 319, 24); - frequencyLabel10->setBounds (328, 280, 88, 48); - attenuationLabel5->setBounds (240, 280, 80, 48); + frequencyLabel10->setBounds (328, 288, 88, 48); + attenuationLabel5->setBounds (240, 288, 80, 48); + fmButton->setBounds (304, 464, 56, 56); + additiveButton->setBounds (384, 456, 72, 72); + bassDrumButton->setBounds (576, 448, 30, 30); + snareDrumButton->setBounds (632, 448, 30, 30); + disablePercussionButton->setBounds (520, 448, 30, 30); + tomTomButton->setBounds (520, 504, 30, 30); + cymbalButton->setBounds (576, 504, 30, 30); + hiHatButton->setBounds (632, 504, 30, 30); //[UserResized] Add your own custom resize handling here.. for (unsigned int i = 0; i < channels.size(); ++i) channels[i]->setBounds(68+88*i, 36, 20, 20); @@ -1989,13 +2049,6 @@ void PluginGui::comboBoxChanged (ComboBox* comboBoxThatHasChanged) processor->setEnumParameter("Carrier Velocity Sensitivity", id); //[/UserComboBoxCode_velocityComboBox2] } - else if (comboBoxThatHasChanged == algorithmComboBox) - { - //[UserComboBoxCode_algorithmComboBox] -- add your combo box handling code here.. - int id = comboBoxThatHasChanged->getSelectedId() - 1; - processor->setEnumParameter("Algorithm", id); - //[/UserComboBoxCode_algorithmComboBox] - } else if (comboBoxThatHasChanged == keyscaleAttenuationComboBox2) { //[UserComboBoxCode_keyscaleAttenuationComboBox2] -- add your combo box handling code here.. @@ -2010,13 +2063,6 @@ void PluginGui::comboBoxChanged (ComboBox* comboBoxThatHasChanged) processor->setEnumParameter("Modulator Keyscale Level", id); //[/UserComboBoxCode_keyscaleAttenuationComboBox] } - else if (comboBoxThatHasChanged == percussionComboBox) - { - //[UserComboBoxCode_percussionComboBox] -- add your combo box handling code here.. - int id = comboBoxThatHasChanged->getSelectedId() - 1; - processor->setEnumParameter("Percussion Mode", id); - //[/UserComboBoxCode_percussionComboBox] - } //[UsercomboBoxChanged_Post] //[/UsercomboBoxChanged_Post] @@ -2411,6 +2457,54 @@ void PluginGui::buttonClicked (Button* buttonThatWasClicked) //[UserButtonCode_algoSwitchButtonOn3Ex4] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOn3Ex4] } + else if (buttonThatWasClicked == fmButton) + { + //[UserButtonCode_fmButton] -- add your button handler code here.. + processor->setEnumParameter("Algorithm", 0); + //[/UserButtonCode_fmButton] + } + else if (buttonThatWasClicked == additiveButton) + { + //[UserButtonCode_additiveButton] -- add your button handler code here.. + processor->setEnumParameter("Algorithm", 1); + //[/UserButtonCode_additiveButton] + } + else if (buttonThatWasClicked == bassDrumButton) + { + //[UserButtonCode_bassDrumButton] -- add your button handler code here.. + processor->setEnumParameter("Percussion Mode", 1); + //[/UserButtonCode_bassDrumButton] + } + else if (buttonThatWasClicked == snareDrumButton) + { + //[UserButtonCode_snareDrumButton] -- add your button handler code here.. + processor->setEnumParameter("Percussion Mode", 2); + //[/UserButtonCode_snareDrumButton] + } + else if (buttonThatWasClicked == disablePercussionButton) + { + //[UserButtonCode_disablePercussionButton] -- add your button handler code here.. + processor->setEnumParameter("Percussion Mode", 0); + //[/UserButtonCode_disablePercussionButton] + } + else if (buttonThatWasClicked == tomTomButton) + { + //[UserButtonCode_tomTomButton] -- add your button handler code here.. + processor->setEnumParameter("Percussion Mode", 3); + //[/UserButtonCode_tomTomButton] + } + else if (buttonThatWasClicked == cymbalButton) + { + //[UserButtonCode_cymbalButton] -- add your button handler code here.. + processor->setEnumParameter("Percussion Mode", 4); + //[/UserButtonCode_cymbalButton] + } + else if (buttonThatWasClicked == hiHatButton) + { + //[UserButtonCode_hiHatButton] -- add your button handler code here.. + processor->setEnumParameter("Percussion Mode", 5); + //[/UserButtonCode_hiHatButton] + } //[UserbuttonClicked_Post] //[/UserbuttonClicked_Post] @@ -2474,122 +2568,131 @@ BEGIN_JUCER_METADATA parentClasses="public AudioProcessorEditor, public FileDragAndDropTarget, public DragAndDropContainer, public Timer" constructorParams="AdlibBlasterAudioProcessor* ownerFilter" variableInitialisers=" AudioProcessorEditor (ownerFilter)" snapPixels="8" snapActive="1" snapShown="1" overlayOpacity="0.330" - fixedSize="1" initialWidth="860" initialHeight="520"> + fixedSize="1" initialWidth="860" initialHeight="580"> + + +