• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
RME & latency discussion
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RME & latency discussion


  • Subject: RME & latency discussion
  • From: "Martin Kirst" <email@hidden>
  • Date: Thu, 14 Oct 2004 13:21:30 +0100

 
I heard about the latency discussion in this mailing list. Almost everything is said in Bill's detailed email 'I/O Latency (Was: Layman with a mission)'. But I don't like his comment on the RME numbers below. It is not true, so I have to put it right.
 
There are two reasons why the monitoring latency on Mac OS X is about 128 samples higher. Logic uses two buffers (2 * 64 = 128 samples) on Mac OS9 and three buffers (3 * 64 = 192 samples) on Mac OSX. It is possible to use two buffers on Mac OSX, but most software uses three. Why that? Because it makes sense. Audio processing in Logic on Mac OS9 was done at hardware interrupt level. This is unacceptable for a real operating system like Windows XP or Mac OSX. When audio processing is done in a user mode thread, usally 3 buffers of 64 samples work more stable than 2 buffers of 128 samples, though the overall latency is lower.
 
The second reason for the higher latency on Mac OSX is the safety offset. The Multiface driver sets the safety offset registry value to 32. This results in an additional latency of 64 samples (32 for input + 32 for output). Both the RME PCI cards as well as the RME Fireface also work with lower values, e. g. 24 like MOTU. So you may discuss what the perfect value for the safety offset is. But you can not set the safety to zero. This is different from ASIO on Mac OS9. ASIO works interrupt driven while coreaudio works timer driven. It may take a changing about of time to transfer the audio data from the firewire controller or PCI audio card to the computer's memory depending on how busy the PCI bus is. On Mac OS9 a hardware interrupt is generated to signal that a new buffer is ready for processing. So you don't need a safety offset. In coreaudio you do not know exactly at which time the audio data is ready. Thus you need the safety offset. On the one hand this causes a slightly higher latency on the other hand the timer driven coreaudio has many advantages over the interrupt driven model.
 
Regards
Martin Bjoernsen
RME
 
>> Parameters:
>> Buffer size (ASIO/CoreAudio) - 64 samples
>> Apps - Logic 6.3.2 (OS X), Logic 6.1.0 (OS 9)
>> Audio - RME Multiface/cardbus
>>
>> OS X (CoreAudio):
>> TotalMix monitoring latency - 62 samples
>> Logic 6.3.2 monitoring latency - 322 samples
>
>> OS 9 (ASIO):
>> TotalMix monitoring latency - 62 samples
>> Logic 6.1.0 monitoring latency - 192 samples
>
>Given these numbers (RME differences between OS 9 and OS X), I think the
>real issue is the quality and performance of this driver.
>
>I think that is also what Angus/Brian are trying to say - that the
>fundamental disparity here is NOT an architectural problem in Mac OS X, but
>rather a specific problem with the RME driver. I don't understand personally
>why the RME driver cannot get to a similar figure of 192 samples on X -
>particularly as other manufacturer's devices/drivers show that this is
>indeed entirely possible.
>
>I'd suggest following up with RME - a comment/complaint from a user goes a
>long way...
>
>Bill
 _______________________________________________
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

  • Follow-Ups:
    • Re: RME & latency discussion
      • From: Dennis Gunn <email@hidden>
  • Prev by Date: Audio String
  • Next by Date: Find out all IOProcs attached to an Audio device in a Process
  • Previous by thread: Audio String
  • Next by thread: Re: RME & latency discussion
  • Index(es):
    • Date
    • Thread