summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2019-05-12 13:54:37 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2019-05-12 13:54:37 +0200
commitcea71f777f5da0bd159301680b69ce5fed62aba4 (patch)
tree6091f10c5f5a9823097b9fac288cce5790e0a846
parent585999c31627b61b98414e1966847a0e8a98b3ba (diff)
Add tips for velocity and timing humanizers as well as the visualizer. Prefix all knob labels with 'p'.
-rw-r--r--plugingui/humanizerframecontent.h6
-rw-r--r--plugingui/maintab.cc66
-rw-r--r--plugingui/maintab.h6
-rw-r--r--plugingui/sampleselectionframecontent.h6
-rw-r--r--plugingui/timingframecontent.h6
5 files changed, 70 insertions, 20 deletions
diff --git a/plugingui/humanizerframecontent.h b/plugingui/humanizerframecontent.h
index 048aea7..c8a49e7 100644
--- a/plugingui/humanizerframecontent.h
+++ b/plugingui/humanizerframecontent.h
@@ -56,9 +56,9 @@ private:
GridLayout layout{this, 3, 1};
- LabeledControl attack{this, "Attack"}; // drummer strength
- LabeledControl falloff{this, "Release"}; // regain
- LabeledControl stddev{this, "StdDev"};
+ LabeledControl attack{this, "pAttack"}; // drummer strength
+ LabeledControl falloff{this, "pRelease"}; // regain
+ LabeledControl stddev{this, "pStdDev"};
Knob attack_knob{&attack};
Knob falloff_knob{&falloff};
diff --git a/plugingui/maintab.cc b/plugingui/maintab.cc
index e2ea9d2..1582d5c 100644
--- a/plugingui/maintab.cc
+++ b/plugingui/maintab.cc
@@ -29,6 +29,58 @@
namespace GUI
{
+constexpr char humanizer_tip[] = "\
+The first two knobs influence how DrumGizmo simulates the\n\
+stamina of a physical drummers, ie. the fact that they\n\
+loose power in their strokes when playing fast notes:\n\
+ * pAttack: How quickly the velocity gets reduced when\n\
+ playing fast notes.\n\
+ Higher value results in faster velocity reduction.\n\
+ * pRelease: How quickly the drummer regains the velocity\n\
+ when there are spaces between the notes.\n\
+ Higher value results in faster regain.\n\
+\n\
+The last knob controls the randomization of the sample selection:\n\
+ * pStdDev: The standard-deviation for the sample selection.\n\
+ Higher value makes it more likely that a sample further\n\
+ away from the input velocity will be played.";
+
+constexpr char timing_tip[] = "\
+These three knobs influence how DrumGizmo simulates the tightness\n\
+of the drummer. The drifting is defined as the difference between\n\
+the perfect metronome (defined by the note positions) and the 'internal'\n\
+metronome of the drummer which can then drift back and forth in a\n\
+controlled fashion:\n\
+ * pTightness: For each note how much is the drummer aloowed to drift.\n\
+ Higher value make the drummer more tight, ie. drift less.\n\
+ * pTimingRegain: Once the drifted, how fast does the drummer's 'internal'\n\
+ metronome get back in sync with the perfect metronome.\n\
+ Higher values moves the timng back towards perfect faster.\n\
+ * pLaidback: Add or subtract a fixed delay in ms to all notes. This will\n\
+ alter the feel of a beat.\n\
+ Positive values are up-beat, negative values are back on the beat.\n\
+\n\
+NOTE: Enabling timing humanization will introduce a fixed delay into the\n\
+audio stream. So this feature should be disabled when using DrumGizmo in\n\
+a real-time schenario such as live with a MIDI drumkit.";
+
+constexpr char sampleselection_tip[] = "\
+These three knobs influence how DrumGizmo selects\n\
+its samples in the following way:\n\
+ * pClose: The importance given to choosing a sample close\n\
+ to the actual MIDI value (after humanization)\n\
+ * pDiversity: The importance given to choosing samples\n\
+ which haven't been played recently.\n\
+ * pRandom: The amount of randomness added.";
+
+constexpr char visualizer_tip[] = "\
+This graph visualizes the time and velocity offsets of last note played\n\
+according to it's ideal input time and velocity.\n\
+The green lines indicate the ideal time and velocity positions.\n\
+The pink areas indicate the spread of the position and velocity of the\n\
+next note in line. The wider the area the more the note can move in time\n\
+and velocity.";
+
MainTab::MainTab(Widget* parent,
Settings& settings,
SettingsNotifier& settings_notifier,
@@ -54,16 +106,14 @@ MainTab::MainTab(Widget* parent,
add("Resampling", resampling_frame, resamplingframe_content, 20, 0);
add("Velocity Humanizer", humanizer_frame, humanizerframe_content, 10, 1);
- humanizer_frame.setHelpText("Hello World\nThis is a nice World\n... I think");
+ humanizer_frame.setHelpText(humanizer_tip);
add("Timing Humanizer", timing_frame, timingframe_content, 10, 1);
- add("Sample Selection", sampleselection_frame, sampleselectionframe_content, 10, 1);
- sampleselection_frame.setHelpText(
- "These three knobs influence how DrumGizmo selects its samples in the following way:\n"
- " * Close: importance given to choosing a sample close to the actual MIDI value (after humanization)\n"
- " * Diversity: importance given to choosing samples which haven't been played recently\n"
- " * Random: amount of randomness added"
- );
+ timing_frame.setHelpText(timing_tip);
+ add("Sample Selection", sampleselection_frame,
+ sampleselectionframe_content, 10, 1);
+ sampleselection_frame.setHelpText(sampleselection_tip);
add("Visualizer", visualizer_frame, visualizerframe_content, 10, 1);
+ visualizer_frame.setHelpText(visualizer_tip);
add("Bleed Control", bleedcontrol_frame, bleedcontrolframe_content, 9, 1);
add("Disk Streaming", diskstreaming_frame, diskstreamingframe_content, 10, 1);
diff --git a/plugingui/maintab.h b/plugingui/maintab.h
index 3e5eb1f..f90d23a 100644
--- a/plugingui/maintab.h
+++ b/plugingui/maintab.h
@@ -70,13 +70,13 @@ private:
FrameWidget drumkit_frame{this, false};
FrameWidget status_frame{this, false};
- FrameWidget humanizer_frame{this, true, true};
FrameWidget diskstreaming_frame{this, false};
FrameWidget bleedcontrol_frame{this, true};
FrameWidget resampling_frame{this, true};
- FrameWidget timing_frame{this, true};
+ FrameWidget humanizer_frame{this, true, true};
+ FrameWidget timing_frame{this, true, true};
FrameWidget sampleselection_frame{this, false, true};
- FrameWidget visualizer_frame{this, false};
+ FrameWidget visualizer_frame{this, false, true};
DrumkitframeContent drumkitframe_content;
StatusframeContent statusframe_content;
diff --git a/plugingui/sampleselectionframecontent.h b/plugingui/sampleselectionframecontent.h
index 20765ed..ebb1a02 100644
--- a/plugingui/sampleselectionframecontent.h
+++ b/plugingui/sampleselectionframecontent.h
@@ -60,9 +60,9 @@ private:
GridLayout layout{this, 3, 1};
- LabeledControl f_close{this, "Close"};
- LabeledControl f_diverse{this, "Diverse"};
- LabeledControl f_random{this, "Random"};
+ LabeledControl f_close{this, "pClose"};
+ LabeledControl f_diverse{this, "pDiverse"};
+ LabeledControl f_random{this, "pRandom"};
Knob f_close_knob{&f_close};
Knob f_diverse_knob{&f_diverse};
diff --git a/plugingui/timingframecontent.h b/plugingui/timingframecontent.h
index 282f08f..c0f82df 100644
--- a/plugingui/timingframecontent.h
+++ b/plugingui/timingframecontent.h
@@ -68,9 +68,9 @@ private:
GridLayout layout{this, 3, 1};
- LabeledControl tightness{this, "Tightness"};
- LabeledControl regain{this, "Timing Regain"};
- LabeledControl laidback{this, "Laid Back-ness"};
+ LabeledControl tightness{this, "pTightness"};
+ LabeledControl regain{this, "pTimingRegain"};
+ LabeledControl laidback{this, "pLaidback"};
Knob tightness_knob{&tightness};
Knob regain_knob{&regain};