diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-11-22 07:42:02 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-11-22 07:42:02 +0000 |
commit | d7903af9c9e981555fd890cfd422b8d66c64408c (patch) | |
tree | 1421b32aaafead548a0bc233c0786629f2efaea6 | |
parent | 13adb2d599ad8ce2544d6a10c5609d23a00d7330 (diff) |
colin fletcher's preserve-formants patch for rubberband operations
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4232 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/editor.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/editor_timefx.cc | 12 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index ec11b7cbdd..a7a275ff48 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -2003,6 +2003,7 @@ public: Gtk::ComboBoxText stretch_opts_selector; Gtk::Label stretch_opts_label; Gtk::ToggleButton precise_button; + Gtk::ToggleButton preserve_formants_button; Gtk::HBox opts_box; Gtk::Button* cancel_button; diff --git a/gtk2_ardour/editor_timefx.cc b/gtk2_ardour/editor_timefx.cc index c1e1403ca2..517102a173 100644 --- a/gtk2_ardour/editor_timefx.cc +++ b/gtk2_ardour/editor_timefx.cc @@ -71,7 +71,8 @@ Editor::TimeFXDialog::TimeFXDialog (Editor& e, bool pitch) quick_button (_("Quick but Ugly")), antialias_button (_("Skip Anti-aliasing")), stretch_opts_label (_("Contents:")), - precise_button (_("Strict Linear")) + precise_button (_("Strict Linear")), + preserve_formants_button(_("Preserve Formants")) { set_modal (true); set_position (Gtk::WIN_POS_MOUSE); @@ -111,6 +112,9 @@ Editor::TimeFXDialog::TimeFXDialog (Editor& e, bool pitch) pitch_cent_spinner.set_digits (1); + upper_button_box.pack_start (preserve_formants_button, false, false); + + add_button (_("Shift"), Gtk::RESPONSE_ACCEPT); get_vbox()->pack_start (upper_button_box, false, false); @@ -253,6 +257,7 @@ Editor::time_fx (RegionSelection& regions, float val, bool pitching) bool peaklock = true; bool longwin = false; bool shortwin = false; + bool preserve_formants = false; string txt; enum { @@ -262,6 +267,7 @@ Editor::time_fx (RegionSelection& regions, float val, bool pitching) } transients = Transients; precise = current_timefx->precise_button.get_active(); + preserve_formants = current_timefx->preserve_formants_button.get_active(); txt = current_timefx->stretch_opts_selector.get_active_text (); @@ -284,10 +290,14 @@ Editor::time_fx (RegionSelection& regions, float val, bool pitching) if (realtime) options |= RubberBandStretcher::OptionProcessRealTime; if (precise) options |= RubberBandStretcher::OptionStretchPrecise; + if (preserve_formants) options |= RubberBandStretcher::OptionFormantPreserved; + if (!peaklock) options |= RubberBandStretcher::OptionPhaseIndependent; if (longwin) options |= RubberBandStretcher::OptionWindowLong; if (shortwin) options |= RubberBandStretcher::OptionWindowShort; + + switch (transients) { case NoTransients: options |= RubberBandStretcher::OptionTransientsSmooth; |