iOS 11 roundtrip latency not short enough (around 20ms)

Hello everyone!
I have some general questions regarding roundtrip audio latency under iOS with a iPad.

I had informed me quite a bit in advance about this topic.
(Apogee support, various forums, also here: > http://superpowered.com/latency)

And the general consensus was that one can run audio apps in general EASILY! with a (very,...maybe not insanly) low roundtrip latency of bellow 10ms. between 6/7ms to 12ms. Most said you can run it around or bellow 10ms. It was sait to be "ready for primetime", it is possible to really use this stuff in a live setting...etc... there is no perceivable latency... maybe even lower than some/ many PC based systems.

Now I bought a INSANELY! powerful iPad Pro 10.5 which, by specs outperforms my MacBook Pro (Early 2011) by a large margin(?!). I primary bought this device to use for live playing and tracking Guitar, using a iPad Pro live as well as for practice (timing) instead of a cheap, but still more expensive and inferior Multi FX and a DAW on my MacBook Pro.

HOWEVER: > it seems to be impossible to use the iPad and Bias FX, or Garageband or both via inter App Audio with a reasonably low latency!

I was quite surprised by that... is this New???
I am using a iPad Pro 10.5 with iOS 11 + Apogee Jam 96k + Bias FX, Garageband (all latest version as of 30. Nov 2017) headphones output.

So my questions are:

is apple to blame here? > was it better with older devices and iOS 9 / 10??
Is this a problem with iOS 11?
Is this a problem with the newer (2017) iPad Pro models?
Will this most likely improve (= shorter latency) (again?) with further updates?

I did some extensive testing*....
Here are my results:

In most cases I will have a roundtrip latency of around 20ms... maybe even 25ms...
(Garageband has a (fixed?) buffer of 256 "frames", Bias FX probably uses a buffer of 128 "frames")
If I am lucky I might get a bit lower than 20ms > 17ms with Bias FX only.

I also tested roundtrip latency with a app called "fiddlicator" which is basically an impulse response loader, which lets you choose various buffer frame sizes. ( I guess this is not the same as buffer SAMPLE size?)

@ 64 frames buffer = 15ms
@ 128 frames buffer = 18ms
@ 256 frames buffer = 25ms

IDAM > "Inter device audio midi" through lightning cable roundtrip test:
I let a MIDI track in Logic Pro X send MIDI through lightning cable to garageband "Piano">Audio back into Logic through the lightning cable recorded on new a track.

the audio arrived 10ms to late compared to the original MIDI track.
Shouldn't Logic Pro X "know" about this latency and compensate for it? (> Plugin latency compensation)

Yes... this is not insanely high.... but for me, for playing guitar "through it" it is just to much!
In most cases I will listen to speakers or a p.a. system… so that is an additional 3-5ms in most cases.
For comparison: On my Mac I always (since years) run @ a buffer size of 64 which gives me a roundtrip latency of around 6.5 ms.

  • I did record my Guitar through a DI Box. One path went straight to my Audio Interface>Logic Pro X.
    the "link out" of the DI Box went through a Apogee Jam 96k into iPad Pro>Audio App> Headphones out> Audio Interface>Logic Pro X. This way I could measure/compare the (additional) roundtrip latency caused by the iPad.
    I was always using lowest buffer settings in Bias FX, closed all apps before starting a single audio app)

last but not least:
here is a cool site where you can test your hearing with various blindtests. You can also test if you can hear/feel a latency of 10ms/20ms -> http://www.audiocheck.net/blindtests_timing_2w.php?time=10

«1

