Re: The EXS and the VM ; question from a beta tester user
Re: The EXS and the VM ; question from a beta tester user
- Subject: Re: The EXS and the VM ; question from a beta tester user
- From: philippe wicker <email@hidden>
- Date: Fri, 17 Mar 2006 14:42:20 +0100
On Mar 17, 2006, at 11:02 AM, cyril blanc wrote:
Hello
I am trying to improve my knowledge about CoreAudio because I am
beta testing a few audio plug-ins software
Some of those software are so slow that the developer need to be
help so it usable on MAC OS X. Those company are coming from the PC
world and are experimenting the AU.
I have a 2 questions for you :
1) Does anybody know if the EXS in Logic have it's own Virtual
Memory handler or does it uses MAC OS X VM handler ? i.e. can a
sampler player use the VM of OSX or does it has do develop it's own
VM handler
The Mac OS X vm is a low level OS component that cannot be switched
on or off. It handles page swaps from memory to disk and the other
way round. Pages have a fixed size (4KByte IIRC). There's not many
things that a programmer can do to modify the vm behavior. There
exists an API that allows the programmer to lock some memory pages in
the physical memory.
Above this there are APIs allowing to manage how files are accessed
from the memory point of view. You can memory-map a file. In that
case, you access file data just as plain memory data and pages are
loaded when needed (first read or write) and swapped under the
control of the vm depending on the process memory usage (that is with
no direct control by the plugin).
To gain some control on disk vs memory usage, sample player usually
offer a "disk streaming" feature. What I did myself is an ad-hoc
cache which stores pages to be used in the near future. Disk read
commands are issued only when a requested page are not yet cached.
"vm" swapping issues are solved by touching pages some time before
they are to be used.
2) When two software are using together the same audio out at the
same time, who does the mixing ? the coreaudio ?
CoreAudio Devices drivers are multi-clients. Each client may choose
to work with its own buffer size. When several clients send audio to
a device, the mixing (and the clipping) is made by the driver.
is the limit the power of the Mac used ?
You mean "is this the performance bottleneck"? I don't think so. The
mixing/clipping is not a CPU killer as far as I know.
Each time an output buffer is rendered by a client app, there's a
context switch from the kernel to the user app and back to the
kernel. So the smaller the buffer, the bigger the overhead. However,
I'd tend to think from my readings of postings to the Logic users
list that the CPU is much more eaten by plugins DSP processing than
by the buffer size on its own.
Many thanks in advance for your time
Best
Cyril
-----------------------------------------------------------
My Mail is filtered by Personal Antispam.
Join the Independent Quantum Leap Symphony orchestra forum
(Q.L.S.O.) for Mac http://groups.yahoo.com/group/qlso
A6 Andromeda forum : http://groups.yahoo.com/group/A6_andromeda
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden