fix pitch feedback loop; tune analyzer UI and dry/wet reflection

This commit is contained in:
Armin 2026-08-10 15:36:11 +02:00
commit 2359bfd579
5 changed files with 57 additions and 33 deletions

View file

@ -66,7 +66,7 @@ namespace
#define HORIZONT_BUILD_TIMESTAMP "unknown"
#endif
juce::String text ("HORIZONT v" + juce::String (HORIZONT_VERSION));
juce::String text ("HORIZONT");
text << " · git " << HORIZONT_GIT_REVISION;
text << " · build " << HORIZONT_BUILD_TIMESTAMP;
return text;
@ -248,7 +248,7 @@ void HorizontAudioProcessorEditor::resized()
const int subtitleMarginV = juce::roundToInt (2.0f * s);
const int rowsMarginH = juce::roundToInt (16.0f * s);
const int rowsMarginV = juce::roundToInt (4.0f * s);
const int gap = juce::roundToInt (10.0f * s);
const int gap = juce::roundToInt (20.0f * s);
footerArea = area.removeFromBottom (footerH);
footerLabel.setBounds (footerArea.reduced (rowsMarginH, 0));
@ -263,7 +263,7 @@ void HorizontAudioProcessorEditor::resized()
scaleBox.setBounds (scaleArea);
presetBox.setBounds (comboArea);
auto titleArea = header.removeFromTop (titleH).reduced (titleMarginH, titleMarginV);
auto titleArea = header.removeFromTop (titleH).reduced (titleMarginH, titleMarginV).translated (0, juce::roundToInt (10.0f * s));
titleLabel.setBounds (titleArea);
subtitleLabel.setBounds (header.reduced (subtitleMarginH, subtitleMarginV));
@ -271,13 +271,18 @@ void HorizontAudioProcessorEditor::resized()
subtitleLabel.setFont (juce::Font (juce::FontOptions (juce::roundToInt (11.0f * s))));
auto modules = area.reduced (rowsMarginH, rowsMarginV);
modules.removeFromBottom (juce::roundToInt (15.0f * s));
const int panelH = (modules.getHeight() - 2 * gap) / 3;
auto displayPanel = modules.removeFromTop (panelH);
display.setBounds (displayPanel);
knobRow1Area = modules.removeFromTop (panelH + gap);
knobRow2Area = modules.removeFromTop (panelH + gap);
modules.removeFromTop (gap);
knobRow1Area = modules.removeFromTop (panelH);
modules.removeFromTop (gap);
knobRow2Area = modules.removeFromTop (panelH);
layoutKnobRow (knobRow1Area, 0, 5);
layoutKnobRow (knobRow2Area, 5, 4);
@ -317,8 +322,8 @@ void HorizontAudioProcessorEditor::paint (juce::Graphics& g)
g.setGradientFill (shadowGrad);
g.fillRoundedRectangle (shRect, 13.0f);
g.setGradientFill (juce::ColourGradient (juce::Colour (0xFF24323A), { 0.0f, r.getY() },
juce::Colour (0xFF0B1216), { 0.0f, r.getBottom() },
g.setGradientFill (juce::ColourGradient (juce::Colour (0x0024323A), { 0.0f, r.getY() },
juce::Colour (0x000B1216), { 0.0f, r.getBottom() },
false));
g.fillRoundedRectangle (r, 12.0f);
@ -334,7 +339,7 @@ void HorizontAudioProcessorEditor::paint (juce::Graphics& g)
g.saveState();
g.reduceClipRegion (r.toNearestInt().reduced (1));
auto refl = juce::ColourGradient (juce::Colour (0x28FFFFFF), { 0.0f, r.getY() },
auto refl = juce::ColourGradient (juce::Colour (0x00FFFFFF), { 0.0f, r.getY() },
juce::Colour (0x00FFFFFF), { 0.0f, r.getY() + r.getHeight() * 0.45f },
false);
g.setGradientFill (refl);