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

Reply via email to