X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fst_stretch.cc;h=70d7ca1fc799f67b14af7afaefe73b61597a65f6;hb=dec10f2f3c6fffe27e72243d9bf36713d8f084f9;hp=d8009c1218113929651bbab065c144cd6830c1f6;hpb=ddd162bdb050558f93222800ebd57d737f2c9e0d;p=ardour.git diff --git a/libs/ardour/st_stretch.cc b/libs/ardour/st_stretch.cc index d8009c1218..70d7ca1fc7 100644 --- a/libs/ardour/st_stretch.cc +++ b/libs/ardour/st_stretch.cc @@ -28,7 +28,7 @@ #include "ardour/session.h" #include "ardour/audioregion.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace std; using namespace ARDOUR; @@ -47,7 +47,7 @@ STStretch::STStretch (Session& s, TimeFXRequest& req) percentage = -tsr.time_fraction; - st.setSampleRate (s.frame_rate()); + st.setSampleRate (s.sample_rate()); st.setChannels (1); st.setTempoChange (percentage); st.setPitchSemiTones (0); @@ -66,10 +66,10 @@ int STStretch::run (boost::shared_ptr a_region, Progress* progress) { SourceList nsrcs; - framecnt_t total_frames; - framecnt_t done; + samplecnt_t total_samples; + samplecnt_t done; int ret = -1; - const framecnt_t bufsize = 16384; + const samplecnt_t bufsize = 16384; gain_t *gain_buffer = 0; Sample *buffer = 0; char suffix[32]; @@ -81,7 +81,7 @@ STStretch::run (boost::shared_ptr a_region, Progress* progress) boost::shared_ptr region = boost::dynamic_pointer_cast(a_region); - total_frames = region->length() * region->n_channels(); + total_samples = region->length() * region->n_channels(); done = 0; /* the name doesn't need to be super-precise, but allow for 2 fractional @@ -107,13 +107,13 @@ STStretch::run (boost::shared_ptr a_region, Progress* progress) boost::shared_ptr asrc = boost::dynamic_pointer_cast(nsrcs[i]); - framepos_t pos = 0; - framecnt_t this_read = 0; + samplepos_t pos = 0; + samplecnt_t this_read = 0; st.clear(); while (!tsr.cancel && pos < region->length()) { - framecnt_t this_time; + samplecnt_t this_time; this_time = min (bufsize, region->length() - pos); @@ -130,7 +130,7 @@ STStretch::run (boost::shared_ptr a_region, Progress* progress) pos += this_read; done += this_read; - progress->set_progress ((float) done / total_frames); + progress->set_progress ((float) done / total_samples); st.putSamples (buffer, this_read); @@ -176,18 +176,18 @@ STStretch::run (boost::shared_ptr a_region, Progress* progress) /* now reset ancestral data for each new region */ for (vector >::iterator x = results.begin(); x != results.end(); ++x) { - framepos_t astart = (*x)->ancestral_start(); - framepos_t alength = (*x)->ancestral_length(); - framepos_t start; - framecnt_t length; + samplepos_t astart = (*x)->ancestral_start(); + samplepos_t alength = (*x)->ancestral_length(); + samplepos_t start; + samplecnt_t length; // note: tsr.fraction is a percentage of original length. 100 = no change, // 50 is half as long, 200 is twice as long, etc. float stretch = (*x)->stretch() * (tsr.time_fraction/100.0); - start = (framepos_t) floor (astart + ((astart - (*x)->start()) / stretch)); - length = (framecnt_t) floor (alength / stretch); + start = (samplepos_t) floor (astart + ((astart - (*x)->start()) / stretch)); + length = (samplecnt_t) floor (alength / stretch); (*x)->set_ancestral_data (start, length, stretch, (*x)->shift()); } @@ -203,7 +203,5 @@ STStretch::run (boost::shared_ptr a_region, Progress* progress) } } - tsr.done = true; - return ret; }