Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions res/shaders/filteredsignal.frag
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ uniform float midGain;
uniform float highGain;
uniform float firstVisualIndex;
uniform float lastVisualIndex;
uniform float alpha;
uniform float alphaUnscaled;

uniform sampler2D waveformDataTexture;

Expand Down Expand Up @@ -90,35 +92,35 @@ void main(void) {
}

if (lowShowingUnscaled) {
float lowAlpha = 0.2;
float lowAlpha = alphaUnscaled;
outputColor.xyz = mix(outputColor.xyz, lowColor.xyz, lowAlpha);
outputColor.w = 1.0;
}
if (midShowingUnscaled) {
float midAlpha = 0.2;
float midAlpha = alphaUnscaled;
outputColor.xyz = mix(outputColor.xyz, midColor.xyz, midAlpha);
outputColor.w = 1.0;
}
if (highShowingUnscaled) {
float highAlpha = 0.2;
float highAlpha = alphaUnscaled;
outputColor.xyz = mix(outputColor.xyz, highColor.xyz, highAlpha);
outputColor.w = 1.0;
}

if (lowShowing) {
float lowAlpha = 0.8;
float lowAlpha = alpha;
outputColor.xyz = mix(outputColor.xyz, lowColor.xyz, lowAlpha);
outputColor.w = 1.0;
}

if (midShowing) {
float midAlpha = 0.85;
float midAlpha = min(alpha+0.05, 1.0);
outputColor.xyz = mix(outputColor.xyz, midColor.xyz, midAlpha);
outputColor.w = 1.0;
}

if (highShowing) {
float highAlpha = 0.9;
float highAlpha = min(alpha+0.1, 1.0);
outputColor.xyz = mix(outputColor.xyz, highColor.xyz, highAlpha);
outputColor.w = 1.0;
}
Expand Down
7 changes: 4 additions & 3 deletions res/shaders/rgbsignal.frag
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ uniform float midGain;
uniform float highGain;
uniform float firstVisualIndex;
uniform float lastVisualIndex;
uniform float alpha;
uniform float alphaUnscaled;


uniform sampler2D waveformDataTexture;

Expand Down Expand Up @@ -116,13 +119,11 @@ void main(void) {
}

if (showingUnscaled) {
float alpha = 0.4;
outputColor.xyz = mix(outputColor.xyz, showingUnscaledColor.xyz, alpha);
outputColor.xyz = mix(outputColor.xyz, showingUnscaledColor.xyz, alphaUnscaled);
outputColor.w = 1.0;
}

if (showing) {
float alpha = 0.8;
outputColor.xyz = mix(outputColor.xyz, showingColor.xyz, alpha);
outputColor.w = 1.0;
}
Expand Down
3 changes: 3 additions & 0 deletions src/preferences/dialog/dlgprefeq.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,9 @@ DlgPrefEQ::~DlgPrefEQ() {

qDeleteAll(m_filterWaveformEnableCOs);
m_filterWaveformEnableCOs.clear();

qDeleteAll(m_filterWaveformPrefilterAlphaCOs);
m_filterWaveformPrefilterAlphaCOs.clear();
}

