This patch makes rate_temp_up and rate_temp_down ramp up or down the pitch
over time. Possible improvements include ramping back to the original pitch
on letting go, making the behaviour optional and configuring the rate at
which pitch ramps up or down.
Index: enginebuffer.h
===================================================================
--- enginebuffer.h (revision 2491)
+++ enginebuffer.h (working copy)
@@ -160,6 +160,8 @@
static double m_dTemp, m_dTempSmall, m_dPerm, m_dPermSmall;
/** Is true if a rate temp button is pressed */
double m_bTempPress;
+ /** Set to the rate change used for rate temp */
+ double m_dTempRateChange;
ControlPushButton *playButton, *audioBeatMark, *buttonBeatSync;
ControlPushButton *buttonRateTempDown, *buttonRateTempDownSmall,
*buttonRateTempUp, *buttonRateTempUpSmall;
Index: enginebuffer.cpp
===================================================================
--- enginebuffer.cpp (revision 2491)
+++ enginebuffer.cpp (working copy)
@@ -625,7 +625,7 @@
{
m_bTempPress = true;
m_dOldRate = rateSlider->get();
- rateSlider->sub(m_pRateDir->get() * m_dTemp / (100. *
m_pRateRange->get()));
+ m_dTempRateChangeChange = m_pRateDir->get() * m_dTemp / (100. *
m_pRateRange->get()) / 10.;
}
else if (!buttonRateTempDown->get())
{
@@ -641,7 +641,7 @@
{
m_bTempPress = true;
m_dOldRate = rateSlider->get();
- rateSlider->sub(m_pRateDir->get() * m_dTempSmall / (100. *
m_pRateRange->get()));
+ m_dTempRateChange = m_pRateDir->get() * m_dTemp / (100. *
m_pRateRange->get()) / 10.;
}
else if (!buttonRateTempDownSmall->get())
{
@@ -657,7 +657,7 @@
{
m_bTempPress = true;
m_dOldRate = rateSlider->get();
- rateSlider->add(m_pRateDir->get() * m_dTemp / (100. *
m_pRateRange->get()));
+ m_dTempRateChange = m_pRateDir->get() * m_dTemp / (100. *
m_pRateRange->get()) / 10.;
}
else if (!buttonRateTempUp->get())
{
@@ -673,7 +673,7 @@
{
m_bTempPress = true;
m_dOldRate = rateSlider->get();
- rateSlider->add(m_pRateDir->get() * m_dTempSmall / (100. *
m_pRateRange->get()));
+ m_dTempRateChange = m_pRateDir->get() * m_dTemp / (100. *
m_pRateRange->get()) / 10.;
}
else if (!buttonRateTempUpSmall->get())
{
@@ -986,6 +986,14 @@
rate_old = rate;
}
+ // Change Rate if we're holding one of the Pitch Bend buttons
+ if ( m_bTempPress ) {
+ if ( buttonRateTempUp->get())
+ rateSlider->add(m_dTempRateChange);
+ if ( buttonRateTempDown->get())
+ rateSlider->sub(m_dTempRateChange);
+ }
+
bool at_start = false;
bool at_end = false;
--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS d- s+:- a-- C+++(++++)$ UL+++$ P+ L+++>++++ E W++ N o?
K- w++(---) O? M-- V PS+++ PE-(--) Y+(++) PGP t(+) 5(+) X++
R b+>++ DI+ D+ G e h-(--) r y+
------END GEEK CODE BLOCK------
Index: enginebuffer.h
===================================================================
--- enginebuffer.h (revision 2491)
+++ enginebuffer.h (working copy)
@@ -160,6 +160,8 @@
static double m_dTemp, m_dTempSmall, m_dPerm, m_dPermSmall;
/** Is true if a rate temp button is pressed */
double m_bTempPress;
+ /** Set to the rate change used for rate temp */
+ double m_dTempRateChange;
ControlPushButton *playButton, *audioBeatMark, *buttonBeatSync;
ControlPushButton *buttonRateTempDown, *buttonRateTempDownSmall, *buttonRateTempUp, *buttonRateTempUpSmall;
Index: enginebuffer.cpp
===================================================================
--- enginebuffer.cpp (revision 2491)
+++ enginebuffer.cpp (working copy)
@@ -625,7 +625,7 @@
{
m_bTempPress = true;
m_dOldRate = rateSlider->get();
- rateSlider->sub(m_pRateDir->get() * m_dTemp / (100. * m_pRateRange->get()));
+ m_dTempRateChangeChange = m_pRateDir->get() * m_dTemp / (100. * m_pRateRange->get()) / 10.;
}
else if (!buttonRateTempDown->get())
{
@@ -641,7 +641,7 @@
{
m_bTempPress = true;
m_dOldRate = rateSlider->get();
- rateSlider->sub(m_pRateDir->get() * m_dTempSmall / (100. * m_pRateRange->get()));
+ m_dTempRateChange = m_pRateDir->get() * m_dTemp / (100. * m_pRateRange->get()) / 10.;
}
else if (!buttonRateTempDownSmall->get())
{
@@ -657,7 +657,7 @@
{
m_bTempPress = true;
m_dOldRate = rateSlider->get();
- rateSlider->add(m_pRateDir->get() * m_dTemp / (100. * m_pRateRange->get()));
+ m_dTempRateChange = m_pRateDir->get() * m_dTemp / (100. * m_pRateRange->get()) / 10.;
}
else if (!buttonRateTempUp->get())
{
@@ -673,7 +673,7 @@
{
m_bTempPress = true;
m_dOldRate = rateSlider->get();
- rateSlider->add(m_pRateDir->get() * m_dTempSmall / (100. * m_pRateRange->get()));
+ m_dTempRateChange = m_pRateDir->get() * m_dTemp / (100. * m_pRateRange->get()) / 10.;
}
else if (!buttonRateTempUpSmall->get())
{
@@ -986,6 +986,14 @@
rate_old = rate;
}
+ // Change Rate if we're holding one of the Pitch Bend buttons
+ if ( m_bTempPress ) {
+ if ( buttonRateTempUp->get())
+ rateSlider->add(m_dTempRateChange);
+ if ( buttonRateTempDown->get())
+ rateSlider->sub(m_dTempRateChange);
+ }
+
bool at_start = false;
bool at_end = false;
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel