title: ALSA : snd_pcm_readn need constant read delay
body: <p>How to achieve constant read delay from snd_pcm_readn() ? I tried (144 frames read, for 4 channel mic, 8000Hz). </p>
  
  <p>What I expect is 18 millisecond read delay for each call to snd_pcm_readn() :</p>
  
  <pre><code> 18ms, 18ms, 18ms , 18ms, 18ms, 18ms, 18ms , 18ms, 18ms, 18ms, 18ms , 18ms ....
  </code></pre>
  
  <p>. But what I observed the following pattern in the oscilloscope  :</p>
  
  <pre><code> 2ms, 2ms, 2ms ,2ms , 64ms, 2ms, 2ms, 2ms 2ms ,, 64ms, 2ms, 2ms, 2ms, 2ms, 64ms ....
  </code></pre>
  
  <p>It seems to have some buffering happens in snd_pcm_readn(), if data is buffered the api returns faster. Although this observation averages to 18ms, I need a blocking behavior of constant 18ms for each call to  snd_pcm_readn(). </p>
  
  <p>(average time of read is 18ms anyway - I don't want average behavior - it should be exact 18ms for every read)</p>
  
  <p>How to achieve this using ALSA?</p>