Re: Realtime latency kernel testing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday, January 07, 2011 04:18:57 pm Gabriel M. 
Beddingfield wrote:
> Before I FUD someone else's application... a perfect
> example is StretchPlayer (using RubberBand).  I can't
> get it to be RT-safe at <256... and it's marginal at
> 256.

FYI, I did some testing with RubberBand and found that it 
has a fixed minimum processing window/time of 512 frames.  
This makes it dangerous to use with <512 frames/period 
because it does too much work in one period.

For example, at 64 frames/period I measured these processing 
times for subsequent process() cycles:

Process time = 1533 usecs
Process time = 1851 usecs
Process time = 1787 usecs
Process time = 26 usecs
Process time = 18 usecs
Process time = 20 usecs
Process time = 22 usecs
Process time = 19 usecs
Process time = 18 usecs
Process time = 21 usecs
Process time = 22 usecs
Process time = 20 usecs
Process time = 17 usecs
Process time = 18 usecs
Process time = 21 usecs
Process time = 18 usecs
Process time = 21 usecs
Process time = 26 usecs
Process time = 22 usecs
Process time = 27 usecs
Process time = 20 usecs
Process time = 30 usecs
Process time = 27 usecs
Process time = 66 usecs
Process time = 1893 usecs
Process time = 18 usecs
Process time = 29 usecs
Process time = 24 usecs
Process time = 20 usecs
Process time = 18 usecs
Process time = 22 usecs
Process time = 18 usecs
Process time = 1518 usecs
Process time = 20 usecs
Process time = 21 usecs
Process time = 23 usecs
Process time = 21 usecs
Process time = 17 usecs
Process time = 22 usecs
Process time = 21 usecs
Process time = 1654 usecs

I.e. it does all its calculations every 8 periods 
(512/64)... instead of doing a little bit in each period.

This behavior makes it dangerous to use RubberBand at less 
than 512 frames/period because it eats up your processor 
headroom.  However, if you have a really fast processor you 
can usually get away with it.

It looks like it's possible to make the window smaller by 
hacking RubberBand... but I can't figure out how to do it 
through the public API.

-gabriel
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
http://lists.linuxaudio.org/listinfo/linux-audio-user


[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux