I see. Well, it sounds like you're on the right path to me. Could the compression possibly be a factor? I'm doubtful that QuickTime (and/or REALbasic) would be playing the audio at some strange sample rate like you mentioned earlier. And, since you are doing all the heavy lifting with declares, it sounds like all you're really getting from RB is a handle to a movie. This makes me think that this is a QuickTime question. (unless you have a mistake in your header length calculations or something) Might still be worth a try to ask on the QuickTime lists. I've found that if you provide sample code (even pseudo code), you're more likely to get a response on that list.

Best of luck,
Erick

On Mar 31, 2006, at 10:18 PM, Jeffrey Mattox wrote:

I'm not getting the length of the file, but rather the number of samples in the audio. After calling the (modified) GetWaveformInfo () function in Addey's routine (which loads the samples into a MemoryBlock), I do this:

   Dim samples as Integer
samples = (SoundMemoryBlock.Size - 84 ) / 2 // number of 16-bit samples

I've modified GetWaveformInfo() to return 16-bit samples instead of 8-bit samples. For 8-bit samples, I believe it's this:

   samples = SoundMemoryBlock.Size - 42 // number of 8-bit samples

(but it might be minus 84 to skip the header, I forget.)

I also sanity check my result by taking the duration of the track and multiply by the sample rate, as in:

   Dim theSongDuration as Integer
   Dim theMovieTimeScale as Integer
   theSongDuration = GetMovieDuration(me.Movie.Handle) ' scaled
   theMovieTimeScale = GetMovieTimeScale(me.movie.Handle)
   g_theSongDuration_sec = theSongDuration / theMovieTimeScale

   Dim samples as Integer
   samples = theSongDuration * SoundSampleRate
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to