hi all,
It's some time ago that I read positive sounds about ASIO support in PD. But as far as I can see, there is no version with ASIO available for download.
I'm preparing for a public performance (wich will take place Friday), and the lowest possible audio latency would make my setup much better.
Could anyone *please* release an ASIO-enabled version of PD?
I'm using a hammerfall-dsp soundcard, so linux is currently not an option.
thanks a lot, Johannes
Hi Johannes,
I'm just now working on this, testing it using a Hammerfall PCI. Unfortunately I don't have it working yet... I don't know whether it's Pd or my RME driver or firmware yet. If you'd like I can send you my version privately so you can see if it blows up teh same way on your setup..
cheers Miller
On Tue, Mar 12, 2002 at 06:37:03PM +0100, Johannes Taelman wrote:
hi all,
It's some time ago that I read positive sounds about ASIO support in PD. But as far as I can see, there is no version with ASIO available for download.
I'm preparing for a public performance (wich will take place Friday), and the lowest possible audio latency would make my setup much better.
Could anyone *please* release an ASIO-enabled version of PD?
I'm using a hammerfall-dsp soundcard, so linux is currently not an option.
thanks a lot, Johannes
Sorry, forgot to say something important: you have to invoke "pd -asio" to get it to use the ASIO API. (test 13; MSW only.)
cheers Miller
Hi all,
PD-test13 crashes with the hammerfall-dsp-card. It runs with a Layla24 soundcard, but sounds very broken.
There is a typo on line 47 of pablio.c ] #define FRAMES_PER_BUFFER (126) // low latency version (12ms @ 44.1kHz) should be ] #define FRAMES_PER_BUFFER (128)
Changing this makes it sound a little less broken (?) on the Layla24. I haven't checked with this change on the hammerfall-dsp, don't know if this eliminates the crash.
The timing seems to be stable, only occasional clicks while smooth-scrolling in Internet Explorer.
I think there is something wrong with the endianess in pd-ASIO. Everything sounds very distorted. I think the lsb and msb are swapped in playback. Where should I look for this in the code?
thanks
Johannes
Johannes,
Perhaps the current output buffer is emptying before PD can fill the next buffer, this might be causing the broken sound. To fix, try increasing the buffer size...
#define FRAMES_PER_BUFFER (256)
or
#define FRAMES_PERBUFFER (512)
This parameter will be dependent on the specific sound card. (126) works for a digigram VX pocket because that's the buffer granularity. Such low latencies work with simple patches, for more computationally intensive patches (252 / 256) or (504 / 512) are necessary.
On Wed, 13 Mar 2002, Johannes Taelman wrote:
Hi all,
PD-test13 crashes with the hammerfall-dsp-card. It runs with a Layla24 soundcard, but sounds very broken.
There is a typo on line 47 of pablio.c ] #define FRAMES_PER_BUFFER (126) // low latency version (12ms @ 44.1kHz) should be ] #define FRAMES_PER_BUFFER (128)
Changing this makes it sound a little less broken (?) on the Layla24. I haven't checked with this change on the hammerfall-dsp, don't know if this eliminates the crash.
The timing seems to be stable, only occasional clicks while smooth-scrolling in Internet Explorer.
I think there is something wrong with the endianess in pd-ASIO. Everything sounds very distorted. I think the lsb and msb are swapped in playback. Where should I look for this in the code?
thanks
Johannes
On Wed, 13 Mar 2002, Michael Casey wrote:
Johannes,
Perhaps the current output buffer is emptying before PD can fill the next buffer, this might be causing the broken sound.
Yes, that'll be the problem. I recorded some output of pd digitally, and I can confirm endianess is not a problem. My previous remark about stability was based on the assumption that it was an endianess-problem.
To fix, try increasing the buffer size...
Right, that helps in some cases.
This parameter will be dependent on the specific sound card. (126) works for a digigram VX pocket because that's the buffer granularity. Such low latencies work with simple patches, for more computationally intensive patches (252 / 256) or (504 / 512) are necessary.
I guess this 126-samples buffer is specific for the vxPocket?
What I notice that on one PC the ASIO direct sound driver warns that it cannot do full-duplex, and the ASIO multimedia configuration test dialog pops up, when I start PD.
I'm afraid pd-asio is not using the native asio driver, but the directsound or mme wrapper. Where can I change this?
Do you get it to work stable on your vxPocket?
thanks, Johannes
Johannes,
Do you get it to work stable on your vxPocket?
Yes, very stable. No crashes.
I'm afraid pd-asio is not using the native asio driver, but the directsound or mme wrapper. Where can I change this?
In pa_asio.cpp change sDefault[Input/Output]Device to be the index of the native ASIO driver. PortAudio prints information on all available drivers when PD starts so just count from 0 to the driver you want PD to use. In my system, it is 2.
static int sDefaultOutputDeviceID = 0; static int sDefaultInputDeviceID = 0;
changed to:
static int sDefaultOutputDeviceID = 2; static int sDefaultInputDeviceID = 2;
The other thing to look at is pablio.c, make sure that numFrames is reasonable. I print these out so I can see what's going on at run-time:
In OpenAudioStream(...){ ...
minNumBuffers = Pa_GetMinNumBuffers( FRAMES_PER_BUFFER, sampleRate ); numFrames = minNumBuffers * FRAMES_PER_BUFFER; numFrames = RoundUpToNextPowerOf2( numFrames ); printf("\nFramesPerBuffer :%d\n", (int)FRAMES_PER_BUFFER); printf("minNumBuffers :%d\n", minNumBuffers); ... }
These are the main parameters that control ASIO buffering from PortAudio.
Good luck,
Mike
Johannes,
Perhaps the current output buffer is emptying before PD can fill the next buffer, this might be causing the broken sound.
Yes, that'll be the problem. I recorded some output of pd digitally, and I can confirm endianess is not a problem. My previous remark about stability was based on the assumption that it was an endianess-problem.
To fix, try increasing the buffer size...
Right, that helps in some cases.
This parameter will be dependent on the specific sound card. (126) works for a digigram VX pocket because that's the buffer granularity. Such low latencies work with simple patches, for more computationally intensive patches (252 / 256) or (504 / 512) are necessary.
I guess this 126-samples buffer is specific for the vxPocket?
What I notice that on one PC the ASIO direct sound driver warns that it cannot do full-duplex, and the ASIO multimedia configuration test dialog pops up, when I start PD.
thanks, Johannes
Nice! After tweaking the DefaultInputDevice and DefaultOutputDevice I get stable operation on MAudio Audiophile2496, Terratec EWS88D and the EchoAudio Layla24. All tested with a latency of 256 samples @ 44.1kHz under Win2k (in Standard PC mode, not ACPI).
Tonight I'll look at enabling multi-channel operation and try my RME Hammerfall DSP again.
thanks a lot!
Johannes
Hi Johannes, could you post your version (of the modified bins). Unfortunaltely I do not have a VC++ for Windows. Thanks Michel
At 16:27 13.03.02 +0100, you wrote:
Nice! After tweaking the DefaultInputDevice and DefaultOutputDevice I get stable operation on MAudio Audiophile2496, Terratec EWS88D and the EchoAudio Layla24. All tested with a latency of 256 samples @ 44.1kHz under Win2k (in Standard PC mode, not ACPI).
Tonight I'll look at enabling multi-channel operation and try my RME Hammerfall DSP again.
thanks a lot!
Johannes
Michael Iber
http://www.iberspace.de mailto://mail@iber-online.de
Sorry, one more thing... it seems to die in loadAsioDriver() called from pa_asio.cpp.
On Tue, Mar 12, 2002 at 06:37:03PM +0100, Johannes Taelman wrote:
hi all,
It's some time ago that I read positive sounds about ASIO support in PD. But as far as I can see, there is no version with ASIO available for download.
I'm preparing for a public performance (wich will take place Friday), and the lowest possible audio latency would make my setup much better.
Could anyone *please* release an ASIO-enabled version of PD?
I'm using a hammerfall-dsp soundcard, so linux is currently not an option.
thanks a lot, Johannes