void DlgPrefEQ::slotNumDecksChanged(double numDecks) {
Expand Down
1 change: 1 addition & 0 deletions src/preferences/dialog/dlgprefeq.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ class DlgPrefEQ : public DlgPreferencePage, public Ui::DlgPrefEQDlg {
QList<QComboBox*> m_deckQuickEffectSelectors;
QList<bool> m_filterWaveformEffectLoaded;
QList<ControlObject*> m_filterWaveformEnableCOs;
QList<ControlObject*> m_filterWaveformPrefilterAlphaCOs;
ControlProxy* m_pNumDecks;

bool m_inSlotPopulateDeckEffectSelectors;
Expand Down
66 changes: 66 additions & 0 deletions src/preferences/dialog/dlgprefwaveform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,18 @@ DlgPrefWaveform::DlgPrefWaveform(QWidget* pParent, MixxxMainWindow* pMixxx,
frameRateSpinBox, SLOT(setValue(int)));
connect(frameRateSpinBox, SIGNAL(valueChanged(int)),
frameRateSlider, SLOT(setValue(int)));
connect(waveformAlphaSlider, SIGNAL(valueChanged(int)),
waveformAlphaSpinBox, SLOT(setValue(int)));
connect(waveformAlphaSpinBox, SIGNAL(valueChanged(int)),
waveformAlphaSlider, SLOT(setValue(int)));
connect(waveformAlphaSpinBox, SIGNAL(valueChanged(int)),
this, SLOT(slotSetWaveformAlpha(int)));
connect(waveformAlphaPrefilterSlider, SIGNAL(valueChanged(int)),
waveformAlphaPrefilterSpinBox, SLOT(setValue(int)));
connect(waveformAlphaPrefilterSpinBox, SIGNAL(valueChanged(int)),
waveformAlphaPrefilterSlider, SLOT(setValue(int)));
connect(waveformAlphaPrefilterSpinBox, SIGNAL(valueChanged(int)),
this, SLOT(slotSetWaveformPrefilterAlpha(int)));
connect(endOfTrackWarningTimeSlider, SIGNAL(valueChanged(int)),
endOfTrackWarningTimeSpinBox, SLOT(setValue(int)));
connect(endOfTrackWarningTimeSpinBox, SIGNAL(valueChanged(int)),
Expand Down Expand Up @@ -82,6 +94,28 @@ DlgPrefWaveform::DlgPrefWaveform(QWidget* pParent, MixxxMainWindow* pMixxx,
this, SLOT(slotClearCachedWaveforms()));
connect(playMarkerPositionSlider, SIGNAL(valueChanged(int)),
this, SLOT(slotSetPlayMarkerPosition(int)));

// Waveform control objects
m_pCOWaveformAlpha = new ControlObject(
ConfigKey("[Controls]", "waveform_alpha"));
connect(m_pCOWaveformAlpha,
SIGNAL(valueChanged(double)),
this,
SLOT(slotCOWaveformAlpha(double)));
m_pCOWaveformAlphaPrefilter = new ControlObject(
ConfigKey("[Controls]", "waveform_alpha_prefilter"));
connect(m_pCOWaveformAlphaPrefilter,
SIGNAL(valueChanged(double)),
this,
SLOT(slotCOWaveformPrefilterAlpha(double)));

double waveformAlpha = m_pConfig->getValue(ConfigKey("[Waveform]","WaveformAlpha"), 80)/100.0;
m_pCOWaveformAlpha->forceSet(waveformAlpha);
slotCOWaveformAlpha(waveformAlpha);

double waveformPrefilterAlpha = m_pConfig->getValue(ConfigKey("[Waveform]","WaveformPrefilterAlpha"), 20)/100.0;
m_pCOWaveformAlphaPrefilter->forceSet(waveformPrefilterAlpha);
slotCOWaveformPrefilterAlpha(waveformPrefilterAlpha);
}

DlgPrefWaveform::~DlgPrefWaveform() {
Expand Down Expand Up @@ -265,6 +299,38 @@ void DlgPrefWaveform::slotSetPlayMarkerPosition(int position) {
WaveformWidgetFactory::instance()->setPlayMarkerPosition(position / 100.0);
}

void DlgPrefWaveform::slotSetWaveformAlpha(int percent) {
m_pConfig->setValue(ConfigKey("[Waveform]","WaveformAlpha"), percent);
m_pCOWaveformAlpha->set((double)percent/100.0);
}

void DlgPrefWaveform::slotSetWaveformPrefilterAlpha(int percent) {
m_pConfig->setValue(ConfigKey("[Waveform]","WaveformPrefilterAlpha"), percent);
m_pCOWaveformAlphaPrefilter->set((double)percent/100.0);
}

void DlgPrefWaveform::slotCOWaveformAlpha(double alpha) {
if (alpha < 0.0) {
alpha = 0;
} else if (alpha > 1.0) {
alpha = 1.0;
}
int percent = (int)(alpha*100.0);
m_pConfig->setValue(ConfigKey("[Waveform]","WaveformAlpha"), percent);
waveformAlphaSpinBox->setValue(percent);
}

void DlgPrefWaveform::slotCOWaveformPrefilterAlpha(double alpha) {
if (alpha < 0.0) {
alpha = 0;
} else if (alpha > 1.0) {
alpha = 1.0;
}
int percent = (int)(alpha*100.0);
m_pConfig->setValue(ConfigKey("[Waveform]","WaveformPrefilterAlpha"), percent);
waveformAlphaPrefilterSpinBox->setValue(percent);
}

void DlgPrefWaveform::calculateCachedWaveformDiskUsage() {
AnalysisDao analysisDao(m_pConfig);
QSqlDatabase dbConnection = mixxx::DbConnectionPooled(m_pLibrary->dbConnectionPool());
Expand Down
7 changes: 7 additions & 0 deletions src/preferences/dialog/dlgprefwaveform.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include "preferences/dialog/ui_dlgprefwaveformdlg.h"
#include "preferences/usersettings.h"
#include "preferences/dlgpreferencepage.h"
#include "control/controlobject.h"

class MixxxMainWindow;
class Library;
Expand Down Expand Up @@ -38,6 +39,10 @@ class DlgPrefWaveform : public DlgPreferencePage, public Ui::DlgPrefWaveformDlg
void slotClearCachedWaveforms();
void slotSetBeatGridAlpha(int alpha);
void slotSetPlayMarkerPosition(int position);
void slotSetWaveformAlpha(int alpha);
void slotSetWaveformPrefilterAlpha(int alpha);
void slotCOWaveformAlpha(double alpha);
void slotCOWaveformPrefilterAlpha(double alpha);

private:
void initWaveformControl();
Expand All @@ -46,6 +51,8 @@ class DlgPrefWaveform : public DlgPreferencePage, public Ui::DlgPrefWaveformDlg
UserSettingsPointer m_pConfig;
Library* m_pLibrary;
MixxxMainWindow* m_pMixxx;
ControlObject* m_pCOWaveformAlpha;
ControlObject* m_pCOWaveformAlphaPrefilter;
};


Expand Down
Loading