Le 15 juin 09 à 02:39, Tim a écrit :
> You know, other than that, I must say I am soooo happy with
> Jack2. Initial tests are remarkable - incredible !
> For years I used Jack 1 and put up with shutdowns and sudden
> 'buffer misaligns' (for lack of a better term) which caused
> distortion.
> (Should'a seen me debugging Muse, looking at the process buffer
> pointers being passed by Jack to Muse, saying to myself "whaaa?"
> They seemed wrong, but what could I do? Other apps did it too...)
> It'd be funny if there was actually some kind of fix for it
> I didn't know about...
>
> Well, two nights with Jack2, hours of playing Muse 'Live' (no play/
> rec,
> until FF/REW is fixed) with MIDI keyboard and audio on an
> old Mandriva 2007.1 and no problems!
> I sure hope it stays that way...
>
> *** Thanks you guys! ***
>
> Tim.
>
> O
If I'm looking in the muse code (muse/driver/jack.cpp) as the right
place, I can see that :
static void jack_thread_init (void* /*data*/)
{
doSetuid();
if (jackAudio->isRealtime()) {
struct sched_param rt_param;
int rv;
memset(&rt_param, 0, sizeof(sched_param));
int type;
rv = pthread_getschedparam(pthread_self(), &type,
&rt_param);
if (rv != 0)
perror("get scheduler parameter");
if (type != SCHED_FIFO) {
fprintf(stderr, "JACK thread not running
SCHED_FIFO, try to set...\n");
memset(&rt_param, 0, sizeof(sched_param));
rt_param.sched_priority = 1;
rv = pthread_setschedparam(pthread_self(),
SCHED_FIFO, &rt_param);
if (rv != 0)
perror("set realtime scheduler");
memset(&rt_param, 0, sizeof(sched_param));
rv = pthread_getschedparam(pthread_self(), &type,
&rt_param);
if (rv != 0)
perror("get scheduler parameter");
if (type != SCHED_FIFO)
fprintf(stderr, "JACK still not running
FIFO !?!\n"
"======reliable RT operation not possible!!
======\n");
else
fprintf(stderr, "JACK thread succesfully set
to SCHED_FIFO\n");
}
}
#ifdef VST_SUPPORT
if (loadVST)
fst_adopt_thread();
#endif
undoSetuid();
}
So basically the Muse thread init callback starts to play with the RT
thread parameters.... This is to avoided at any price! NO APPLICATION
IS EVER ALLOWED to play with those stuff. How do you think a system
like JACK that is supposed to coordinate the proper functioning of a
set of RT based audio application can deal with applications that
start to do this kind of cray stuff on their own side?
So please remove this code then we can see if the problem you
mentioned still persists.
Stephane
_______________________________________________
Jack-Devel mailing list
Jack-Devel@...
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org