diff options
Diffstat (limited to 'gtk2_ardour/editor_timefx.cc')
-rw-r--r-- | gtk2_ardour/editor_timefx.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gtk2_ardour/editor_timefx.cc b/gtk2_ardour/editor_timefx.cc index 6628be7116..3dda9e87e9 100644 --- a/gtk2_ardour/editor_timefx.cc +++ b/gtk2_ardour/editor_timefx.cc @@ -72,7 +72,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); @@ -112,6 +113,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); @@ -281,6 +285,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 { @@ -290,6 +295,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 (); @@ -312,10 +318,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; @@ -455,7 +465,7 @@ Editor::do_timefx (TimeFXDialog& dialog) void* Editor::timefx_thread (void *arg) { - PBD::ThreadCreated (pthread_self(), X_("TimeFX")); + PBD::notify_gui_about_thread_creation (pthread_self(), X_("TimeFX")); TimeFXDialog* tsd = static_cast<TimeFXDialog*>(arg); |