Re: [LAU] A year of Linux Audio revisited - would like to know your

From: Kjetil S. Matheussen <k.s.matheussen@email-addr-hidden>
Date: Fri Dec 14 2007 - 19:39:57 EET

On Fri, 14 Dec 2007, Stéphane Letz wrote:

>>
>> Paul Davis:
>> >
>> > > Unless jack is
>> > > fixed (or extended) so that it can recover from errors (including
>> > > letting its latency be adjusted on the fly)
>>
>> <...>
>> >
>> > JACK has a number of problems, some of them significant. The things
>> > you've spoken about are not among them.
>> >
>>
>> I'm not sure what other problems you are thinking of? I completely
>> agree this is the main problem with jack. Its not unusual that a
>> program connecting to jack can make jackd crash. And it is
>> even possible to prevent this! (I know it tries to prevent
>> it though, but it does fail very often too).
>
> Is it something occurring in jackd only? or also jackdmp?
>

I'm not sure. I haven't used jackdmp that much. But here is a
way to check.

1. Start jackdmp -R
2. Start xmms
3. Play something in xmms
4. Start jackrack
5. Load this ladspa plugin:
    http://www.notam02.no/arkiv/src/ladspasleep.tar
    [1]
6. Drag the "usecs to sleep" slider quite high.
7. Enable the plugin.
8. Drag the "usecs to sleep" slider back and forth a lot.

This is a quite sure way to make jackd crash.

>>
>>
>> The second problem I have with jack is that its not possible
>> to pause or disconnect temporarily from a backend, which
>> means that whenever you want use a program which use a
>> soundsystem which does not support jack (in my case, usually
>> flash, vmware or java), you first have to quit all
>> programs currently using jack, then stopping jack, then start
>> the non-jack compatible program. And after being finished
>> with the non-jack compatible program, start jack and all
>> its clients again. There was even posted a fix to this bug
>> on the jack list a few years ago, but of course it was not adopted.
>
> Do you remember what was the idea behind the fix? Was it a new API so
> suspend/resume the backend?
>

I think it was only for the alsa backend. It was recently
reposted on the list too.

[1] I had to edit it a bit to make it compile now:

ttleush ladspasleep # diff -u sleep.c~ sleep.c
--- sleep.c~ 2003-06-29 15:10:31.000000000 +0200
+++ sleep.c 2007-12-14 18:33:21.000000000 +0100
@@ -99,6 +99,7 @@
  void _init() {
      LADSPA_Descriptor *vd;
      LADSPA_PortDescriptor *portdescriptors;
+ LADSPA_PortRangeHint *portRangeHints;
      char **portnames;

      fprintf(stderr,"Initing sleep");
@@ -125,9 +126,11 @@
      portdescriptors[1]=(const LADSPA_PortDescriptor)(LADSPA_PORT_OUTPUT|LADSPA_PORT_AUDIO);
      portdescriptors[2]=(const LADSPA_PortDescriptor)(LADSPA_PORT_INPUT|LADSPA_PORT_CONTROL);

- vd->PortRangeHints[2].HintDescriptor=LADSPA_HINT_BOUNDED_BELOW| LADSPA_HINT_BOUNDED_ABOVE;
- vd->PortRangeHints[2].LowerBound=0.0f;
- vd->PortRangeHints[2].UpperBound=1000000.0f;
+ portRangeHints=(LADSPA_PortRangeHint *)(vd->PortRangeHints);
+
+ portRangeHints[2].HintDescriptor=(LADSPA_HINT_BOUNDED_BELOW| LADSPA_HINT_BOUNDED_ABOVE);
+ portRangeHints[2].LowerBound=0.0f;
+ portRangeHints[2].UpperBound=1000000.0f;

      portnames[0]=strdup("Audio in");
      portnames[1]=strdup("Audio out");

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
Received on Fri Dec 14 20:15:06 2007

This archive was generated by hypermail 2.1.8 : Fri Dec 14 2007 - 20:15:07 EET