I think you'd always end up with +/- a couple samples unless $size and $new_size divide evenly. But I don't know much about the guts of the sample speeding/slowing algorithm either. Jari Suominen wrote: > Thanks Dan! > > I will give it a try. I actually really need the length of the resulting > audio file to be exactly what desired but as I'm not doing that hazard > shifts this might work. And perhaps running same file through the script > more than once would give the result I'm aiming at. > > More theoretical question is, are speed shifting algoritms actually > using the ratio given to them or converting them to some other value > before doing the conversion. And is the sample accurate 'speeding' even > possible in reality, or is it always +/- couple samples. I tried to look > at the SoX source but it was a bit too C:ish for me to give me an answer > straight away. > > ......j > > > > Dan Richert kirjoitti: > >> SoX can do the job with some help. Here's a little Perl script to >> figure out the speed scaling ratio based on the desired new length in >> samples: >> >> #!/usr/bin/perl >> >> if(@ARGV != 3){ die "Usage: resize-audio.pl <in_file> <new_size> >> <out_file>\n"; } >> ($in_file,$new_size,$out_file) = @ARGV; >> $size = `sox $in_file -n stat 2>&1 |grep ^Samples |awk '{print \$3}'`; >> $ratio = $size / $new_size; >> print "$ratio\n"; >> `sox $in_file $out_file speed $ratio`; >> >> >> >> In the couple tests I ran, it doesn't get to the *exact* new size >> specified in samples, but pretty close -- I converted a file 12486 >> samples long to 3000 samples and ended up with a file with 3002 samples. >> >> >> >> Jari Suominen wrote: >> >>> Tiago Tavares kirjoitti: >>> >>> >>>> Can SoX do the job? >>>> >>>> >>> Nope. Speed shift takes in prosent or cents. >>> >>> ....j >>> >>> >>> >>>> On Thu, Sep 18, 2008 at 1:51 PM, Jari Suominen <jari.suominen@xxxxxxxxxxx>wrote: >>>> >>>> >>>> >>>>> Hello, >>>>> >>>>> I'm trying to search a program (with no success) that could used for >>>>> speeding up an audio file to a certain length. I mean, I would have a >>>>> audio file that has 40000 samples, and I would need it to be 40010. And >>>>> the pitch of the file can/should change. All speed change stuff that I >>>>> have found will take semitones/cents/procents as a input parameter. I >>>>> would wan't to only input the exact length (in samples) that I need. >>>>> >>>>> My purpose is basically make bunch of files that are loopable and have >>>>> equal length with each other. >>>>> >>>>> Does this thing exist or do I have to make it myself? >>>>> >>>>> Thanks! >>>>> >>>>> ..j >>>>> _______________________________________________ >>>>> Linux-audio-user mailing list >>>>> Linux-audio-user@xxxxxxxxxxxxxxxxxxxx >>>>> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user >>>>> >>>>> >>>>> >>>> >>>> >>> _______________________________________________ >>> Linux-audio-user mailing list >>> Linux-audio-user@xxxxxxxxxxxxxxxxxxxx >>> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user >>> >>> >> _______________________________________________ >> Linux-audio-user mailing list >> Linux-audio-user@xxxxxxxxxxxxxxxxxxxx >> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user >> >> > > _______________________________________________ > Linux-audio-user mailing list > Linux-audio-user@xxxxxxxxxxxxxxxxxxxx > http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user > _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user