[Stk] WvIn Problem

Perry R Cook prc@CS.Princeton.EDU
Fri, 4 Apr 2003 17:00:42 -0500 (EST)


I think it could also be a stereo issue.  If you opened a
stereo file and then ticked it using the usual mono tick()
method, you'd read only the left (or mixed??) samples, then
get repeating numbers after reaching the end.  Maybe...

PRC

On Fri, 4 Apr 2003, Gary Scavone wrote:

> Hi Yair,
>
> I think you might be running into a sample rate issue here.  After you
> open the file, you should get its sample rate and then
> set the default STK sample rate to that value ... something like:
>
>   Stk::setSampleRate( input->getFileRate() );
>
> Or you should explicitly set the read rate of the WvIn class to 1.0
> after you open the file (input->setRate( 1.0 )).  Let me know if that
> doesn't work.  The repeating happens when the end of the file is
> reached ... WvIn automatically keeps outputting the last sample value.
>
> --gary
>
> On Thu, 3 Apr 2003, Yair Ghitza wrote:
>
> >>Hi everyone,
> >>
> >>So, first off, let me apologize if this is a trivial question, or if I am
> >>clearly doing something wrong.  Here is my problem.
> >>
> >>I am using the WvIn class to read in a wav file, and using the tick()
> >>function to store MY_FLOAT values of the wav file to an array.
> >>When I do this, it seems that the second half of any wav file I read only
> >>has repeating numbers.
> >>
> >>Below, I've included a small test program that shows how I am reading in
> >>the wav file and exactly when the numbers begin to repeat.  With any wav
> >>file as input, the size of the wav file is printed to the screen, using
> >>getSize().  Then, I pring out where the numbers begin and end
> >>repeating.  In every case I've tried, the numbers repeat indefinitely from
> >>exactly half-way through the wav file to the end.
> >>
> >>My question is, what am I doing wrong here?  Is there an easier way to
> >>do this?  Any help would be greatly appreciated.  Thanks a lot,
> >>
> >>	-Yair
> >>
> >>-------------------------------------------------------------------------------
> >>
> >>#include <WvIn.h>
> >>#include <iostream.h>
> >>
> >>void main()
> >>{
> >>
> >>  WvIn * input = new WvIn;
> >>  input->openFile("../../wav/test/Beatles - Day Tripper - 0_20.wav", FALSE);
> >>  cout << "Size: " << input->getSize() << endl;
> >>
> >>  int wav_length = input->getSize();
> >>  MY_FLOAT * input_wav = new MY_FLOAT[wav_length];
> >>
> >>  bool repeating = false;
> >>  for (int i = 0; i < wav_length; i++)
> >>  {
> >>    input_wav[i] = input->tick();
> >>    if (i > 0)
> >>    {
> >>        if ((input_wav[i] == input_wav[i-1]) && !repeating)
> >>	{
> >>            repeating = true;
> >>            cout << "REPEAT BEGINS at index =\t" << i-1 << endl;
> >>        }
> >>        if ((input_wav[i] != input_wav[i-1]) && repeating)
> >>        {
> >>            repeating = false;
> >>            cout << "ENDS at index =\t\t\t" << i-1 << endl;
> >>	}
> >>     }
> >>  }
> >>
> >>}
>
> _______________________________________________
> Stk mailing list
> Stk@ccrma.stanford.edu
> http://ccrma-mail.stanford.edu/mailman/listinfo/stk
>