various fixes to get time stretching basically working again
Time domains are not well respected at present, so more work is needed here
This commit is contained in:
parent
76e5aaea44
commit
fed449d54d
@ -2369,7 +2369,7 @@ private:
|
|||||||
void set_show_touched_automation (bool);
|
void set_show_touched_automation (bool);
|
||||||
bool _show_touched_automation;
|
bool _show_touched_automation;
|
||||||
|
|
||||||
int time_fx (ARDOUR::RegionList&, float val, bool pitching);
|
int time_fx (ARDOUR::RegionList&, Temporal::ratio_t ratio, bool pitching);
|
||||||
void note_edit_done (int, EditNoteDialog*);
|
void note_edit_done (int, EditNoteDialog*);
|
||||||
void toggle_sound_midi_notes ();
|
void toggle_sound_midi_notes ();
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ Editor::pitch_shift (RegionSelection& regions, float fraction)
|
|||||||
* @param pitching true to pitch shift, false to time stretch.
|
* @param pitching true to pitch shift, false to time stretch.
|
||||||
* @return -1 in case of error, otherwise number of regions processed */
|
* @return -1 in case of error, otherwise number of regions processed */
|
||||||
int
|
int
|
||||||
Editor::time_fx (RegionList& regions, float val, bool pitching)
|
Editor::time_fx (RegionList& regions, Temporal::ratio_t ratio, bool pitching)
|
||||||
{
|
{
|
||||||
delete current_timefx;
|
delete current_timefx;
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ Editor::time_fx (RegionList& regions, float val, bool pitching)
|
|||||||
}
|
}
|
||||||
|
|
||||||
const timecnt_t oldlen = regions.front()->length();
|
const timecnt_t oldlen = regions.front()->length();
|
||||||
const timecnt_t newlen = regions.front()->length() * val;
|
const timecnt_t newlen = regions.front()->length() * ratio;
|
||||||
const timepos_t pos = regions.front()->position ();
|
const timepos_t pos = regions.front()->position ();
|
||||||
|
|
||||||
current_timefx = new TimeFXDialog (*this, pitching, oldlen, newlen, pos);
|
current_timefx = new TimeFXDialog (*this, pitching, oldlen, newlen, pos);
|
||||||
|
@ -147,8 +147,7 @@ TimeFXDialog::TimeFXDialog (Editor& e, bool pitch, timecnt_t const & oldlen, tim
|
|||||||
duration_clock->set_session (e.session());
|
duration_clock->set_session (e.session());
|
||||||
duration_clock->set (timepos_t (new_length), true);
|
duration_clock->set (timepos_t (new_length), true);
|
||||||
duration_clock->set_mode (AudioClock::BBT);
|
duration_clock->set_mode (AudioClock::BBT);
|
||||||
#warning NUTEMPO FIXME figure out what we are doing here
|
duration_clock->set_bbt_reference (position);
|
||||||
// duration_clock->set_bbt_reference (position);
|
|
||||||
|
|
||||||
Gtk::Alignment* clock_align = manage (new Gtk::Alignment);
|
Gtk::Alignment* clock_align = manage (new Gtk::Alignment);
|
||||||
clock_align->add (*duration_clock);
|
clock_align->add (*duration_clock);
|
||||||
@ -260,14 +259,14 @@ TimeFXDialog::delete_in_progress (GdkEventAny*)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
float
|
Temporal::ratio_t
|
||||||
TimeFXDialog::get_time_fraction () const
|
TimeFXDialog::get_time_fraction () const
|
||||||
{
|
{
|
||||||
if (pitching) {
|
if (pitching) {
|
||||||
return 1.0;
|
return Temporal::ratio_t (1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return duration_adjustment.get_value() / 100.0;
|
return Temporal::ratio_t (duration_adjustment.get_value(), 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
float
|
float
|
||||||
|
@ -71,7 +71,7 @@ public:
|
|||||||
void cancel_in_progress ();
|
void cancel_in_progress ();
|
||||||
gint delete_in_progress (GdkEventAny*);
|
gint delete_in_progress (GdkEventAny*);
|
||||||
|
|
||||||
float get_time_fraction () const;
|
Temporal::ratio_t get_time_fraction () const;
|
||||||
float get_pitch_fraction () const;
|
float get_pitch_fraction () const;
|
||||||
|
|
||||||
void start_updates ();
|
void start_updates ();
|
||||||
|
Loading…
Reference in New Issue
Block a user