diff --git a/data/presets/Kicker/Clap dry.xpf b/data/presets/Kicker/Clap dry.xpf
new file mode 100644
index 000000000..f6c938959
--- /dev/null
+++ b/data/presets/Kicker/Clap dry.xpf
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/presets/Kicker/Kick power.xpf b/data/presets/Kicker/Kick power.xpf
new file mode 100644
index 000000000..b4e1daba3
--- /dev/null
+++ b/data/presets/Kicker/Kick power.xpf
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/DualFilter/DualFilter.cpp b/plugins/DualFilter/DualFilter.cpp
index 352840eac..801a58efd 100644
--- a/plugins/DualFilter/DualFilter.cpp
+++ b/plugins/DualFilter/DualFilter.cpp
@@ -84,12 +84,12 @@ bool DualFilterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames
const float d = dryLevel();
const float w = wetLevel();
- if( m_dfControls.m_filter1Model.isValueChanged() )
+ if( m_dfControls.m_filter1Model.isValueChanged() || m_filter1changed )
{
m_filter1->setFilterType( m_dfControls.m_filter1Model.value() );
m_filter1changed = true;
}
- if( m_dfControls.m_filter2Model.isValueChanged() )
+ if( m_dfControls.m_filter2Model.isValueChanged() || m_filter2changed )
{
m_filter2->setFilterType( m_dfControls.m_filter2Model.value() );
m_filter2changed = true;
diff --git a/src/core/Timeline.cpp b/src/core/Timeline.cpp
index 46377e661..d30682d79 100644
--- a/src/core/Timeline.cpp
+++ b/src/core/Timeline.cpp
@@ -294,6 +294,7 @@ void Timeline::mousePressEvent( QMouseEvent* event )
}
else if( event->button() == Qt::RightButton || event->button() == Qt::MiddleButton )
{
+ m_moveXOff = s_posMarkerPixmap->width() / 2;
const MidiTime t = m_begin + static_cast( event->x() * MidiTime::ticksPerTact() / m_ppt );
if( m_loopPos[0] > m_loopPos[1] )
{