Comments

  • 52 Comments sorted by Date Votes
  • Latency will always be present because of AD conversion needs a buffer. I have struggled with latency while trying to play live guitar for as long as I have been using digital audio. I feel it even corrupted my sense of timing when I tried to play live with other musicians after years of playing and compensating for audio latency on my own.

    One thing to consider when doing your latency testing...iOS will use the highest latency setting out of all the apps you have running even if you set it low in some apps. I can't recall where I read that, but I think it was in a discussion between a developer and a customer about audio latency on iOS.

  • What sample rate are you using.

  • i can not offer much, but i can add a datapoint in that AUM with a framesize of 64 at 44.1k reports roundtrip of 29ms on my air2, with zero processing... so yeah, why is it so high? we are gonna need input from a heavyweight like @j_liljedahl

    one thing, you should not expect automatic midi delay compensation in logic, that is only for locally hosted plugins. you can however apply a static manual compensation, but due to jitter you wont find an absolutely perfect value. alas and alack...

  • I always use 128 frames and refuse to go up. I've gotten used to it but found it generally playable but when I hand over my guitar to a friend they always notice it.

    I'd love to make it even faster but I can't see that happening anytime soon. Not sure exactly what's the bottleneck. I've tired 64frames but crackles appear right away on my air 2.

    I wonder what are people's experiences on Pro 10.5 as I'm thinking of getting one soon.

  • To be honest the whole frames Vs milliseconds isn't quite as simple. My iPads are generally stable but Impaktor on iPhone s and se sometimes is more sluggish for some reason despite always being on 128.

    So what's the story. Is it more a RAM or CPU thing? Also is halving the frames going to double the required CPU /Ram requirement?

  • Hi all and thanks for your response!

    @knewspeak said:
    What sample rate are you using.

    44,1k

    In my test I did close (force close) all other apps prior to testing to make sure to get the lowest buffer size.

    @CracklePot said:
    ....even corrupted my sense of timing when I tried to play live with other musicians....

    This is also something I was thinking about.... and your reasoning sounds plausible... I also asked my self: Will my timing get worse etc...when only playing guitar over a computer based system (with latency)? Would my playing benefit from having, playing mostly with a zero (which does not exist!) latency analog rig?

    I know that latency with digital stuff will always happen... and that there is more with a computer based system than with a hardware digital Multi FX, > which by the way mostly have around 2-3ms round trip latency.

    ...and I am well aware of the basic things one should know about latency stuff etc...
    So with that being said:

    • 1ms latency = 1 feet/ 30cm distance sound moving through air...
    • so... playing analog(only!!) gear in real live scenarios will result in a latency of 5ms (or more) in most cases! Even a drummer will hear his snare hit with about 2ms latency!
    • most people, incuding me agree, that a latency of around 10ms (which seems to be a magical number) is (perfectly) acceptable/workable... but more than that can feel wired... like my example with 20ms which is more than 3times more than what I can get on my mac.
    • On my Mac I might have (with headphones) even lower latency than when using a real amp for bandpractice or on stage....

    So: latency per se is not the issue! > the issue is that I can not get a reasonable low latency on my iPad rig

    Which brings me back to my initial questions:

    I really wonder if this (20ms) latency is "normal" or if you guys had lower latency (around/bellow 10ms) before:

    @chris_tudio said:

    So my questions are:

    is apple to blame here? > was it better with older devices and iOS 9 / 10??
    Is this a problem with iOS 11?
    Is this a problem with the newer (2017) iPad Pro models?
    Will this most likely improve (= shorter latency) (again?) with further updates?

    @wellingtonCres said:
    one thing, you should not expect automatic midi delay compensation in logic, that is only for locally hosted plugins. you can however apply a static manual compensation, but due to jitter you wont find an absolutely perfect value. alas and alack...

    Ah ok, thanks for your explanation!

  • @wellingtonCres said:
    i can not offer much, but i can add a datapoint in that AUM with a framesize of 64 at 44.1k reports roundtrip of 29ms on my air2, with zero processing... so yeah, why is it so high? we are gonna need input from a heavyweight like @j_liljedahl

    one thing, you should not expect automatic midi delay compensation in logic, that is only for locally hosted plugins. you can however apply a static manual compensation, but due to jitter you wont find an absolutely perfect value. alas and alack...

    What iOS are you running?? > was it better before?

    Assuming the latency issue was better prior to iOS11, iPad Pro 2017... which I assume according to this > http://superpowered.com/latency and the feedback I got from Apogee...

    Apple might have changed >extended how much stuff/time it will fit into those frame sizes...
    which means that 128 frames buffer is now longer (twice as long??) as it was before... this is just a guess! I don't know...

    **wellingtonCres's example: -> 64 framesize buffer = 29ms??! that is just to much! **

    64 framebuffer... this is really low! I can only in fiddlicator choose framesizes...down to 64 samples. 128 frame buffer (which is obviously longer) is the lowest latency in Bias FX (ultra low latency) and Garageband uses (and forces other apps to use) a buffersize of 256 frames.

    really hope we will see an improvement here!! I would like to run a Bias FX Rig... or even with garageband @ around 10ms rountrip latency!!

  • I might ad: I did not find it terribly terribly to play @ probably 20ms...

    When I looped a short section/riff in Logic with one track+identical tracked version from iPad roundtrip which is printed 20ms to late + slowed it down considerably...
    ...it still sounded o.k/good... it might have a bit of a chorus /stereo effect though.

    I thought maybe I just should not worry that much?

    but still... I guess anyone can agree that it would be very very!! nice to have short roundtrip latency > around or bellow 10ms (back again???) on iOS devices

  • Is it possible to test this without any external devices?
    I installed fiddlicator but am not sure what to do exactly :#

  • Great thread!!!

  • chris, the way i deal with latency is to start recording early and run the loop at least three times, then trim the middle loop by hand. pretty 1960s feeling workflow but you can get perfect results that way.

    tja, what do you want to measure? if you are using AUM you can click on the dsp meter and get a report.

    if you want to make a practical measurement, including the internal latency of an audio interface, you can do the following: create a daw track with a square pulse, send it out an interface output which you connect right back to an input, then play the pulse while recording the input. measure the distance between the original pulse and the recorded version. sorry if you don't like how much latency this reveals...

  • @CracklePot said:
    One thing to consider when doing your latency testing...iOS will use the highest latency setting out of all the apps you have running even if you set it low in some apps. I can't recall where I read that, but I think it was in a discussion between a developer and a customer about audio latency on iOS.

    (Caveat: most of what follows is from memory of various posts I’ve read. The information could be out of date or just plain wrong. )

    This is true, though not so simple as that always. Everything is going to use the same buffer size. Generally the first app to set the buffer size owns it and I don’t think others can change it. From what I’ve read, it’s somewhat unpredictable knowing what the actual resulting buffer size is.

    I also remember reading that if midi is involved, buffers end up being minimum 512 (or maybe it was 256?).

    You have said that you’ve tested with only one app open, so that probably isn’t a factor. What could be though is your interface. I heard the word Apogee. That set me to thinking that maybe you’re using an interface that plugs into the headphone jack. If so, that right there could be your biggest cause. A headphone input device is causing th iOS device to do the A/D conversion (twice), rather than having that occur on the input device itself. It also has to do some fancy under the hood stuff to prevent feedback, which could also introduce delay.

    I use an iRig Pro, which comes in through the lightning connector, and am rarely bothered by latency. I find it far better (and cleaner) than when I used to play through my PC. I haven’t done any measurements, this is all subjective.

    Maybe I’m just less sensitive to latency, but maybe it’s also the device you’re using. Just a thought.

  • Apogee Jam is a lightning and USB interface just like the irig hd so at least for the incoming audio it shouldn’t be a problem. The output goes through the built in headphone jack, though, which might not be ideal. Maybe worth trying some of the other apps like ToneStack, amplitube etc. I don’t use bias very much, also because it seems to be quite cpu hungry compared to others.

  • edited December 4 Vote Up0

    Easy 1970s way of checking it with an interface with monitor out would be to send monitor and main out to the mixer, hard pan them, record some short and snappy sounds and measure recorded audio in Logic or similar.

    Great thread indeed

    I always feel like I'm entering a time machine when playing through iPad. I must be travelling in that time between now and a few milliseconds later! ;)

  • @wellingtonCres said:
    i can not offer much, but i can add a datapoint in that AUM with a framesize of 64 at 44.1k reports roundtrip of 29ms on my air2, with zero processing... so yeah, why is it so high? we are gonna need input from a heavyweight like @j_liljedahl

    It depends on the audio interface. The buffer size setting is not the only thing that adds latency (delay) to the signal. For example, the internal processing that occurs for the built-in audio interface (speakers/headphones) adds a lot of latency, which differs between hardware models. Turn it off by enabling "High Quality" (measurement mode) in AUMs settings.

  • @supadom said:
    I wonder what are people's experiences on Pro 10.5 as I'm thinking of getting one soon.

    Well... my experience you have here... (iPad Pro 10.5 WIFI, 256GB, 2017) I can't go lower than around 20ms in most cases.

    some things to keep in mind: (they where all mentioned in this thread already)
    - iOS will use the audio settings (buffer size) of the latest used app. > globally for all apps
    - iOS will also just use the last connected audio device globally

    it is a bit irritating/confusing to figure it out....Some examples:

    you work in Bias FX (ultra low latency mode)... then you use Skype, then you go back to Bias FX... you might now have horrible latency caused by "Skype Buffer" transfered to Bias FX.

    I could, for example not use a inter App Audio "App A" because A used a higher buffer than "B" which was insereted already in garageband...If I manage to use "A" along "B" the buffer of everything was changed > it is now longer than prior to inserting "A"

    @tja said:
    Is it possible to test this without any external devices?
    I installed fiddlicator but am not sure what to do exactly :#

    You don't need to install fiddlicator just to measure roundtrip latency...
    (But if you play guitar you could use it for loading Cabinet Impulse Responses...)
    But... Fiddlicator proof/shows that Apps (in general) can use a "frame buffer size" of 64 or 128 or 256... some apps might even use 512...I dont think (m)any can use 32. I guess some apps report it/display it somewhere without needing to make a hardware roundtrip loop, which basically is connecting the output via physical cable with a input...However this report might be wrong and missleading... and might not include Converter and/or Audio Interface latency.

    @wim said:
    ...Generally the first app to set the buffer size owns it and I don’t think others can change it.
    I also remember reading that if midi is involved, buffers end up being minimum 512 (or maybe it was 256?).

    I hope not (refering to MIDI increases buffer size)
    I was getting 10ms latency when I played a MIDI track from Logic through my iPad and back via lightning cable...

    @Munibeast said:
    Apogee Jam is a lightning and USB interface just like the irig hd so at least for the incoming audio it shouldn’t be a problem. The output goes through the built in headphone jack, though, which might not be ideal.

    @j_liljedahl said:
    It depends on the audio interface. The buffer size setting is not the only thing that adds latency (delay) to the signal. For example, the internal processing that occurs for the built-in audio interface (speakers/headphones) adds a lot of latency, which differs between hardware models. Turn it off by enabling "High Quality" (measurement mode) in AUMs settings.

    This is a good input:
    You suggested that using a "split audiointerface" (thus using the headphone output) might increase latency (significantly). However: In my tests / experiments with reasonably good interfaces this was not the case...
    there might be a small difference but not much... sure not a difference from 20ms down to 10ms.

    I tested a Behringer UCG102 Guitarlink too which has inputs and outputs and had quite low latency (in Logic Pro X)... and about the same ( a bit shorter) than Apogee Jam 96k and headphone out.

    On a sidenote:
    You (I could at least) can use the Behringer Guitarlink with the USB3 Adapter WITHOUT needing additional power which surprised me! This devices uses 100ma of power (which you can check on the system informations if you have a Mac.. > Apple Menu "About this Mac") the quality is quite good...

    I thought apple changed the allowed power requirements for external usb gear from 100ma to only 20ma??
    However... many other things... like USB Sticks did not work for me.

  • This Forum behaves a bit strange... it is now the second time one of my posts got deleted...??
    luckily I had copied it into a text file on my mac... however: If I copy & paste the text back... my comment can not be posted and I get a message "you post needs to be approved" or something similar...??

  • I would like to rephrase my initial questions again

    Are there any people that had used (way) shorter latency numbers before?? ...and messured it...?
    Before buying a iPad Pro I had the impression / had heard that one can easily run stuff @ around 10ms or less...
    Now the shortes roundtrip latency I can get is @ around 20ms...

    So my questions are:
    is apple to blame here? > was it better with older devices and iOS 9 / 10??
    Is this a problem with iOS 11?
    Is this a problem with the newer (2017) iPad Pro models?
    Will this most likely improve (= shorter latency) (again?) with further updates?

  • This is a good Input @ j_liljedahl, wim and Munibeast (4-5 posts above)

    You where basically saying that one might get (significant?) less latency when using just one device for input AND out like most normal USB Audiointerfaces are (2in2out). What I used was a "split audiointerface" Apogee Jam/Lightning input + iPad headphones output... you might call this a aggregate device in Logic Pro X.

    However:
    I also tested this (roundtrip latency) with a Behringer UCG102 Guitarlink USB audiointerface which has a Guitar input and a headphones output...If I remember correctly it had (very) slightly less latency...(maybe 1.5ms to 2ms advantage). But far from dropping latency from 20ms down to 10ms how I would like to see it.

    My guess is that apple had increased the "time/ms of material" that fit into that 128 frames buffer... to ensure more processing headroom.... My hope is they will change it back... or at least offer users like me who want to use the iPad for software monitoring / as a guitar processor the option to significantly reduce roundtrip latency.

    On a sidenote: > About Apples USB 3 Adapter
    The Behringer UCG102 is actually not bad at all...It sounds good (a little bit more noise than a Apogee Jam)
    What surprised me was that I could use the Behringer Guitarlink via USB Camera Adapter without! additional power input!? It uses 100mA of power... I thought apple dropped the max. power supply through the iPad from 100mA down to 20mA? Still...so far... most stuff, even normal USB Sticks dont work because they "require to much power". A Zoom H2 and my MIDI Keyboard do get enough power (all leds on the device are on and working)... but the iPad still refuses to use them.

  • turning on measurement mode in AUM and my roundtrip falls to 5.4ms

  • @chris_tudio said:
    ...so far... most stuff, even normal USB Sticks dont work because they "require to much power".

    The way around this is by plugging all your USB audio and MIDI things into a powered USB hub. This will allow you to plug in as many power hungry things as you like :-)

  • edited December 5 Vote Up0

    @Hmtx said:
    The way around this is by plugging all your USB audio and MIDI things into a powered USB hub. This will allow you to plug in as many power hungry things as you like :-)

    Yes I know that. The strange thing is: I can connect my Novation ReMote which as a lot of bright LED's and a bright display... and everything on the device gets powered and works reliable > display and buttons/LED's respond...but the iPad still refuses to use it (despite delivering all the power!?) and says "require to much power". The Novation ReMote draws 200mA of power, the Behringer UCG102 Guitarlink draws 100mA and works without additional power. The nice thing about the newer USB 3 Adapter which also has a lightning port >that works ONLY for power! is that it seems to charge the iPad as well as powering the connected devices. So you dont need to use a powered USB hub.

  • edited December 5 Vote Up0

    @wellingtonCres said:
    i can not offer much, but i can add a datapoint in that AUM with a framesize of 64 at 44.1k reports roundtrip of 29ms on my air2, with zero processing... so yeah, why is it so high? we are gonna need input from a heavyweight like @j_liljedahl

    @wellingtonCres said:
    turning on measurement mode in AUM and my roundtrip falls to 5.4ms

    Woah...?!! Really?! This seems to be insanly low.

    Could you please share some more information about that?
    What iOS version and what iPad (Air2?) are you using? Could you test/measure the roundtrip latency with hardware? If you know / happen to have the stuff to do it?

    that would be really great. I guess this could also be roundtrip latency without the interface and AD/DA conversion.... however this would still lead to a real roundtrip latency around 10-12ms I would guess.

    Do you happen to know or guess why you suddenly can get such a low number? going down from 29ms @64 frames to 5.4ms?

  • The roundtrip latency in AUM is supposed to include the full sound path including AD/DA conversion. AUM uses this for latency compensation when recording signals originating from hardware inputs. It gets the information from iOS/CoreAudio, so it could potentially be wrong of course!

    With headphones, 64 frames buffer at 44.1kHz, measurement mode ON, I get a reported 4.51ms round-trip latency in AUM on my iPad Pro 12.9". I haven't measured if this is actually correct.

  • edited December 5 Vote Up0

    @chris_tudio said:

    @wellingtonCres said:
    i can not offer much, but i can add a datapoint in that AUM with a framesize of 64 at 44.1k reports roundtrip of 29ms on my air2, with zero processing... so yeah, why is it so high? we are gonna need input from a heavyweight like @j_liljedahl

    @wellingtonCres said:
    turning on measurement mode in AUM and my roundtrip falls to 5.4ms

    Woah...?!! Really?! This seems to be insanly low.

    No, it's reasonable with a 64 size buffer - and applies to the headphone socket io only (!)
    You have to add your Apogee input's buffer to this - and if the aggregated system ends with 256 then it's 4 times as much - resulting in the 20ms range.
    According to my experience with external interfaces (ioDock, iCA4+, ID22) using their own output, 128 is safe for demanding processing apps, which ends in the 10ms range.
    64 may work with a single app, though, but check for glitches in a dummy record over a couple of minutes. They may not show up immediately.

  • @Telefunky said:
    No, it's reasonable with a 64 size buffer - and applies to the headphone socket io only (!)

    What do you mean by "applies to the headphone socket io only?

    I also did test with a buffer size of 64 frames.

    ---> force closing all apps > opening fiddlicator (it is now the only app running), checked that it is indeed running @ 64 frames which is a setting you can choose in the app.

    Signalpath was a split guitar signal which goes to:
    1> directly to Saffire Pro 24 Input 1> Logic Pro X track
    2> round tripping over apogee Jam 96k > lightning cable >iPad @ 64 frames buffer > headphones out > Saffire Pro 24 Input 2

    I measured a iPad roundtrip latency this way of 15ms
    With Bias FX which seems to be able to use 128 frames (ultra low latency mode) I got 18ms

  • edited December 5 Vote Up0

    sorry for confusion - Jonathan's comment referred to a test with the internal mic and headphone socket. 'Measurement mode' only applies to this specific input.
    Apple does some processing in default mode and Jonathan pointed out that this seems to add some extra time (there's normally a filter and a dynamic processor for auto-gain involved, which are both switched OFF by measurement mode).

    With USB interfaces this does NOT apply, as they have their own io channels.

    The Apogee device uses the headphone output (for obvious reason it has to), but it's input transmission is digital.
    Dunno if that's plain USB (like class compliant interfaces) or a custom implementation.
    (I don't have one)

  • Measurement mode also applies for built-in speakers, and the amount of latency added (when measurement mode is disabled) varies a lot between models. iPad Pro's with their "4 channel" speakers adds a lot of latency there, 30-40 ms or so.

  • ah... this is a good input about "measurment mode" and the added latency on the outputs due to the 4 speaker design. Though 30-40ms (additional) is quite a lot! I guess this was done by apple to somehow optimize an "improve" audio quality (mostly for skype calls and similar use cases?)

    I would have hoped and thought that most "serious" audio apps like Auria, Garageband??, Bias FX and other guitar orientated (> software monitoring) apps would disable such "enhancements".

    what I try to understand... I am not looking to run my apps at lower "frame" (> what does this actually mean...it is not the same as sample buffer..1sec. divided by 44100) buffer size. 64 is probably the lowest available buffer developers can incorporate in their apps... 32 most definitely the lowest.
    To play safte and "just work" garageband might have incorporated a safe and fixed buffer of 256 frames.

    My guess is:

    1) that apple might have increased (lengthen) what fits into such a buffer... and now we have more ms latency at the same buffer size compared to iOS 9 or 10 and older iPad devices.

    2) or this is a problem only related to newer iPad Pros or even only the 2017 iPad Pro devices. maybe Hardware related? However... If only using one USB device for both audio input and output... then the issue could not be caused by hardware... and would only be caused by software

    I have contacted positive grid and apogee support. If I get a helpful answer I will post it here.

  • I’ve found the latency in general to be pretty high. Too high to use Bias, Amplitube, etc. Not sure if it’s higher now than it used to be? But it makes using my Air 2 as a guitar processor pretty pointless as I could just use a VST plugin instead. Surprised to hear it’s so high on the pro, for the price tag. A 500 buck laptop and a cheap USB 2 interface will get you to 10 or less easily. I’m on about 5 at 64 samples.

Sign In or Register to comment.