[PD-dev] Alternative to Portaudio under Windows

PSPunch shima at pspunch.com
Tue Sep 16 17:03:12 CEST 2008


Hi Thomas and Miller,


For some reason I thought that the latency was due to Portaudio.
So in short, is the current consensus that the cause is somewhat 
"uncertain"?


--
David Shimamoto


>> Well, I've seen latencies down to 6 msec in linux using ringbuffers.  
>> They
>> theoretically only add 64 samples of latency.  So I don't think that 
>> in itself
>> is the problem.
>>
>> I think the problem in Windows is the "audio server" that non-ASIO 
>> audio I/O
>> apparently always goes through.  Also, I think it's not feasible to 
>> use audio
>> callbacks in Windows since Pd can make system calls (e.g., allocate 
>> memory)
>> during the callback -- linux and Mac allow this but Windows doc says not
>> to do that.  (This shold be a leftover warning from older times but 
>> I've been
>> heeding it anyway.)
>>
> 
> Well, trying the forbidden way to use callbacks (and portaudio/ASIO or 
> WDMKS, as implemented in the devel_0_39 branch) actually yield ADDA 
> latencies below 5s for e.g. RME hardware, so the question is where the 
> additional approx. 20ms of latency for the ringbuffer-based ASIO PD 
> implementation come from. I've tried around a lot with the ringbuffer 
> implementation, but it seems the "theoretical limit" of the ringbuffer 
> implementation is just not approachable in Windows, for whatever reason. 
> Besides that, I think we can just forget MMIO or DirectX for serious 
> real-time audio.
> Also, this thread brings up the question how other programs do it (like 
> Max/MSP or audio editing apps) - do they do something forbidden? Huh?!
> gr~~~
> 





More information about the Pd-dev mailing list