[PD] PD with jackd non-power of two buffer size

guenter geiger geiger at xdv.org
Sun Jan 18 22:53:53 CET 2004


On Sun, 18 Jan 2004, Daniel Hawthorn wrote:
> Hi list,
>
> I've got jackd up and running (with some modifications) using a frame
> size of 441, sample rate of 44100, and 3 periods/buffer on a M-Audio
> Quattro.  This works fine for (for instance) fluidsynth, but PD gives me
> repeated "Partial read" errors.  Does anyone know how to correct this so
> that I can run PD using jack on my Quattro under reasonable latencies?
> Any help would be appreciated.

Well, seems this one is for me then. You have to take a look at the
"process" function in s_audio_jack.c

First you might try to remove the line with "Partial read", if this
doesn't help, try to understand how the two threads (pd and the process
function) are synchronised. This happens in jack_send_dacs at

       if (jack_filled >= jack_out_max)
          pthread_cond_wait(&jack_sem,&jack_mutex);

and process:
 pthread_cond_broadcast(&jack_sem);

 Its possible that you have to change the ringbuffer
implementation slightly and check for some conditions that can occur
with non power of 2  framesizes. The jack driver for pd is written under
the assumption that framesize is a multiple of 64.

Good luck, and don't forget to send us the changes you had to make

Guenter


>
> -Daniel
>
>
> _______________________________________________
> PD-list mailing list
> PD-list at iem.at
> http://iem.at/cgi-bin/mailman/listinfo/pd-list
>





More information about the Pd-list mailing list