diff --git a/Resources/svg/random.svg b/Resources/svg/random.svg
index c673a2f..de6f95e 100644
--- a/Resources/svg/random.svg
+++ b/Resources/svg/random.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Source/EffectsComponent.cpp b/Source/EffectsComponent.cpp
index de565dc..d682781 100644
--- a/Source/EffectsComponent.cpp
+++ b/Source/EffectsComponent.cpp
@@ -25,6 +25,8 @@ EffectsComponent::EffectsComponent(OscirenderAudioProcessor& p, OscirenderAudioP
addAndMakeVisible(randomiseButton);
+ randomiseButton.setTooltip("Randomise all effect parameter values, randomise which effects are enabled, and randomise their order.");
+
randomiseButton.onClick = [this] {
itemData.randomise();
listBox.updateContent();
@@ -46,8 +48,10 @@ EffectsComponent::~EffectsComponent() {
void EffectsComponent::resized() {
auto area = getLocalBounds();
- auto titleBar = area.removeFromTop(20);
- randomiseButton.setBounds(titleBar.removeFromRight(20));
+ auto titleBar = area.removeFromTop(30);
+ titleBar.removeFromLeft(100);
+
+ randomiseButton.setBounds(titleBar.removeFromLeft(20));
area = area.reduced(20);
frequency.setBounds(area.removeFromTop(30));
diff --git a/Source/audio/SmoothEffect.cpp b/Source/audio/SmoothEffect.cpp
index 5bae151..066998a 100644
--- a/Source/audio/SmoothEffect.cpp
+++ b/Source/audio/SmoothEffect.cpp
@@ -5,7 +5,7 @@ SmoothEffect::SmoothEffect() {}
SmoothEffect::~SmoothEffect() {}
Point SmoothEffect::apply(int index, Point input, const std::vector& values, double sampleRate) {
- double weight = values[0];
+ double weight = juce::jmax(values[0], 0.00001);
weight *= 0.95;
double strength = 10;
weight = std::log(strength * weight + 1) / std::log(strength + 1);
diff --git a/Source/components/SvgButton.h b/Source/components/SvgButton.h
index 4dbece9..f66854b 100644
--- a/Source/components/SvgButton.h
+++ b/Source/components/SvgButton.h
@@ -5,6 +5,8 @@ class SvgButton : public juce::DrawableButton, public juce::AudioProcessorParame
public:
SvgButton(juce::String name, juce::String svg, juce::Colour colour, juce::Colour colourOn, BooleanParameter* toggle = nullptr) : juce::DrawableButton(name, juce::DrawableButton::ButtonStyle::ImageFitted), toggle(toggle) {
auto doc = juce::XmlDocument::parse(svg);
+
+ setMouseCursor(juce::MouseCursor::PointingHandCursor);
changeSvgColour(doc.get(), colour);
normalImage = juce::Drawable::createFromSVG(*doc);