This patch makes rate_temp_up and rate_temp_down change the pitch
gradually, instead of all at once. There are still a few improvements
that could be made, especially ramping back down to the original pitch
and configuration options.
Index: src/engine/enginebuffer.h
===================================================================
--- src/engine/enginebuffer.h (revision 2491)
+++ src/engine/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: src/engine/enginebuffer.cpp
===================================================================
--- src/engine/enginebuffer.cpp (revision 2491)
+++ src/engine/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_dTempRateChange = 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------
------------------------------------------------------------------------------
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