diff --git a/Resources/svg/bounce.svg b/Resources/svg/bounce.svg new file mode 100644 index 0000000..957a738 --- /dev/null +++ b/Resources/svg/bounce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Resources/svg/kaleidoscope.svg b/Resources/svg/kaleidoscope.svg new file mode 100644 index 0000000..fb970f0 --- /dev/null +++ b/Resources/svg/kaleidoscope.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Source/audio/BounceEffect.h b/Source/audio/BounceEffect.h index 978ce28..156c553 100644 --- a/Source/audio/BounceEffect.h +++ b/Source/audio/BounceEffect.h @@ -48,7 +48,7 @@ public: } ); eff->setName("Bounce"); - eff->setIcon(BinaryData::random_svg); + eff->setIcon(BinaryData::bounce_svg); return eff; } diff --git a/Source/audio/KaleidoscopeEffect.h b/Source/audio/KaleidoscopeEffect.h index 1d03234..4c56d1e 100644 --- a/Source/audio/KaleidoscopeEffect.h +++ b/Source/audio/KaleidoscopeEffect.h @@ -33,18 +33,18 @@ public: double partialScale = (currentSegmentIndex == fullSegments && fractionalPart > 1e-9) ? fractionalPart : 1.0; double wedgeAngle = baseWedgeAngle * partialScale; - // Normalize theta to [0,1) for compression - double thetaNorm = (theta + juce::MathConstants::pi) / juce::MathConstants::twoPi; // 0..1 + // Normalize theta to [0,1) for compression + double thetaNorm = (theta + juce::MathConstants::pi) / juce::MathConstants::twoPi; // 0..1 - // Offset for this segment: each preceding full segment occupies baseWedgeAngle + // Offset for this segment: each preceding full segment occupies baseWedgeAngle double segmentOffset = 0.0; if (currentSegmentIndex < fullSegments) { segmentOffset = currentSegmentIndex * baseWedgeAngle; } else { // partial segment segmentOffset = fullSegments * baseWedgeAngle; } - // Map entire original angle range into [segmentOffset, segmentOffset + wedgeAngle) so edges line up exactly. - double finalTheta = segmentOffset + thetaNorm * wedgeAngle - juce::MathConstants::pi; // constant 180° rotation + // Map entire original angle range into [segmentOffset, segmentOffset + wedgeAngle) so edges line up exactly. + double finalTheta = segmentOffset + thetaNorm * wedgeAngle - juce::MathConstants::pi; // constant 180° rotation double newX = r * std::cos(finalTheta); double newY = r * std::sin(finalTheta); @@ -82,8 +82,7 @@ public: } ); eff->setName("Kaleidoscope"); - // Reuse an existing icon for now (repeat). A dedicated kaleidoscope icon can be added later. - eff->setIcon(BinaryData::repeat_svg); + eff->setIcon(BinaryData::kaleidoscope_svg); return eff; } }; diff --git a/osci-render.jucer b/osci-render.jucer index b73bf78..1c84de1 100644 --- a/osci-render.jucer +++ b/osci-render.jucer @@ -47,6 +47,7 @@ + @@ -58,6 +59,8 @@ +