[linux-audio-dev] mux concept paper

Paul Davis paul at linuxaudiosystems.com
Thu Feb 17 13:40:01 UTC 2005


>I know it was a bit provocative to write that. Also, jack is under 
>development and I should probably wait for an official release before 

this is not really true. there have been no API changes to the core of
JACK for at least a year. 

>complaining. But my experiences with jack are negative. First time I 
>started looking at it I had huge expectations after all that I had read. 
>   First problems, after a couple of second of running without any 
>actual processing going on, strange noise artefacts kind of getting 
>worse. I had a look at source code and realise that it bases its time 
>calculation on cpu MHz in /proc/cpuinfo. I dont know about your machine, 
>but on my machine(s) a) this is a float and b) it's slightly different 
>every time I boot the machine.

this has nothing to do with your noise. JACK uses CPU Hz to provide a
UST value. i am puzzled by the fact you are the 2nd person to think
that JACK's timing is somehow based on system timers and so
forth. JACK (in regular mode, using one of the normal backends) is
driven 100% by the interrupt from your audio interface. whether or not
the CPU Hz value is correct has (effectively) zero impact on audio
generation and timing.

>The other thing I dont understand about jack is the whole graph 
>business. E.g. I look at the artsd in kde and plugin an effect and this 
>is seamless, no stopping of audio. In jack, it says "recalculating 
>graph" and get a cup of coffee :)

good grief. that's a ludicrous comment. it takes fractions of a
millisecond to recompute the graph.

and yes, artsd doesn't break the audio chain because it isn't built
around low latency - stefan has acknowledged that. there is a new
implementation of jack for osx that also doesn't break audio
processing during graph reorders - it uses lock free techniques. but
guess what - it has one process-cycle worth of extra latency as a
result. 

so, as they say in the UK: you pays your money and you makes your
choice. you can have absolute minimal latency, but that requires
locking the graph against use when it is reordered.

>Ok, enough ranting... sorry didnt want to discuss jack really.

well, you can't go around making ill-informed comments about someone
else's software and not expect a discussion. 

that being said, JACK is *not* appropriate as a replacement for the
engine in something like Buzz. JACK does not scale well much beyond,
well, it depends on your machine, but in general terms, on the order
of 5-10 clients. This isn't a defect - its a reflection of what it
designed to do. 

but IMHO, you should be looking at Beast or gAlan or ALSA Modular
Synth, or SSM or ... not starting from scratch.

--p



More information about the Linux-audio-dev mailing list