summaryrefslogtreecommitdiffstats
path: root/audio/stretchplayer/fine_tuning.diff
diff options
context:
space:
mode:
Diffstat (limited to 'audio/stretchplayer/fine_tuning.diff')
-rw-r--r--audio/stretchplayer/fine_tuning.diff156
1 files changed, 156 insertions, 0 deletions
diff --git a/audio/stretchplayer/fine_tuning.diff b/audio/stretchplayer/fine_tuning.diff
new file mode 100644
index 0000000000..10aa30e430
--- /dev/null
+++ b/audio/stretchplayer/fine_tuning.diff
@@ -0,0 +1,156 @@
+diff -Naur stretchplayer-0.503/src/Engine.cpp stretchplayer-0.503.patched/src/Engine.cpp
+--- stretchplayer-0.503/src/Engine.cpp 2010-07-18 00:44:20.000000000 -0400
++++ stretchplayer-0.503.patched/src/Engine.cpp 2014-02-28 17:43:36.000000000 -0500
+@@ -46,6 +46,7 @@
+ _sample_rate(48000.0),
+ _stretch(1.0),
+ _pitch(0),
++ _fine(0),
+ _gain(1.0)
+ {
+ QString err;
+@@ -153,7 +154,7 @@
+ uint32_t srate = _audio_system->sample_rate();
+
+ _stretcher->setTimeRatio( srate / _sample_rate / _stretch );
+- _stretcher->setPitchScale( ::pow(2.0, double(_pitch)/12.0) * _sample_rate / srate );
++ _stretcher->setPitchScale( ::pow(2.0, double(_pitch)/12.0 + double(_fine)/1200.0) * _sample_rate / srate );
+
+ uint32_t frame;
+ uint32_t reqd, gend, zeros, feed;
+diff -Naur stretchplayer-0.503/src/Engine.hpp stretchplayer-0.503.patched/src/Engine.hpp
+--- stretchplayer-0.503/src/Engine.hpp 2010-07-18 00:44:20.000000000 -0400
++++ stretchplayer-0.503.patched/src/Engine.hpp 2014-03-01 11:26:57.000000000 -0500
+@@ -81,6 +81,21 @@
+ //_state_changed = true;
+ }
+
++ int get_fine() {
++ return _fine;
++ }
++ void set_fine(int fin) {
++ if(fin < -99) {
++ _fine = fin % 100;
++ set_pitch(get_pitch() - 1);
++ } else if (fin > 99) {
++ _fine = fin % 100;
++ set_pitch(get_pitch() + 1);
++ } else {
++ _fine = fin;
++ }
++ }
++
+ /**
+ * Clipped to [0.0, 10.0]
+ */
+@@ -146,6 +161,7 @@
+ float _sample_rate;
+ float _stretch;
+ int _pitch;
++ int _fine;
+ float _gain;
+ std::auto_ptr<RubberBand::RubberBandStretcher> _stretcher;
+ std::auto_ptr<AudioSystem> _audio_system;
+diff -Naur stretchplayer-0.503/src/PlayerWidget.cpp stretchplayer-0.503.patched/src/PlayerWidget.cpp
+--- stretchplayer-0.503/src/PlayerWidget.cpp 2010-07-18 00:44:20.000000000 -0400
++++ stretchplayer-0.503.patched/src/PlayerWidget.cpp 2014-03-01 10:04:02.000000000 -0500
+@@ -35,6 +35,7 @@
+ #include <QBitmap>
+ #include <QAction>
+ #include <QResizeEvent>
++#include <QApplication>
+ #include <QCoreApplication>
+
+ #include <cmath>
+@@ -152,11 +153,21 @@
+
+ void PlayerWidget::pitch_inc()
+ {
++ if(QApplication::keyboardModifiers() == Qt::ShiftModifier)
++ _engine->set_fine( _engine->get_fine() + 10);
++ else if(QApplication::keyboardModifiers() == Qt::ControlModifier)
++ _engine->set_fine( _engine->get_fine() + 1);
++ else
+ _engine->set_pitch( _engine->get_pitch() + 1 );
+ }
+
+ void PlayerWidget::pitch_dec()
+ {
++ if(QApplication::keyboardModifiers() == Qt::ShiftModifier)
++ _engine->set_fine( _engine->get_fine() - 10);
++ else if(QApplication::keyboardModifiers() == Qt::ControlModifier)
++ _engine->set_fine( _engine->get_fine() - 1);
++ else
+ _engine->set_pitch( _engine->get_pitch() - 1);
+ }
+
+@@ -262,8 +273,9 @@
+ float sch = _engine->get_stretch();
+ _status->speed(sch);
+
++ int fin = _engine->get_fine();
+ int pit = _engine->get_pitch();
+- _status->pitch(pit);
++ _status->pitch(pit, fin);
+
+ float cpu = _engine->get_cpu_load();
+ _status->cpu(cpu);
+@@ -471,8 +483,9 @@
+ QList<QKeySequence> inc_shortcuts;
+ inc_shortcuts << Qt::Key_Plus;
+ inc_shortcuts << Qt::Key_Equal;
++ inc_shortcuts << QKeySequence("Ctrl+=");
+ _act.pitch_inc = new QAction("+", this);
+- _act.pitch_inc->setToolTip("Pitch Increase [+]");
++ _act.pitch_inc->setToolTip("Pitch Increase [+ or =] (Ctl/Shift=Fine)");
+ _act.pitch_inc->setShortcuts(inc_shortcuts);
+ _act.pitch_inc->setShortcutContext(Qt::ApplicationShortcut);
+ _act.pitch_inc->setIcon( _ico.plus );
+@@ -480,9 +493,13 @@
+ connect(_act.pitch_inc, SIGNAL(triggered()),
+ this, SLOT(pitch_inc()));
+
++ QList<QKeySequence> dec_shortcuts;
++ dec_shortcuts << Qt::Key_Minus;
++ dec_shortcuts << Qt::Key_Underscore;
++ dec_shortcuts << QKeySequence("Ctrl+-");
+ _act.pitch_dec = new QAction("-", this);
+- _act.pitch_dec->setToolTip("Pitch Decrease [-]");
+- _act.pitch_dec->setShortcut(Qt::Key_Minus);
++ _act.pitch_dec->setToolTip("Pitch Decrease [-] (Ctl/Shift=Fine)");
++ _act.pitch_dec->setShortcuts(dec_shortcuts);
+ _act.pitch_dec->setShortcutContext(Qt::ApplicationShortcut);
+ _act.pitch_dec->setIcon( _ico.minus );
+ addAction(_act.pitch_dec);
+diff -Naur stretchplayer-0.503/src/StatusWidget.cpp stretchplayer-0.503.patched/src/StatusWidget.cpp
+--- stretchplayer-0.503/src/StatusWidget.cpp 2010-07-18 00:44:20.000000000 -0400
++++ stretchplayer-0.503.patched/src/StatusWidget.cpp 2014-03-01 11:16:47.000000000 -0500
+@@ -85,10 +85,13 @@
+ .arg(val, 3, 'f', 0);
+ }
+
+- void StatusWidget::pitch(int p)
++ void StatusWidget::pitch(int p, int f)
+ {
+- _pitch = QString("PITCH: %1")
+- .arg(int(p));
++ _pitch = QString("PITCH: %1").arg(int(p));
++ if(f > 0)
++ _pitch += QString("+%1").arg(int(f));
++ else if(f < 0)
++ _pitch += QString("%1").arg(int(f));
+ }
+
+ void StatusWidget::volume(float g)
+diff -Naur stretchplayer-0.503/src/StatusWidget.hpp stretchplayer-0.503.patched/src/StatusWidget.hpp
+--- stretchplayer-0.503/src/StatusWidget.hpp 2010-07-18 00:44:20.000000000 -0400
++++ stretchplayer-0.503.patched/src/StatusWidget.hpp 2014-02-28 19:20:49.000000000 -0500
+@@ -54,7 +54,7 @@
+ void position(float);
+ void time(float);
+ void speed(float);
+- void pitch(int);
++ void pitch(int, int);
+ void volume(float);
+ void cpu(float);
+ void message(QString);