diff --git a/CrystalizerEQ/AXIOMDesignSystem.h b/CrystalizerEQ/AXIOMDesignSystem.h index 821b3d3..c7f64ff 100644 --- a/CrystalizerEQ/AXIOMDesignSystem.h +++ b/CrystalizerEQ/AXIOMDesignSystem.h @@ -518,6 +518,28 @@ namespace AXIOM { }; struct SliderStyles { + struct Size { + enum class SizeMode { + Gain, + Freq, + Q, + Slope, + Global, + Mix + }; + static float getSliderSizeMod(SizeMode mode) { + switch (mode) { + case SizeMode::Gain: return 1.25f; + case SizeMode::Freq: return 0.8f; + case SizeMode::Q: return 0.8f; + case SizeMode::Slope: return 0.6f; + case SizeMode::Global: return 1.0f; + case SizeMode::Mix: return 0.8f; + default: return 1.0f; + } + } + + }; }; struct LabelStyles { diff --git a/CrystalizerEQ/PluginEditor.cpp b/CrystalizerEQ/PluginEditor.cpp index a0166c6..1fe2c85 100644 --- a/CrystalizerEQ/PluginEditor.cpp +++ b/CrystalizerEQ/PluginEditor.cpp @@ -18,6 +18,8 @@ using Spacing = DesignSystem::Spacing; using Shape = DesignSystem::Shape; using Opacity = DesignSystem::Opacity; using Layout = DesignSystem::Layout; +using Components = DesignSystem::Components; +using SliderStyles = Components::SliderStyles; //region setupModeBoxes void CrystalizerEQAudioProcessorEditor::setupModeBoxes() { @@ -49,16 +51,7 @@ void CrystalizerEQAudioProcessorEditor::setupModeBoxes() { void CrystalizerEQAudioProcessorEditor::setupSliders() { auto style = juce::Slider::RotaryHorizontalVerticalDrag; - for (auto* s : { - &testNoiseSlider, &lowBandFreqSlider, &lowBandSlopeSlider, &lowBandGainSlider, &lowBandQSlider, - - &peak1FreqSlider, &peak1GainSlider, &peak1QSlider, - &peak2FreqSlider, &peak2GainSlider, &peak2QSlider, - &peak3FreqSlider, &peak3GainSlider, &peak3QSlider, - - &highBandFreqSlider, &highBandSlopeSlider, &highBandGainSlider, &highBandQSlider, - - &inputSlider, &outputSlider }) + for (auto* s : sliders) { s->setSliderStyle (style); s->setTextBoxStyle (juce::Slider::TextBoxBelow, true, 70, 18); @@ -182,6 +175,7 @@ void CrystalizerEQAudioProcessorEditor::setupDisplayNames() { deletePresetButton.setName("DeletePresetButton"); deletePresetButton.setButtonText("Delete Preset"); + } //endregion setupDisplayNames @@ -332,40 +326,72 @@ void CrystalizerEQAudioProcessorEditor::setupLabels() { //SetupLabels { //LOW-BAND - setupLabel (lowBandFreqLabel, "LowBand Freq"); - setupLabel (lowBandSlopeLabel, "LowBand Slope"); - setupLabel (lowBandGainLabel, "LowBand Gain"); - setupLabel(lowBandQLabel, "LowBand Q"); + setupLabel (lowBandFreqLabel, "Low\nFreq"); + setupLabel (lowBandSlopeLabel, "Low\nSlope"); + setupLabel (lowBandGainLabel, "Low\nGain"); + setupLabel(lowBandQLabel, "Low\nQ"); //PEAK 1 - setupLabel (peak1FreqLabel,"Low-Mid Freq"); - setupLabel (peak1GainLabel,"Low-Mid Gain"); - setupLabel (peak1QLabel, "Low-Mid Q"); + setupLabel (peak1FreqLabel,"Low-Mid\nFreq"); + setupLabel (peak1GainLabel,"Low-Mid\nGain"); + setupLabel (peak1QLabel, "Low-Mid\nQ"); //PEAK 2 - setupLabel (peak2FreqLabel,"Mid Freq"); - setupLabel (peak2GainLabel,"Mid Gain"); - setupLabel (peak2QLabel, "Mid Q"); + setupLabel (peak2FreqLabel,"Mid\nFreq"); + setupLabel (peak2GainLabel,"Mid\nGain"); + setupLabel (peak2QLabel, "Mid\nQ"); //PEAK 3 - setupLabel (peak3FreqLabel,"High-Mid Freq"); - setupLabel (peak3GainLabel,"High-Mid Gain"); - setupLabel (peak3QLabel, "High-Mid Q"); + setupLabel (peak3FreqLabel,"High-Mid\nFreq"); + setupLabel (peak3GainLabel,"High-Mid\nGain"); + setupLabel (peak3QLabel, "High-Mid\nQ"); //HIGH-BAND - setupLabel (highBandFreqLabel, "HighBand Freq"); - setupLabel (highBandSlopeLabel, "HighBand Slope"); - setupLabel (highBandGainLabel, "HighBand Gain"); - setupLabel(highBandQLabel, "HighBand Q"); + setupLabel (highBandFreqLabel, "High\nFreq"); + setupLabel (highBandSlopeLabel, "High\nSlope"); + setupLabel (highBandGainLabel, "High\nGain"); + setupLabel(highBandQLabel, "High\nQ"); setupLabel(presetBoxLabel, "Presets"); - setupLabel(inputLabel, "Input"); - setupLabel(outputLabel, "Output"); + setupLabel(inputLabel, "IN"); + setupLabel(outputLabel, "OUT"); } } //endregion setupLabels +void CrystalizerEQAudioProcessorEditor::setupFontsWithColours() { + Typography::applyToLabel(titleLabel, Typography::Style::Display, 1.f); + titleLabel.setColour(juce::Label::textColourId, Colours::ACCENTCOLOUR); + + for (auto* l : sliderLabels) { + l->setColour(juce::Label::textColourId, Colours::FOREGROUNDCOLOUR); + Typography::applyToLabel(*l, Typography::Style::Body, 1.f); + + } + //TODO: Set font of textboxes to mono and place them inside of the slider. + auto styleSliderTextBox = [](juce::Slider& s) + { + for (int i = 0; i < s.getNumChildComponents(); ++i) { + DBG (s.getNumChildComponents()); + if (auto* label = dynamic_cast(s.getChildComponent(i))) + { + label->setColour(juce::Label::backgroundColourId, juce::Colours::transparentBlack); + label->setColour(juce::Label::outlineColourId, juce::Colours::transparentBlack); + label->setColour(juce::Label::textColourId, juce::Colours::white); + + label->setJustificationType(juce::Justification::centred); + //Typography::applyToLabel(*label, Typography::Style::Mono, 1.f); + } + } + + }; + + for (auto* s : sliders) { + styleSliderTextBox(*s); + } +} + //region setupEventListeners void CrystalizerEQAudioProcessorEditor::setupEventListeners() { presetMenuButton.onClick = [this]() { @@ -458,6 +484,7 @@ CrystalizerEQAudioProcessorEditor::CrystalizerEQAudioProcessorEditor (Crystalize startTimerHz(60); addComponentsToLayout(); setupLabels(); + setupFontsWithColours(); setupModeBoxes(); setupSliders(); setupAttachments(); @@ -488,6 +515,8 @@ CrystalizerEQAudioProcessorEditor::CrystalizerEQAudioProcessorEditor (Crystalize } }; + + } CrystalizerEQAudioProcessorEditor::~CrystalizerEQAudioProcessorEditor() { @@ -506,76 +535,6 @@ void CrystalizerEQAudioProcessorEditor::paintAnalyzer(juce::Graphics &g) { g.setColour(juce::Colours::black); g.fillRect(r); - // Grid - g.setColour(juce::Colours::darkgrey.withAlpha(0.6f)); - for (float db = -120.f; db <= 6.f; db += 12.f) - { - const float y = juce::jmap(db, - spectrumAnalyzer.MINDB, spectrumAnalyzer.MAXDB, - r.getBottom(), r.getY()); - g.drawLine(r.getX(), y, r.getRight(), y, 1.f); - } - - // Bars - if (!spectrumAnalyzer.renderValuesDb.empty()) - { - const int n = (int) spectrumAnalyzer.renderValuesDb.size(); - - g.setColour(AXIOM::DesignSystem::Colours::ACCENTCOLOUR); - - juce::Path eqCurve; - - bool hasStart = false; - - const float visibleFloor = spectrumAnalyzer.MINDB; - - for (int k = 0; k < n; ++k) - { - - const float dB = juce::jlimit(spectrumAnalyzer.MINDB, spectrumAnalyzer.MAXDB, - spectrumAnalyzer.renderValuesDb[(size_t) k]); - float yTop = juce::jmap(dB, - spectrumAnalyzer.MINDB, spectrumAnalyzer.MAXDB, - r.getBottom(), r.getY()); - - if (dB <= visibleFloor) { - yTop = r.getBottom(); - DBG ("Test"); - - } - - - float freq = k * spectrumAnalyzer.deltaF; // Frequenz des aktuellen Bins - - if (k == 0) { - freq = 1e-12; - } - - // Frequenz auf log-X-Koordinate (0.0–1.0) mappen - const float normX = std::log(freq / spectrumAnalyzer.MINFREQ) / std::log(spectrumAnalyzer.MAXFREQ / spectrumAnalyzer.MINFREQ); - - // ...und in Pixel umrechnen: - float x = r.getX() + normX * r.getWidth(); - - //TODO: ANSTATT FFTSIZE VERDOPPELN, NUR DIE LINIEN VERDOPPELN -> HIGHER RESOLUTION - - if (!hasStart) { eqCurve.startNewSubPath(x, yTop); hasStart = true; } - else { - eqCurve.lineTo(x, yTop); - } - - - } - g.strokePath(eqCurve, juce::PathStrokeType(1.5f)); - juce::Path area = eqCurve; - area.lineTo(r.getRight(), r.getBottom()); - area.lineTo(r.getX(), r.getBottom()); - area.closeSubPath(); - - g.setColour(AXIOM::DesignSystem::Colours::ACCENTCOLOUR.withAlpha(0.2f));; - g.fillPath(area); - } - // Rahmen (optional) g.setColour(juce::Colours::grey); g.drawRect(analyzerRect); @@ -715,8 +674,35 @@ void CrystalizerEQAudioProcessorEditor::paint (juce::Graphics& g) } paintAnalyzer(g); + + paintBorderLines(g); } +//region paintBorderLines +void CrystalizerEQAudioProcessorEditor::paintBorderLines(juce::Graphics &g) { + g.setColour(DesignSystem::Colours::BACKGROUNDHOVER); + auto prevRight = (float) lowFilterArea.getRight(); + + for (auto* c : filterAreas) { + if (c == &lowFilterArea) continue; + + const auto area = getLocalArea(c, c->getLocalBounds()); + const float xAvg = ((float) area.getX() - prevRight) / 2; + const int x = area.getX() - xAvg; + prevRight = (float) c->getRight(); + + const auto top = (float) area.getY(); + const auto bot = (float) area.getBottom(); + + + const float center = (top + bot) * 0.5f; + const float halfLen = (bot - top) * 0.375f; + g.drawVerticalLine(x,center - halfLen, center + halfLen); + + } +} +//endregion paintBorderLines + //region setKnobVisibility void CrystalizerEQAudioProcessorEditor::setKnobVisibility() { const int lowMode = (int) audioProcessor.apvts @@ -758,8 +744,7 @@ void CrystalizerEQAudioProcessorEditor::timerCallback() void CrystalizerEQAudioProcessorEditor::resized() { - Typography::applyToLabel(titleLabel, Typography::Style::Display, 1.f); - titleLabel.setColour(juce::Label::textColourId, Colours::ACCENTCOLOUR); + auto pluginArea = getLocalBounds(); scalePluginWindow(pluginArea); @@ -767,6 +752,7 @@ void CrystalizerEQAudioProcessorEditor::resized() setupHeader(); setupBody(); setupFooter(); + //setSliderSizes(); const auto testBounds = mainPanel.getLocalBounds(); const auto testWidth = testBounds.getWidth(); @@ -941,6 +927,11 @@ void CrystalizerEQAudioProcessorEditor::setupLowBandLayout() { const auto knobColWidth = areaWidth / 3.0f; const auto knobRowHeight = areaHeight / 3.0f; + const auto refW = getReferenceCell()[0]; + const auto refH = getReferenceCell()[1]; + const auto gainSize = refH * gainMod; + const auto offSetToGainTop = gainSize; + Layout::GridSpec lowBandSpec{ /* cols */ { Layout::fr(1), Layout::pxTrack(knobColWidth), Layout::fr(1) }, /* rows */ { Layout::fr(1), Layout::pxTrack(knobRowHeight * 1.25f), Layout::fr(1)}, @@ -949,15 +940,44 @@ void CrystalizerEQAudioProcessorEditor::setupLowBandLayout() { /* pad */ Layout::padding(Spacing::SizeMode::XS) }; Layout::grid(bounds, lowBandSpec, { - Layout::area(lowBandFreqLabel, 1, 1, 2, 2), - Layout::area(lowBandGainLabel, 1, 2, 2, 3), - Layout::area(lowBandQLabel, 1, 3, 2, 4), - Layout::area(lowBandFreqSlider, 2, 1, 3, 2), - Layout::area(lowBandGainSlider, 2, 2, 3, 3), - Layout::area(lowBandQSlider, 2, 3, 3, 4), - Layout::area(lowBandModeBox, 3, 1, 4, 2), - Layout::area(lowBandSlopeLabel, 3, 2, 4, 3), + + + + Layout::area(lowBandFreqSlider, 2, 1, 3, 2) + .withWidth(refW * freqMod) + .withHeight(refH * freqMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + + Layout::area(lowBandGainSlider, 2, 2, 3, 3) + .withWidth(refW * gainMod) + .withHeight(refH * gainMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + + Layout::area(lowBandQSlider, 2, 3, 3, 4) + .withWidth(refW * qMod) + .withHeight(refH * qMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(lowBandSlopeSlider, 3, 3, 4, 4) + .withWidth(refW * slopeMod) + .withHeight(refH * slopeMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + + + Layout::area(lowBandModeBox, 3, 1, 4, 2), + + + Layout::area(lowBandFreqLabel, 2, 1, 3, 2) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), + Layout::area(lowBandGainLabel, 1, 2, 2, 3), + Layout::area(lowBandQLabel, 2, 3, 3, 4) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), + Layout::area(lowBandSlopeLabel, 3, 2, 4, 3), + }); } @@ -971,6 +991,11 @@ void CrystalizerEQAudioProcessorEditor::setupLowMidBandLayout() { const auto knobColWidth = areaWidth / 3.0f; const auto knobRowHeight = areaHeight / 3.0f; + const auto refW = getReferenceCell()[0]; + const auto refH = getReferenceCell()[1]; + const auto gainSize = refH * gainMod; + const auto offSetToGainTop = gainSize; + Layout::GridSpec lowMidBandSpec{ /* cols */ { Layout::fr(1), Layout::pxTrack(knobColWidth), Layout::fr(1) }, /* rows */ { Layout::fr(1), Layout::pxTrack(knobRowHeight * 1.25f), Layout::fr(1)}, @@ -979,12 +1004,29 @@ void CrystalizerEQAudioProcessorEditor::setupLowMidBandLayout() { /* pad */ Layout::padding(Spacing::SizeMode::XS) }; Layout::grid(bounds, lowMidBandSpec, { - Layout::area(peak1FreqLabel, 1, 1, 2, 2), + + Layout::area(peak1FreqSlider, 2, 1, 3, 2) + .withWidth(refW * freqMod) + .withHeight(refH * freqMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(peak1GainSlider, 2, 2, 3, 3) + .withWidth(refW * gainMod) + .withHeight(refH * gainMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(peak1QSlider, 2, 3, 3, 4) + .withWidth(refW * qMod) + .withHeight(refH * qMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + + Layout::area(peak1FreqLabel, 2, 1, 3, 2) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), Layout::area(peak1GainLabel, 1, 2, 2, 3), - Layout::area(peak1QLabel, 1, 3, 2, 4), - Layout::area(peak1FreqSlider, 2, 1, 3, 2), - Layout::area(peak1GainSlider, 2, 2, 3, 3), - Layout::area(peak1QSlider, 2, 3, 3, 4), + Layout::area(peak1QLabel, 2, 3, 3, 4) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), + Layout::area(peak1BypassButton, 3, 2, 4, 3) }); } @@ -998,6 +1040,11 @@ void CrystalizerEQAudioProcessorEditor::setupMidBandLayout() { const auto knobColWidth = areaWidth / 3.0f; const auto knobRowHeight = areaHeight / 3.0f; + const auto refW = getReferenceCell()[0]; + const auto refH = getReferenceCell()[1]; + const auto gainSize = refH * gainMod; + const auto offSetToGainTop = gainSize; + Layout::GridSpec midBandSpec{ /* cols */ { Layout::fr(1), Layout::pxTrack(knobColWidth), Layout::fr(1) }, /* rows */ { Layout::fr(1), Layout::pxTrack(knobRowHeight * 1.25f), Layout::fr(1)}, @@ -1006,12 +1053,31 @@ void CrystalizerEQAudioProcessorEditor::setupMidBandLayout() { /* pad */ Layout::padding(Spacing::SizeMode::XS) }; Layout::grid(bounds, midBandSpec, { - Layout::area(peak2FreqLabel, 1, 1, 2, 2), + + + Layout::area(peak2FreqSlider, 2, 1, 3, 2) + .withWidth(refW * freqMod) + .withHeight(refH * freqMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(peak2GainSlider, 2, 2, 3, 3) + .withWidth(refW * gainMod) + .withHeight(refH * gainMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(peak2QSlider, 2, 3, 3, 4) + .withWidth(refW * qMod) + .withHeight(refH * qMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + + Layout::area(peak2FreqLabel, 2, 1, 3, 2) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), Layout::area(peak2GainLabel, 1, 2, 2, 3), - Layout::area(peak2QLabel, 1, 3, 2, 4), - Layout::area(peak2FreqSlider, 2, 1, 3, 2), - Layout::area(peak2GainSlider, 2, 2, 3, 3), - Layout::area(peak2QSlider, 2, 3, 3, 4), + + Layout::area(peak2QLabel, 2, 3, 3, 4) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), + Layout::area(peak2BypassButton, 3, 2, 4, 3) }); } @@ -1025,6 +1091,11 @@ void CrystalizerEQAudioProcessorEditor::setupHighMidBandLayout() { const auto knobColWidth = areaWidth / 3.0f; const auto knobRowHeight = areaHeight / 3.0f; + const auto refW = getReferenceCell()[0]; + const auto refH = getReferenceCell()[1]; + const auto gainSize = refH * gainMod; + const auto offSetToGainTop = gainSize; + Layout::GridSpec highMidBandSpec{ /* cols */ { Layout::fr(1), Layout::pxTrack(knobColWidth), Layout::fr(1) }, /* rows */ { Layout::fr(1), Layout::pxTrack(knobRowHeight * 1.25f), Layout::fr(1)}, @@ -1033,12 +1104,29 @@ void CrystalizerEQAudioProcessorEditor::setupHighMidBandLayout() { /* pad */ Layout::padding(Spacing::SizeMode::XS) }; Layout::grid(bounds, highMidBandSpec, { - Layout::area(peak3FreqLabel, 1, 1, 2, 2), + + Layout::area(peak3FreqSlider, 2, 1, 3, 2) + .withWidth(refW * freqMod) + .withHeight(refH * freqMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(peak3GainSlider, 2, 2, 3, 3) + .withWidth(refW * gainMod) + .withHeight(refH * gainMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(peak3QSlider, 2, 3, 3, 4) + .withWidth(refW * qMod) + .withHeight(refH * qMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + + Layout::area(peak3FreqLabel, 2, 1, 3, 2) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), Layout::area(peak3GainLabel, 1, 2, 2, 3), - Layout::area(peak3QLabel, 1, 3, 2, 4), - Layout::area(peak3FreqSlider, 2, 1, 3, 2), - Layout::area(peak3GainSlider, 2, 2, 3, 3), - Layout::area(peak3QSlider, 2, 3, 3, 4), + Layout::area(peak3QLabel, 2, 3, 3, 4) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), + Layout::area(peak3BypassButton, 3, 2, 4, 3) }); } @@ -1052,6 +1140,11 @@ void CrystalizerEQAudioProcessorEditor::setupHighBandLayout() { const auto knobColWidth = areaWidth / 3.0f; const auto knobRowHeight = areaHeight / 3.0f; + const auto refW = getReferenceCell()[0]; + const auto refH = getReferenceCell()[1]; + const auto gainSize = refH * gainMod; + const auto offSetToGainTop = gainSize; + Layout::GridSpec highBandSpec{ /* cols */ { Layout::fr(1), Layout::pxTrack(knobColWidth), Layout::fr(1) }, /* rows */ { Layout::fr(1), Layout::pxTrack(knobRowHeight * 1.25f), Layout::fr(1)}, @@ -1060,15 +1153,41 @@ void CrystalizerEQAudioProcessorEditor::setupHighBandLayout() { /* pad */ Layout::padding(Spacing::SizeMode::XS) }; Layout::grid(bounds, highBandSpec, { - Layout::area(highBandFreqLabel, 1, 1, 2, 2), - Layout::area(highBandGainLabel, 1, 2, 2, 3), - Layout::area(highBandQLabel, 1, 3, 2, 4), - Layout::area(highBandFreqSlider, 2, 1, 3, 2), - Layout::area(highBandGainSlider, 2, 2, 3, 3), - Layout::area(highBandQSlider, 2, 3, 3, 4), + + + + Layout::area(highBandFreqSlider, 2, 1, 3, 2) + .withWidth(refW * freqMod) + .withHeight(refH * freqMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(highBandGainSlider, 2, 2, 3, 3) + .withWidth(refW * gainMod) + .withHeight(refH * gainMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(highBandQSlider, 2, 3, 3, 4) + .withWidth(refW * qMod) + .withHeight(refH * qMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(highBandModeBox, 3, 1, 4, 2), - Layout::area(highBandSlopeLabel, 3, 2, 4, 3), + + Layout::area(highBandSlopeSlider, 3, 3, 4, 4) + .withWidth(refW * slopeMod) + .withHeight(refH * slopeMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + + Layout::area(highBandFreqLabel, 2, 1, 3, 2) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), + Layout::area(highBandGainLabel, 1, 2, 2, 3), + Layout::area(highBandQLabel, 2, 3, 3, 4) + .withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)), + Layout::area(highBandSlopeLabel, 3, 2, 4, 3), + }); } //endregion setupHighBandLayout @@ -1080,6 +1199,9 @@ void CrystalizerEQAudioProcessorEditor::setupFooter() { const auto footerWidth = static_cast(bounds.getWidth()); const auto footerHeight = static_cast(bounds.getHeight()); + const auto refW = getReferenceCell()[0]; + const auto refH = getReferenceCell()[1]; + Layout::GridSpec footerSpec{ /* cols */ { Layout::fr(1), Layout::fr(1), Layout::pxTrack(footerWidth / 3.0f) }, /* rows */ { Layout::fr(1) }, @@ -1096,6 +1218,10 @@ void CrystalizerEQAudioProcessorEditor::setupFooter() { const auto globalControlAreaHeight = static_cast(globalControlArea.getHeight()); const auto globalControlColWidth = globalControlAreaWidth / 3.0f; + const auto inLabelH = inputLabel.getFont().getHeight(); + const auto outLabelH = outputLabel.getFont().getHeight(); + + Layout::GridSpec globalControlAreaSpec{ /* cols */ { Layout::fr(1), Layout::pxTrack(globalControlColWidth), Layout::fr(1) }, /* rows */ { Layout::pxTrack(globalControlAreaHeight * 0.25f),Layout::fr(1)}, @@ -1104,16 +1230,50 @@ void CrystalizerEQAudioProcessorEditor::setupFooter() { /* pad */ Layout::padding(Spacing::SizeMode::XS) }; Layout::grid(globalControlAreaBounds, globalControlAreaSpec, { - Layout::area(inputLabel, 1, 2, 2, 3), - Layout::area(outputLabel, 1, 3, 2, 4), - Layout::area(inputSlider, 2, 2, 3, 3), - Layout::area(outputSlider, 2, 3, 3, 4), + + + Layout::area(inputSlider, 2, 2, 3, 3) + .withWidth(refW * globalMod) + .withHeight(refH * globalMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(outputSlider, 2, 3, 3, 4) + .withWidth(refW * globalMod) + .withHeight(refH * globalMod) + .withAlignSelf(juce::GridItem::AlignSelf::center) + .withJustifySelf(juce::GridItem::JustifySelf::center), + + Layout::area(inputLabel, 2, 2, 3, 3) + .withWidth(refW * globalMod) + .withHeight(inLabelH) + .withAlignSelf(juce::GridItem::AlignSelf::stretch) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(outputLabel, 2, 3, 3, 4) + .withWidth(refW * globalMod) + .withHeight(outLabelH) + .withAlignSelf(juce::GridItem::AlignSelf::stretch) + .withJustifySelf(juce::GridItem::JustifySelf::center), + Layout::area(masterBypassButton, 2, 1, 3, 2), }); } //endregion setupFooter +//region getReferenceCell +juce::Array CrystalizerEQAudioProcessorEditor::getReferenceCell() { + const auto bounds = midFilterArea.getLocalBounds(); + const auto areaWidth = static_cast(bounds.getWidth()); + const auto areaHeight = static_cast(bounds.getHeight()); + const auto knobColWidth = areaWidth / 3.0f; + const auto knobRowHeight = areaHeight / 3.0f; + + const auto gainCellW = knobColWidth; + const auto gainCellH = knobRowHeight * 1.25f; + const juce::Array refCell = {gainCellW, gainCellH}; + return refCell; +} +//endregion getReferenceCell //region processSamples void SpectrumAnalyzer::processSamples() { diff --git a/CrystalizerEQ/PluginEditor.h b/CrystalizerEQ/PluginEditor.h index 6cf6f6a..c76025f 100644 --- a/CrystalizerEQ/PluginEditor.h +++ b/CrystalizerEQ/PluginEditor.h @@ -16,6 +16,9 @@ //============================================================================== /** */ +using AXIOM::DesignSystem; +using Components = DesignSystem::Components; +using SliderStyles = Components::SliderStyles; class SpectrumAnalyzer { public: SpectrumAnalyzer(AudioFIFO& fifoRef, CrystalizerEQAudioProcessor& processor) : audioFIFO(fifoRef), audioProcessor(processor) { @@ -131,6 +134,7 @@ public: ~CrystalizerEQAudioProcessorEditor() override; void paintAnalyzer(juce::Graphics &g); + void paintBorderLines(juce::Graphics& g); //=================================================================== void timerCallback(); @@ -161,6 +165,15 @@ private: highBandFreqSlider, highBandSlopeSlider, highBandGainSlider, highBandQSlider, inputSlider, outputSlider; + const juce::Array sliders = { + &lowBandGainSlider, &lowBandFreqSlider, &lowBandQSlider, &lowBandSlopeSlider, + &peak1GainSlider, &peak1FreqSlider, &peak1QSlider, + &peak2GainSlider, &peak2FreqSlider, &peak2QSlider, + &peak3GainSlider, &peak3FreqSlider, &peak3QSlider, + &highBandGainSlider, &highBandFreqSlider, &highBandQSlider, &highBandSlopeSlider, + &inputSlider, &outputSlider + }; + std::unique_ptr testNoiseAttach, lowBandFreqAttach, lowBandSlopeAttach, lowBandGainAttach, lowBandQAttach, peak1FreqAttach, peak1GainAttach, peak1QAttach, @@ -178,6 +191,15 @@ private: inputLabel, outputLabel, presetBoxLabel; + const juce::Array sliderLabels = { + &lowBandFreqLabel, &lowBandSlopeLabel, &lowBandGainLabel, &lowBandQLabel, + &peak1FreqLabel, &peak1GainLabel, &peak1QLabel, + &peak2FreqLabel, &peak2GainLabel, &peak2QLabel, + &peak3FreqLabel, &peak3GainLabel, &peak3QLabel, + &highBandFreqLabel, &highBandSlopeLabel, &highBandGainLabel, &highBandQLabel, + &inputLabel, &outputLabel + }; + juce::TextButton testNoiseButton, resetButton, savePresetButton, deletePresetButton; juce::ToggleButton masterBypassButton, crystalizeButton, peak1BypassButton, peak2BypassButton, peak3BypassButton, presetMenuButton; @@ -203,6 +225,8 @@ private: void setupLabels(); + void setupFontsWithColours(); + void setupEventListeners(); void initPresetSystem(); @@ -230,6 +254,10 @@ private: Component highMidFilterArea; Component highFilterArea; + const juce::Array filterAreas { + &lowFilterArea, &lowMidFilterArea, &midFilterArea, &highMidFilterArea, &highFilterArea + }; + Component globalControlArea; @@ -247,6 +275,14 @@ private: void setupBody(); void setupFooter(); + juce::Array getReferenceCell(); + + const float gainMod = SliderStyles::Size::getSliderSizeMod(SliderStyles::Size::SizeMode::Gain); + const float freqMod = SliderStyles::Size::getSliderSizeMod(SliderStyles::Size::SizeMode::Freq); + const float qMod = SliderStyles::Size::getSliderSizeMod(SliderStyles::Size::SizeMode::Q); + const float slopeMod = SliderStyles::Size::getSliderSizeMod(SliderStyles::Size::SizeMode::Slope); + const float globalMod = SliderStyles::Size::getSliderSizeMod(SliderStyles::Size::SizeMode::Global); + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CrystalizerEQAudioProcessorEditor) diff --git a/CrystalizerEQ/PluginProcessor.cpp b/CrystalizerEQ/PluginProcessor.cpp index 25a9e2f..39a0a64 100644 --- a/CrystalizerEQ/PluginProcessor.cpp +++ b/CrystalizerEQ/PluginProcessor.cpp @@ -64,7 +64,7 @@ CrystalizerEQAudioProcessor::createParameterLayout() { params.push_back (std::make_unique( "Peak2Gain", "Peak2 Gain (dB)", - juce::NormalisableRange(-24.f, 24.f, 0.1f), 0.f)); + juce::NormalisableRange(-48.f, 48.f, 0.1f), 0.f)); params.push_back (std::make_unique( "Peak2Q", "Peak2 Q", diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/.ninja_deps b/CrystalizerEQ/cmake-build-debug-visual-studio/.ninja_deps index 2d3c516..6668f6c 100644 Binary files a/CrystalizerEQ/cmake-build-debug-visual-studio/.ninja_deps and b/CrystalizerEQ/cmake-build-debug-visual-studio/.ninja_deps differ diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/.ninja_log b/CrystalizerEQ/cmake-build-debug-visual-studio/.ninja_log index 0534870..135fa67 100644 --- a/CrystalizerEQ/cmake-build-debug-visual-studio/.ninja_log +++ b/CrystalizerEQ/cmake-build-debug-visual-studio/.ninja_log @@ -1,31 +1,31 @@ # ninja log v6 432 697 7828210853694756 CMakeFiles/CrystalizerEQ_Standalone.dir/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_AAX.cpp.obj f36e41d3022e3470 5580 12586 7828210679067275 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_dsp/juce_dsp.cpp.obj 39d5d800f19dc6d0 -6 265 7837945860767552 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 +9 278 7839679443804540 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 +327 447 7828210626527378 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_audio_processors/juce_audio_processors_ara.cpp.obj 7b19d5a02f5dc1e 469 689 7828210854071140 CMakeFiles/CrystalizerEQ_Standalone.dir/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_Unity.cpp.obj d54f82e8148febf7 368 7251 7828210626941156 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_events/juce_events.cpp.obj 3056a230265f826c -327 447 7828210626527378 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_audio_processors/juce_audio_processors_ara.cpp.obj 7b19d5a02f5dc1e -386 5578 7828210627124898 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_data_structures/juce_data_structures.cpp.obj 561c667a2c5f1198 380 460 7828210627062325 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_core/juce_core_CompilationTime.cpp.obj edc53a02ed0841a2 +386 5578 7828210627124898 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_data_structures/juce_data_structures.cpp.obj 561c667a2c5f1198 331 454 7828210626577431 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_audio_processors/juce_audio_processors_lv2_libs.cpp.obj 38667c9bc47b25a1 -365 432 7828210853508994 CrystalizerEQ_artefacts/JuceLibraryCode/CrystalizerEQ_resources.rc d1a3ba4056995d67 360 606 7828210626868075 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_graphics/juce_graphics_Sheenbidi.c.obj 77c70d33232e8886 +365 432 7828210853508994 CrystalizerEQ_artefacts/JuceLibraryCode/CrystalizerEQ_resources.rc d1a3ba4056995d67 448 8158 7828210627741822 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_audio_basics/juce_audio_basics.cpp.obj f40c0a570733a2c8 374 9765 7828210627003931 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_core/juce_core.cpp.obj 3e25033c5c2fcda8 -338 928 7837944930539373 CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe f99e08f773a02d9e -460 9913 7828210627862191 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_audio_formats/juce_audio_formats.cpp.obj 2df754ec2487daad 242 1419 7830045112447143 build.ninja a6be2c7dedf50871 +460 9913 7828210627862191 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_audio_formats/juce_audio_formats.cpp.obj 2df754ec2487daad +285 778 7839677947833993 CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe f99e08f773a02d9e 607 11276 7828210629331277 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_audio_devices/juce_audio_devices.cpp.obj 58bf78f608bf2f83 +293 5669 7839679446647628 CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj 44b08ed233e258e6 454 12862 7828210627804301 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_audio_utils/juce_audio_utils.cpp.obj f12414597820454e -287 5949 7837945863569425 CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj 44b08ed233e258e6 -282 6080 7837945863517766 CMakeFiles/CrystalizerEQ.dir/PluginProcessor.cpp.obj f49ea9ae57418054 -438 697 7828210853754469 CMakeFiles/CrystalizerEQ_Standalone.dir/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_AAX_utils.cpp.obj 2797a864e825dc34 -444 689 7828210853819193 CMakeFiles/CrystalizerEQ_Standalone.dir/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp.obj 4ff2f2829cb109de +324 6287 7839661108405843 CMakeFiles/CrystalizerEQ.dir/PluginProcessor.cpp.obj f49ea9ae57418054 337 13065 7828210626632439 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_gui_extra/juce_gui_extra.cpp.obj 45d8186a1b2f6524 +444 689 7828210853819193 CMakeFiles/CrystalizerEQ_Standalone.dir/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_ARA.cpp.obj 4ff2f2829cb109de +438 697 7828210853754469 CMakeFiles/CrystalizerEQ_Standalone.dir/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_AAX_utils.cpp.obj 2797a864e825dc34 322 14369 7828210626482370 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_audio_processors/juce_audio_processors.cpp.obj bdd44e5c9965d536 348 16270 7828210626744013 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_graphics/juce_graphics.cpp.obj 17c70bd7835a67e4 -6080 6704 7837945921498516 CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib ab4ea4347209d0df 354 17057 7828210626798669 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_graphics/juce_graphics_Harfbuzz.cpp.obj babac8068a5cbb35 +5670 6287 7839679500417834 CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib ab4ea4347209d0df 343 21749 7828210626689029 CMakeFiles/CrystalizerEQ.dir/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp.obj eff617cd2d5e1485 365 432 7828210853508994 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/JuceLibraryCode/CrystalizerEQ_resources.rc d1a3ba4056995d67 478 648 7828210854156157 CMakeFiles/CrystalizerEQ_Standalone.dir/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST2.cpp.obj 94a6138c6437320c @@ -34,11 +34,20 @@ 493 795 7828210854316185 CMakeFiles/CrystalizerEQ_rc_lib.dir/CrystalizerEQ_artefacts/JuceLibraryCode/CrystalizerEQ_resources.rc.res 6234bb35ee153fd0 458 5782 7828210853953251 CMakeFiles/CrystalizerEQ_Standalone.dir/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_Standalone.cpp.obj 87ce7c25ac4a4f5a 293 1334 7829211846304973 CMakeFiles/CrystalizerEQ.dir/JuceLibraryCode/BinaryData.cpp.obj 98c4237ee105319c -7 248 7837945928452763 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 -263 885 7837945931012934 CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe f99e08f773a02d9e -6 240 7837954957976234 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 -259 5860 7837954960510016 CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj 44b08ed233e258e6 -255 5875 7837954960470004 CMakeFiles/CrystalizerEQ.dir/PluginProcessor.cpp.obj f49ea9ae57418054 -5875 6510 7837955016672923 CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib ab4ea4347209d0df -6 248 7837955023837529 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 -264 799 7837955026417374 CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe f99e08f773a02d9e +9 269 7839679507404965 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 +286 821 7839679510186218 CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe f99e08f773a02d9e +7 269 7839680323125238 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 +284 5671 7839680325894311 CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj 44b08ed233e258e6 +5671 6297 7839680379763834 CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib ab4ea4347209d0df +8 255 7839680386974098 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 +272 760 7839680389613419 CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe f99e08f773a02d9e +6 233 7839682007238398 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 +245 4870 7839682009633818 CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj 44b08ed233e258e6 +4870 5496 7839682055880758 CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib ab4ea4347209d0df +6 240 7839682062962022 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 +255 777 7839682065452626 CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe f99e08f773a02d9e +6 246 7839682620590452 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 +259 4867 7839682623119198 CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj 44b08ed233e258e6 +4868 5457 7839682669208510 CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib ab4ea4347209d0df +7 251 7839682675876501 C:/Users/deppe/Desktop/Projects/main_crystalizereq/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/cmake.verify_globs 154243cd2d50ef70 +268 756 7839682678487979 CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe f99e08f773a02d9e diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/CrystalizerEQ.pdb b/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/CrystalizerEQ.pdb index cf45cc7..6394ac3 100644 Binary files a/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/CrystalizerEQ.pdb and b/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/CrystalizerEQ.pdb differ diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj b/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj index 974306f..ebf1482 100644 Binary files a/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj and b/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/PluginEditor.cpp.obj differ diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/PluginProcessor.cpp.obj b/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/PluginProcessor.cpp.obj index 3b176f3..61c7ed1 100644 Binary files a/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/PluginProcessor.cpp.obj and b/CrystalizerEQ/cmake-build-debug-visual-studio/CMakeFiles/CrystalizerEQ.dir/PluginProcessor.cpp.obj differ diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib b/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib index d94542d..a5739b8 100644 Binary files a/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib and b/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/CrystalizerEQ_SharedCode.lib differ diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe b/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe index efa8233..a01ac37 100644 Binary files a/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe and b/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.exe differ diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.ilk b/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.ilk index bdc6248..cd394b4 100644 Binary files a/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.ilk and b/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.ilk differ diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.pdb b/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.pdb index 10a31b2..86ad938 100644 Binary files a/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.pdb and b/CrystalizerEQ/cmake-build-debug-visual-studio/CrystalizerEQ_artefacts/Debug/Standalone/CrystalizerEQ.pdb differ diff --git a/CrystalizerEQ/cmake-build-debug-visual-studio/Testing/Temporary/LastTest.log b/CrystalizerEQ/cmake-build-debug-visual-studio/Testing/Temporary/LastTest.log index a117c0e..7e66318 100644 --- a/CrystalizerEQ/cmake-build-debug-visual-studio/Testing/Temporary/LastTest.log +++ b/CrystalizerEQ/cmake-build-debug-visual-studio/Testing/Temporary/LastTest.log @@ -1,3 +1,3 @@ -Start testing: Nov 02 15:05 Mitteleuropäische Zeit +Start testing: Nov 04 15:04 Mitteleuropäische Zeit ---------------------------------------------------------- -End testing: Nov 02 15:05 Mitteleuropäische Zeit +End testing: Nov 04 15:04 Mitteleuropäische Zeit