Re: Using MidiMan Delta 10x10 drivers
Re: Using MidiMan Delta 10x10 drivers
- Subject: Re: Using MidiMan Delta 10x10 drivers
- From: Jeff Moore <email@hidden>
- Date: Mon, 12 Nov 2001 11:18:12 -0800
on 11/12/01 9:03 AM, Stephane Letz <email@hidden> wrote:
>
- the MidiMan Delta 10x10 drivers come with a configuration utility "M
>
audio delat control panel" that allow to change the DMA buffer size.
I would imagine that this controls the hardware ring buffer size in the
kernel. If so, you _really_ don't want to use small number for this.
This value effectively controls the number of hardware interrupts per second
for the audio hardware. On other systems, the lower the number the better
the latency.
On Mac OS X, this is not the case. This number has _no_ effect on latency.
In fact, the lower this number the _worse_ your performance will be because
the number of interrupts per second increases which makes life much more
difficult for the rest of the system and increases the load on the system
dramatically for no gain in system performance.
>
It is a driver problem or an application problem? Are applications supposed
>
to adapt to the frame size range declared by the driver? Or does the driver
>
need to declare a large frame size range? (like the "built in audio
>
controler" that return 14 - 8192)
The buffer frame size range is synthesized by the HAL based on the smallest
schedulable time quantum (roughly 300 microseconds) to 3/8ths the size of
the hardware ring buffer. By adjusting the ring buffer size so small, you
have effectively made it impossible for other clients to meet the deadlines
you've imposed on them.
Technically, I'd rate this an application problem. They need to make sure
they can cope with the buffer size the hardware allows them. Clients of the
Sound Manager (like QuickTime) do this by not playing any sound since they
can't keep up with those kind of demands. Probably most clients won't be
able to keep up since the scheduling demands would be so tight that the
scheduler wouldn't be able to meet them in the first place.
Note that kAudioDevicePropertyBufferSize and friends are per-process things.
They have no effect on the driver. They control the period of your IOProcs
get called by the HAL and the size of the IO transaction therein.
--
Jeff Moore
Core Audio
Apple