diff --git a/Source/PluginGui.cpp b/Source/PluginGui.cpp
index c3e41c9..215ad1d 100644
--- a/Source/PluginGui.cpp
+++ b/Source/PluginGui.cpp
@@ -105,7 +105,22 @@ void PluginGui::updateFromParameters()
algorithmComboBox->setSelectedItemIndex(processor->getEnumParameter("Algorithm"), true);
+ tooltipWindow.setColour(tooltipWindow.backgroundColourId, Colour(0x0));
+ tooltipWindow.setColour(tooltipWindow.textColourId, Colour(COLOUR_MID));
}
+
+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]
//==============================================================================
@@ -127,6 +142,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (frequencyLabel = new Label ("frequency label",
TRANS("Frequency")));
+ frequencyLabel->setTooltip (TRANS("Multiplier applied to base note frequency"));
frequencyLabel->setFont (Font (15.00f, Font::plain));
frequencyLabel->setJustificationType (Justification::centredLeft);
frequencyLabel->setEditable (false, false, false);
@@ -148,6 +164,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (aLabel = new Label ("a label",
TRANS("A")));
+ aLabel->setTooltip (TRANS("Attack rate"));
aLabel->setFont (Font (15.00f, Font::plain));
aLabel->setJustificationType (Justification::centred);
aLabel->setEditable (false, false, false);
@@ -169,6 +186,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (dLabel = new Label ("d label",
TRANS("D")));
+ dLabel->setTooltip (TRANS("Decay rate"));
dLabel->setFont (Font (15.00f, Font::plain));
dLabel->setJustificationType (Justification::centred);
dLabel->setEditable (false, false, false);
@@ -190,6 +208,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (dLabel2 = new Label ("d label",
TRANS("S")));
+ dLabel2->setTooltip (TRANS("Sustain level"));
dLabel2->setFont (Font (15.00f, Font::plain));
dLabel2->setJustificationType (Justification::centred);
dLabel2->setEditable (false, false, false);
@@ -211,6 +230,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (rLabel = new Label ("r label",
TRANS("R")));
+ rLabel->setTooltip (TRANS("Release rate"));
rLabel->setFont (Font (15.00f, Font::plain));
rLabel->setJustificationType (Justification::centred);
rLabel->setEditable (false, false, false);
@@ -231,6 +251,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (attenuationLabel = new Label ("attenuation label",
TRANS("Attenuation")));
+ attenuationLabel->setTooltip (TRANS("Final output level adjustment"));
attenuationLabel->setFont (Font (15.00f, Font::plain));
attenuationLabel->setJustificationType (Justification::centred);
attenuationLabel->setEditable (false, false, false);
@@ -249,7 +270,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
dbLabel->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (sineImageButton = new ImageButton ("sine image button"));
- sineImageButton->setTooltip (TRANS("sine"));
sineImageButton->setButtonText (TRANS("Sine"));
sineImageButton->setRadioGroupId (1);
sineImageButton->addListener (this);
@@ -259,7 +279,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (halfsineImageButton = new ImageButton ("half sine image button"));
- halfsineImageButton->setTooltip (TRANS("half sine"));
halfsineImageButton->setButtonText (TRANS("Half Sine"));
halfsineImageButton->setRadioGroupId (1);
halfsineImageButton->addListener (this);
@@ -269,7 +288,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (abssineImageButton = new ImageButton ("abs sine image button"));
- abssineImageButton->setTooltip (TRANS("abs sine"));
abssineImageButton->setButtonText (TRANS("Abs Sine"));
abssineImageButton->setRadioGroupId (1);
abssineImageButton->addListener (this);
@@ -279,7 +297,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (quartersineImageButton = new ImageButton ("quarter sine image button"));
- quartersineImageButton->setTooltip (TRANS("quarter sine"));
quartersineImageButton->setButtonText (TRANS("Quarter Sine"));
quartersineImageButton->setRadioGroupId (1);
quartersineImageButton->addListener (this);
@@ -308,17 +325,20 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
vibratoButton->setColour (ToggleButton::textColourId, Colour (0xff007f00));
addAndMakeVisible (sustainButton = new ToggleButton ("sustain button"));
+ sustainButton->setTooltip (TRANS("Enable or disable sustain when note is held"));
sustainButton->setButtonText (TRANS("Sustain"));
sustainButton->addListener (this);
sustainButton->setColour (ToggleButton::textColourId, Colour (0xff007f00));
addAndMakeVisible (keyscaleEnvButton = new ToggleButton ("keyscale env button"));
+ keyscaleEnvButton->setTooltip (TRANS("Speed up envelope rate with note frequency"));
keyscaleEnvButton->setButtonText (TRANS("Keyscale Envelope Rate"));
keyscaleEnvButton->addListener (this);
keyscaleEnvButton->setColour (ToggleButton::textColourId, Colour (0xff007f00));
addAndMakeVisible (frequencyLabel2 = new Label ("frequency label",
TRANS("Keyscale Attenuation")));
+ frequencyLabel2->setTooltip (TRANS("Attenuate amplitude with note frequency"));
frequencyLabel2->setFont (Font (15.00f, Font::plain));
frequencyLabel2->setJustificationType (Justification::centred);
frequencyLabel2->setEditable (false, false, false);
@@ -351,6 +371,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (frequencyLabel3 = new Label ("frequency label",
TRANS("Frequency")));
+ frequencyLabel3->setTooltip (TRANS("Multiplier applied to base note frequency"));
frequencyLabel3->setFont (Font (15.00f, Font::plain));
frequencyLabel3->setJustificationType (Justification::centredLeft);
frequencyLabel3->setEditable (false, false, false);
@@ -371,6 +392,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (aLabel2 = new Label ("a label",
TRANS("A")));
+ aLabel2->setTooltip (TRANS("Attack rate"));
aLabel2->setFont (Font (15.00f, Font::plain));
aLabel2->setJustificationType (Justification::centred);
aLabel2->setEditable (false, false, false);
@@ -391,6 +413,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (dLabel3 = new Label ("d label",
TRANS("D")));
+ dLabel3->setTooltip (TRANS("Decay rate"));
dLabel3->setFont (Font (15.00f, Font::plain));
dLabel3->setJustificationType (Justification::centred);
dLabel3->setEditable (false, false, false);
@@ -411,6 +434,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (dLabel4 = new Label ("d label",
TRANS("S")));
+ dLabel4->setTooltip (TRANS("Sustain level"));
dLabel4->setFont (Font (15.00f, Font::plain));
dLabel4->setJustificationType (Justification::centred);
dLabel4->setEditable (false, false, false);
@@ -431,6 +455,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (rLabel2 = new Label ("r label",
TRANS("R")));
+ rLabel2->setTooltip (TRANS("Release rate"));
rLabel2->setFont (Font (15.00f, Font::plain));
rLabel2->setJustificationType (Justification::centred);
rLabel2->setEditable (false, false, false);
@@ -451,6 +476,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (attenuationLabel2 = new Label ("attenuation label",
TRANS("Attenuation")));
+ attenuationLabel2->setTooltip (TRANS("Final output level adjustment"));
attenuationLabel2->setFont (Font (15.00f, Font::plain));
attenuationLabel2->setJustificationType (Justification::centred);
attenuationLabel2->setEditable (false, false, false);
@@ -469,7 +495,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
dbLabel3->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (sineImageButton2 = new ImageButton ("sine image button"));
- sineImageButton2->setTooltip (TRANS("sine"));
sineImageButton2->setButtonText (TRANS("Sine"));
sineImageButton2->setRadioGroupId (2);
sineImageButton2->addListener (this);
@@ -479,7 +504,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (halfsineImageButton2 = new ImageButton ("half sine image button"));
- halfsineImageButton2->setTooltip (TRANS("half sine"));
halfsineImageButton2->setButtonText (TRANS("Half Sine"));
halfsineImageButton2->setRadioGroupId (2);
halfsineImageButton2->addListener (this);
@@ -489,7 +513,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (abssineImageButton2 = new ImageButton ("abs sine image button"));
- abssineImageButton2->setTooltip (TRANS("abs sine"));
abssineImageButton2->setButtonText (TRANS("Abs Sine"));
abssineImageButton2->setRadioGroupId (2);
abssineImageButton2->addListener (this);
@@ -499,7 +522,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (quartersineImageButton2 = new ImageButton ("quarter sine image button"));
- quartersineImageButton2->setTooltip (TRANS("quarter sine"));
quartersineImageButton2->setButtonText (TRANS("Quarter Sine"));
quartersineImageButton2->setRadioGroupId (2);
quartersineImageButton2->addListener (this);
@@ -528,17 +550,20 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
vibratoButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00));
addAndMakeVisible (sustainButton2 = new ToggleButton ("sustain button"));
+ sustainButton2->setTooltip (TRANS("Enable or disable sustain when note is held"));
sustainButton2->setButtonText (TRANS("Sustain"));
sustainButton2->addListener (this);
sustainButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00));
addAndMakeVisible (keyscaleEnvButton2 = new ToggleButton ("keyscale env button"));
+ keyscaleEnvButton2->setTooltip (TRANS("Speed up envelope rate with note frequency"));
keyscaleEnvButton2->setButtonText (TRANS("Keyscale Envelope Rate"));
keyscaleEnvButton2->addListener (this);
keyscaleEnvButton2->setColour (ToggleButton::textColourId, Colour (0xff007f00));
addAndMakeVisible (frequencyLabel4 = new Label ("frequency label",
TRANS("Keyscale Attenuation")));
+ frequencyLabel4->setTooltip (TRANS("Attenuate amplitude with note frequency"));
frequencyLabel4->setFont (Font (15.00f, Font::plain));
frequencyLabel4->setJustificationType (Justification::centred);
frequencyLabel4->setEditable (false, false, false);
@@ -565,8 +590,9 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (frequencyLabel5 = new Label ("frequency label",
TRANS("Tremolo Depth\n")));
+ frequencyLabel5->setTooltip (TRANS("OPL global tremolo depth"));
frequencyLabel5->setFont (Font (15.00f, Font::plain));
- frequencyLabel5->setJustificationType (Justification::centred);
+ frequencyLabel5->setJustificationType (Justification::centredLeft);
frequencyLabel5->setEditable (false, false, false);
frequencyLabel5->setColour (Label::textColourId, Colour (0xff007f00));
frequencyLabel5->setColour (TextEditor::textColourId, Colours::black);
@@ -595,8 +621,9 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (frequencyLabel6 = new Label ("frequency label",
TRANS("Vibrato Depth")));
+ frequencyLabel6->setTooltip (TRANS("OPL global vibrato depth"));
frequencyLabel6->setFont (Font (15.00f, Font::plain));
- frequencyLabel6->setJustificationType (Justification::centred);
+ frequencyLabel6->setJustificationType (Justification::centredLeft);
frequencyLabel6->setEditable (false, false, false);
frequencyLabel6->setColour (Label::textColourId, Colour (0xff007f00));
frequencyLabel6->setColour (TextEditor::textColourId, Colours::black);
@@ -604,6 +631,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (dbLabel6 = new Label ("db label",
TRANS("cents\n")));
+ dbLabel6->setTooltip (TRANS("A unit of pitch; 100 cents per semitone"));
dbLabel6->setFont (Font (15.00f, Font::plain));
dbLabel6->setJustificationType (Justification::centred);
dbLabel6->setEditable (false, false, false);
@@ -625,6 +653,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (frequencyLabel7 = new Label ("frequency label",
TRANS("Feedback")));
+ frequencyLabel7->setTooltip (TRANS("Extent to which modulator output is fed back into itself"));
frequencyLabel7->setFont (Font (15.00f, Font::plain));
frequencyLabel7->setJustificationType (Justification::centredLeft);
frequencyLabel7->setEditable (false, false, false);
@@ -644,6 +673,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (attenuationLabel3 = new Label ("attenuation label",
TRANS("Velocity")));
+ attenuationLabel3->setTooltip (TRANS("Set or disable velocity senstivity"));
attenuationLabel3->setFont (Font (15.00f, Font::plain));
attenuationLabel3->setJustificationType (Justification::centredLeft);
attenuationLabel3->setEditable (false, false, false);
@@ -663,6 +693,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (attenuationLabel4 = new Label ("attenuation label",
TRANS("Velocity")));
+ attenuationLabel4->setTooltip (TRANS("Set or disable velocity senstivity"));
attenuationLabel4->setFont (Font (15.00f, Font::plain));
attenuationLabel4->setJustificationType (Justification::centredLeft);
attenuationLabel4->setEditable (false, false, false);
@@ -671,7 +702,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
attenuationLabel4->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (alternatingsineImageButton = new ImageButton ("alternating sine image button"));
- alternatingsineImageButton->setTooltip (TRANS("alternating sine"));
alternatingsineImageButton->setButtonText (TRANS("Alternating Sine"));
alternatingsineImageButton->setRadioGroupId (1);
alternatingsineImageButton->addListener (this);
@@ -681,7 +711,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (camelsineImageButton = new ImageButton ("camel sine image button"));
- camelsineImageButton->setTooltip (TRANS("camel sine"));
camelsineImageButton->setButtonText (TRANS("Camel Sine"));
camelsineImageButton->setRadioGroupId (1);
camelsineImageButton->addListener (this);
@@ -691,7 +720,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (squareImageButton = new ImageButton ("square image button"));
- squareImageButton->setTooltip (TRANS("square"));
squareImageButton->setButtonText (TRANS("Square"));
squareImageButton->setRadioGroupId (1);
squareImageButton->addListener (this);
@@ -701,7 +729,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (logsawImageButton = new ImageButton ("logsaw image button"));
- logsawImageButton->setTooltip (TRANS("logarithmic sawtooth"));
logsawImageButton->setButtonText (TRANS("Logarithmic Sawtooth"));
logsawImageButton->setRadioGroupId (1);
logsawImageButton->addListener (this);
@@ -711,7 +738,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (alternatingsineImageButton2 = new ImageButton ("alternating sine image button"));
- alternatingsineImageButton2->setTooltip (TRANS("alternating sine"));
alternatingsineImageButton2->setButtonText (TRANS("Alternating Sine"));
alternatingsineImageButton2->setRadioGroupId (2);
alternatingsineImageButton2->addListener (this);
@@ -721,7 +747,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (camelsineImageButton2 = new ImageButton ("camel sine image button"));
- camelsineImageButton2->setTooltip (TRANS("camel sine"));
camelsineImageButton2->setButtonText (TRANS("Camel Sine"));
camelsineImageButton2->setRadioGroupId (2);
camelsineImageButton2->addListener (this);
@@ -731,7 +756,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (squareImageButton2 = new ImageButton ("square image button"));
- squareImageButton2->setTooltip (TRANS("square"));
squareImageButton2->setButtonText (TRANS("Square"));
squareImageButton2->setRadioGroupId (2);
squareImageButton2->addListener (this);
@@ -741,7 +765,6 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
Image(), 0.500f, Colour (0x00000000),
Image(), 1.000f, Colour (0x00000000));
addAndMakeVisible (logsawImageButton2 = new ImageButton ("logsaw image button"));
- logsawImageButton2->setTooltip (TRANS("logarithmic sawtooth"));
logsawImageButton2->setButtonText (TRANS("Logarithmic Sawtooth"));
logsawImageButton2->setRadioGroupId (2);
logsawImageButton2->addListener (this);
@@ -761,6 +784,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
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::centredLeft);
frequencyLabel8->setEditable (false, false, false);
@@ -825,6 +849,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (emulatorLabel = new Label ("emulator label",
TRANS("DOSBox")));
+ emulatorLabel->setTooltip (TRANS("Use the OPL emulator from the DOSBox project"));
emulatorLabel->setFont (Font (15.00f, Font::plain));
emulatorLabel->setJustificationType (Justification::centredRight);
emulatorLabel->setEditable (false, false, false);
@@ -834,6 +859,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
addAndMakeVisible (emulatorLabel2 = new Label ("emulator label",
TRANS("ZDoom")));
+ emulatorLabel2->setTooltip (TRANS("Use the OPL emulator from the ZDoom project"));
emulatorLabel2->setFont (Font (15.00f, Font::plain));
emulatorLabel2->setJustificationType (Justification::centredLeft);
emulatorLabel2->setEditable (false, false, false);
@@ -842,6 +868,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
emulatorLabel2->setColour (TextEditor::backgroundColourId, Colour (0x00000000));
addAndMakeVisible (recordButton = new ToggleButton ("record button"));
+ 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"));
recordButton->addListener (this);
recordButton->setColour (ToggleButton::textColourId, Colour (0xff007f00));
@@ -975,7 +1002,7 @@ PluginGui::PluginGui (JuceOplvstiAudioProcessor* ownerFilter)
}
//[/UserPreSize]
- setSize (440, 934);
+ setSize (860, 516);
//[Constructor] You can add your own custom stuff here..
@@ -1090,90 +1117,93 @@ void PluginGui::paint (Graphics& g)
void PluginGui::resized()
{
- groupComponent->setBounds (16, 64, 408, 336);
- frequencyComboBox->setBounds (128, 136, 72, 24);
- frequencyLabel->setBounds (32, 136, 80, 24);
- aSlider->setBounds (40, 264, 48, 72);
- aLabel->setBounds (40, 336, 48, 24);
- dSlider->setBounds (104, 264, 48, 72);
- dLabel->setBounds (104, 336, 48, 24);
- sSlider->setBounds (168, 264, 48, 72);
- dLabel2->setBounds (168, 336, 48, 24);
- rSlider->setBounds (232, 264, 48, 72);
- rLabel->setBounds (232, 336, 48, 24);
- attenuationSlider->setBounds (312, 256, 72, 96);
- attenuationLabel->setBounds (312, 360, 96, 24);
- dbLabel->setBounds (376, 328, 40, 24);
- sineImageButton->setBounds (88, 96, 34, 30);
- halfsineImageButton->setBounds (128, 96, 34, 30);
- abssineImageButton->setBounds (168, 96, 34, 30);
- quartersineImageButton->setBounds (208, 96, 34, 30);
- waveLabel->setBounds (32, 96, 48, 24);
- tremoloButton->setBounds (144, 176, 96, 24);
- vibratoButton->setBounds (40, 176, 96, 24);
- sustainButton->setBounds (40, 360, 96, 24);
- keyscaleEnvButton->setBounds (128, 360, 184, 24);
- frequencyLabel2->setBounds (248, 176, 152, 24);
- dbLabel2->setBounds (336, 152, 72, 16);
- groupComponent2->setBounds (16, 408, 408, 336);
- frequencyComboBox2->setBounds (128, 480, 72, 24);
- frequencyLabel3->setBounds (32, 480, 80, 24);
- aSlider2->setBounds (40, 608, 48, 72);
- aLabel2->setBounds (40, 680, 48, 24);
- dSlider2->setBounds (104, 608, 48, 72);
- dLabel3->setBounds (104, 680, 48, 24);
- sSlider2->setBounds (168, 608, 48, 72);
- dLabel4->setBounds (168, 680, 48, 24);
- rSlider2->setBounds (232, 608, 48, 72);
- rLabel2->setBounds (232, 680, 48, 24);
- attenuationSlider2->setBounds (312, 600, 72, 96);
- attenuationLabel2->setBounds (312, 704, 96, 24);
- dbLabel3->setBounds (376, 672, 40, 24);
- sineImageButton2->setBounds (88, 440, 34, 30);
- halfsineImageButton2->setBounds (128, 440, 34, 30);
- abssineImageButton2->setBounds (168, 440, 34, 30);
- quartersineImageButton2->setBounds (208, 440, 34, 30);
- waveLabel2->setBounds (32, 440, 48, 24);
- tremoloButton2->setBounds (152, 520, 96, 24);
- vibratoButton2->setBounds (40, 520, 96, 24);
- sustainButton2->setBounds (40, 704, 96, 24);
- keyscaleEnvButton2->setBounds (128, 704, 184, 24);
- frequencyLabel4->setBounds (248, 520, 152, 24);
- groupComponent3->setBounds (16, 752, 408, 96);
- tremoloSlider->setBounds (48, 784, 112, 24);
- frequencyLabel5->setBounds (48, 808, 152, 24);
- dbLabel5->setBounds (160, 776, 40, 40);
- vibratoSlider->setBounds (240, 784, 112, 24);
- frequencyLabel6->setBounds (240, 808, 152, 24);
- dbLabel6->setBounds (352, 776, 47, 40);
- feedbackSlider->setBounds (112, 224, 136, 24);
- frequencyLabel7->setBounds (32, 224, 80, 24);
- velocityComboBox->setBounds (336, 224, 72, 24);
- attenuationLabel3->setBounds (272, 224, 64, 24);
- velocityComboBox2->setBounds (336, 568, 72, 24);
- attenuationLabel4->setBounds (272, 568, 64, 24);
- alternatingsineImageButton->setBounds (288, 96, 34, 30);
- camelsineImageButton->setBounds (248, 96, 34, 30);
- squareImageButton->setBounds (328, 96, 34, 30);
- logsawImageButton->setBounds (368, 96, 34, 30);
- alternatingsineImageButton2->setBounds (290, 441, 34, 30);
- camelsineImageButton2->setBounds (250, 441, 34, 30);
- squareImageButton2->setBounds (330, 441, 34, 30);
- logsawImageButton2->setBounds (370, 441, 34, 30);
- algorithmComboBox->setBounds (128, 560, 112, 24);
- frequencyLabel8->setBounds (32, 560, 80, 24);
- dbLabel4->setBounds (336, 496, 72, 16);
- keyscaleAttenuationComboBox2->setBounds (264, 488, 72, 24);
- keyscaleAttenuationComboBox->setBounds (264, 144, 72, 24);
- groupComponent4->setBounds (16, 856, 408, 64);
- groupComponent5->setBounds (16, 8, 408, 48);
- emulatorSlider->setBounds (112, 24, 32, 24);
- emulatorLabel->setBounds (32, 24, 72, 24);
- emulatorLabel2->setBounds (152, 24, 72, 24);
- recordButton->setBounds (272, 24, 128, 24);
+ //[UserPreResize] Add your own custom resize code here..
+ //[/UserPreResize]
+
+ groupComponent->setBounds (16, 80, 408, 344);
+ frequencyComboBox->setBounds (128, 152, 72, 24);
+ frequencyLabel->setBounds (32, 152, 80, 24);
+ aSlider->setBounds (40, 280, 48, 72);
+ aLabel->setBounds (40, 352, 48, 24);
+ dSlider->setBounds (104, 280, 48, 72);
+ dLabel->setBounds (104, 352, 48, 24);
+ sSlider->setBounds (168, 280, 48, 72);
+ dLabel2->setBounds (168, 352, 48, 24);
+ rSlider->setBounds (232, 280, 48, 72);
+ rLabel->setBounds (232, 352, 48, 24);
+ attenuationSlider->setBounds (312, 280, 72, 96);
+ attenuationLabel->setBounds (312, 384, 96, 24);
+ dbLabel->setBounds (376, 352, 40, 24);
+ sineImageButton->setBounds (88, 112, 34, 30);
+ halfsineImageButton->setBounds (128, 112, 34, 30);
+ abssineImageButton->setBounds (168, 112, 34, 30);
+ quartersineImageButton->setBounds (208, 112, 34, 30);
+ waveLabel->setBounds (32, 112, 48, 24);
+ tremoloButton->setBounds (144, 192, 96, 24);
+ vibratoButton->setBounds (40, 192, 96, 24);
+ sustainButton->setBounds (40, 384, 96, 24);
+ keyscaleEnvButton->setBounds (128, 384, 184, 24);
+ frequencyLabel2->setBounds (248, 184, 152, 24);
+ dbLabel2->setBounds (336, 156, 72, 16);
+ groupComponent2->setBounds (440, 80, 408, 344);
+ frequencyComboBox2->setBounds (552, 152, 72, 24);
+ frequencyLabel3->setBounds (456, 152, 80, 24);
+ aSlider2->setBounds (464, 280, 48, 72);
+ aLabel2->setBounds (464, 352, 48, 24);
+ dSlider2->setBounds (528, 280, 48, 72);
+ dLabel3->setBounds (528, 352, 48, 24);
+ sSlider2->setBounds (592, 280, 48, 72);
+ dLabel4->setBounds (592, 352, 48, 24);
+ rSlider2->setBounds (656, 280, 48, 72);
+ rLabel2->setBounds (656, 352, 48, 24);
+ attenuationSlider2->setBounds (736, 280, 72, 96);
+ attenuationLabel2->setBounds (736, 384, 96, 24);
+ dbLabel3->setBounds (800, 352, 40, 24);
+ sineImageButton2->setBounds (512, 112, 34, 30);
+ halfsineImageButton2->setBounds (552, 112, 34, 30);
+ abssineImageButton2->setBounds (592, 112, 34, 30);
+ quartersineImageButton2->setBounds (632, 112, 34, 30);
+ waveLabel2->setBounds (456, 112, 48, 24);
+ tremoloButton2->setBounds (576, 192, 96, 24);
+ vibratoButton2->setBounds (464, 192, 96, 24);
+ sustainButton2->setBounds (464, 384, 96, 24);
+ keyscaleEnvButton2->setBounds (552, 384, 184, 24);
+ frequencyLabel4->setBounds (672, 184, 152, 24);
+ groupComponent3->setBounds (16, 432, 832, 64);
+ tremoloSlider->setBounds (344, 456, 112, 24);
+ frequencyLabel5->setBounds (224, 456, 152, 24);
+ dbLabel5->setBounds (456, 448, 40, 40);
+ vibratoSlider->setBounds (672, 456, 112, 24);
+ frequencyLabel6->setBounds (560, 456, 152, 24);
+ dbLabel6->setBounds (784, 448, 47, 40);
+ feedbackSlider->setBounds (112, 232, 136, 24);
+ frequencyLabel7->setBounds (32, 232, 80, 24);
+ velocityComboBox->setBounds (336, 232, 72, 24);
+ attenuationLabel3->setBounds (272, 232, 64, 24);
+ velocityComboBox2->setBounds (760, 232, 72, 24);
+ attenuationLabel4->setBounds (696, 232, 64, 24);
+ alternatingsineImageButton->setBounds (288, 112, 34, 30);
+ camelsineImageButton->setBounds (248, 112, 34, 30);
+ squareImageButton->setBounds (328, 112, 34, 30);
+ logsawImageButton->setBounds (368, 112, 34, 30);
+ alternatingsineImageButton2->setBounds (714, 113, 34, 30);
+ camelsineImageButton2->setBounds (674, 113, 34, 30);
+ squareImageButton2->setBounds (754, 113, 34, 30);
+ logsawImageButton2->setBounds (794, 113, 34, 30);
+ algorithmComboBox->setBounds (552, 232, 112, 24);
+ frequencyLabel8->setBounds (456, 232, 80, 24);
+ dbLabel4->setBounds (760, 156, 72, 16);
+ keyscaleAttenuationComboBox2->setBounds (688, 152, 72, 24);
+ keyscaleAttenuationComboBox->setBounds (264, 152, 72, 24);
+ groupComponent4->setBounds (440, 8, 408, 64);
+ groupComponent5->setBounds (16, 8, 408, 64);
+ emulatorSlider->setBounds (200, 32, 40, 24);
+ emulatorLabel->setBounds (112, 32, 72, 24);
+ emulatorLabel2->setBounds (248, 32, 72, 24);
+ recordButton->setBounds (40, 456, 128, 24);
//[UserResized] Add your own custom resize handling here..
for (unsigned int i = 0; i < channels.size(); ++i)
- channels[i]->setBounds(32+44*i+4, 880+4, 16, 16);
+ channels[i]->setBounds(456+44*i+4, 36, 16, 16);
//[/UserResized]
}
@@ -1333,24 +1363,12 @@ void PluginGui::sliderValueChanged (Slider* sliderThatWasMoved)
//[/UsersliderValueChanged_Post]
}
-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));
- }
-}
-
void PluginGui::buttonClicked (Button* buttonThatWasClicked)
{
//[UserbuttonClicked_Pre]
//[/UserbuttonClicked_Pre]
- if (buttonThatWasClicked == sineImageButton)
+ if (buttonThatWasClicked == sineImageButton)
{
//[UserButtonCode_sineImageButton] -- add your button handler code here..
processor->setEnumParameter("Modulator Wave", 0);
@@ -1582,414 +1600,415 @@ BEGIN_JUCER_METADATA
parentClasses="public AudioProcessorEditor, public FileDragAndDropTarget, public DragAndDropContainer, public Timer"
constructorParams="JuceOplvstiAudioProcessor* ownerFilter" variableInitialisers=" AudioProcessorEditor (ownerFilter)"
snapPixels="8" snapActive="1" snapShown="1" overlayOpacity="0.330"
- fixedSize="0" initialWidth="440" initialHeight="934">
+ fixedSize="0" initialWidth="860" initialHeight="516">
+ virtualName="" explicitFocusOrder="0" pos="32 152 80 24" tooltip="Multiplier applied to base note frequency"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="Frequency"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="33"/>
+ explicitFocusOrder="0" pos="40 352 48 24" tooltip="Attack rate"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="A"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ explicitFocusOrder="0" pos="104 352 48 24" tooltip="Decay rate"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="D"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ explicitFocusOrder="0" pos="168 352 48 24" tooltip="Sustain level"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="S"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ explicitFocusOrder="0" pos="232 352 48 24" tooltip="Release rate"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="R"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ virtualName="" explicitFocusOrder="0" pos="312 384 96 24" tooltip="Final output level adjustment"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="Attenuation"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ virtualName="" explicitFocusOrder="0" pos="88 112 34 30" buttonText="Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="1" keepProportions="1"
+ resourceNormal="full_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="128 112 34 30" buttonText="Half Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="1" keepProportions="1"
+ resourceNormal="half_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="168 112 34 30" buttonText="Abs Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="1" keepProportions="1"
+ resourceNormal="abs_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="208 112 34 30" buttonText="Quarter Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="1" keepProportions="1"
+ resourceNormal="quarter_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
-
+
+ virtualName="" explicitFocusOrder="0" pos="456 152 80 24" tooltip="Multiplier applied to base note frequency"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="Frequency"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="33"/>
+ explicitFocusOrder="0" pos="464 352 48 24" tooltip="Attack rate"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="A"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ explicitFocusOrder="0" pos="528 352 48 24" tooltip="Decay rate"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="D"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ explicitFocusOrder="0" pos="592 352 48 24" tooltip="Sustain level"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="S"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ explicitFocusOrder="0" pos="656 352 48 24" tooltip="Release rate"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="R"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ virtualName="" explicitFocusOrder="0" pos="736 384 96 24" tooltip="Final output level adjustment"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="Attenuation"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+ virtualName="" explicitFocusOrder="0" pos="512 112 34 30" buttonText="Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="2" keepProportions="1"
+ resourceNormal="full_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="552 112 34 30" buttonText="Half Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="2" keepProportions="1"
+ resourceNormal="half_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="592 112 34 30" buttonText="Abs Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="2" keepProportions="1"
+ resourceNormal="abs_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="632 112 34 30" buttonText="Quarter Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="2" keepProportions="1"
+ resourceNormal="quarter_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
-
+
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="33"/>
-
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="33"/>
+
+ virtualName="" explicitFocusOrder="0" pos="32 232 80 24" tooltip="Extent to which modulator output is fed back into itself"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="Feedback"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="33"/>
+ virtualName="" explicitFocusOrder="0" pos="272 232 64 24" tooltip="Set or disable velocity senstivity"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="Velocity"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="33"/>
+ virtualName="" explicitFocusOrder="0" pos="696 232 64 24" tooltip="Set or disable velocity senstivity"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="Velocity"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="33"/>
+ virtualName="" explicitFocusOrder="0" pos="288 112 34 30" buttonText="Alternating Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="1" keepProportions="1"
+ resourceNormal="alternating_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="248 112 34 30" buttonText="Camel Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="1" keepProportions="1"
+ resourceNormal="camel_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="328 112 34 30" buttonText="Square"
+ connectedEdges="0" needsCallback="1" radioGroupId="1" keepProportions="1"
+ resourceNormal="square_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="368 112 34 30" buttonText="Logarithmic Sawtooth"
+ connectedEdges="0" needsCallback="1" radioGroupId="1" keepProportions="1"
+ resourceNormal="logarithmic_saw_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="714 113 34 30" buttonText="Alternating Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="2" keepProportions="1"
+ resourceNormal="alternating_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="674 113 34 30" buttonText="Camel Sine"
+ connectedEdges="0" needsCallback="1" radioGroupId="2" keepProportions="1"
+ resourceNormal="camel_sine_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="754 113 34 30" buttonText="Square"
+ connectedEdges="0" needsCallback="1" radioGroupId="2" keepProportions="1"
+ resourceNormal="square_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="794 113 34 30" buttonText="Logarithmic Sawtooth"
+ connectedEdges="0" needsCallback="1" radioGroupId="2" keepProportions="1"
+ resourceNormal="logarithmic_saw_png" opacityNormal="0.5" colourNormal="0"
+ resourceOver="" opacityOver="0.5" colourOver="0" resourceDown=""
+ opacityDown="1" colourDown="0"/>
+ virtualName="" explicitFocusOrder="0" pos="456 232 80 24" tooltip="In additive mode, carrier and modulator output are simply summed rather than modulated"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="Algorithm"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="33"/>
+ virtualName="" explicitFocusOrder="0" pos="112 32 72 24" tooltip="Use the OPL emulator from the DOSBox project"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="DOSBox"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="34"/>
+ virtualName="" explicitFocusOrder="0" pos="248 32 72 24" tooltip="Use the OPL emulator from the ZDoom project"
+ textCol="ff007f00" edTextCol="ff000000" edBkgCol="0" labelText="ZDoom"
+ editableSingleClick="0" editableDoubleClick="0" focusDiscardsChanges="0"
+ fontname="Default font" fontsize="15" bold="0" italic="0" justification="33"/>
+ virtualName="" explicitFocusOrder="0" pos="40 456 128 24" tooltip="Start recording all register writes to a DRO file - an OPL recording file format defined by DOSBox"
+ txtcol="ff007f00" buttonText="Record to DRO" connectedEdges="0"
+ needsCallback="1" radioGroupId="0" state="0"/>
END_JUCER_METADATA
diff --git a/Source/PluginGui.h b/Source/PluginGui.h
index abf2908..7697ac0 100644
--- a/Source/PluginGui.h
+++ b/Source/PluginGui.h
@@ -94,6 +94,7 @@ private:
static const uint32 COLOUR_RECORDING = 0xffff0000;
JuceOplvstiAudioProcessor* processor;
std::array, Hiopl::CHANNELS> channels;
+ TooltipWindow tooltipWindow;
//[/UserVariables]
//==============================================================================