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@iem.at http://iem.at/cgi-bin/mailman/listinfo/pd-list