Audio samples per second?

user488792 picture user488792 · Feb 16, 2011 · Viewed 24.9k times · Source

I am wondering on the relationship between a block of samples and its time equivalent. Given my rough idea so far:

Number of samples played per second = total filesize / duration.

So say, I have a 1.02MB file and a duration of 12 sec (avg), I will have about 89,300 samples played per second. Is this right?

Is there other ways on how to compute this? For example, how can I know how much a byte[1024] array is equivalent to in time?

Answer

BrokenGlass picture BrokenGlass · Feb 16, 2011

Generally speaking for PCM samples you can divide the total length (in bytes) by the duration (in seconds) to get the number of bytes per second (for WAV files there will be some inaccuracy to account for the header). How these translate into samples depends on

  1. the sample rate
  2. bits used per sample, i.e. commonly used is 16 bits = 2 bytes
  3. number of channels, i.e. for stereo this is 2

If you know 2) and 3) you can determine 1)

In your example 89300 bytes/second, assuming stereo and 16 bits per sample would be 89300 / 4 ~= 22Khz sample rate