Dealing with ASIO4ALL on the Surface Pro 4

Posted on Posted in Article

While I was shooting the video about setting up the Surface Pro 4 for music production I hit an unexpected problem with the ASIO4ALL driver. We use ASIO4ALL to wrap up regular windows drivers into a form that works better and with lower latency with music software – it still does this on the SP4 but you have to get the settings right. So I’ve created this video to show you what you need to know about using ASIO4ALL on your Surface Pro 4. Is it the same on the Surface Book? I don’t know – I don’t know if the audio engine is the same, there were no problems on the Surface Pro 3 or Surface 3.

But ultimately it all works out in the end 🙂




36 thoughts on “Dealing with ASIO4ALL on the Surface Pro 4

  1. Great tutorial, I have been waiting for this (all of them actually).
    Unfortunately it won’t fix my problem with occasionally crackling and CPU spikes. I think I have been trying everything already, however problem still exist. Maybe there is something wrong with my setup; I have SP4 i7, 8GB, and I intend to use Pro Tools with Apogee MiC and earphones for recording vocal and acoustic guitar with some synths from NI and some effects.
    I know it would be much more smooth to buy dedicated audio interface, but then my mobile rig would not be so minimal anymore and for this purpose I already have Mac with Apogee Duet. So my idea was to use MiC and earphones but Apogee does not provide any drivers for windows and only way to use it (as to my knowledge) would be infamous ASIO4ALL (well, not for all in my case).
    So I followed your tutorial and set up only 2nd output SST for earphone audition and MiC for recording and I get every 1-2 seconds CPU spike up to 100% flashing red and some annoying pops. I’ve been trying that setup in Reaper – same thing happens. I switched off system sounds, and keep both system device and session at 44100/24 for maximum compatibility, tried reinstall drivers – still same. Actually one time I was able to get everything working but then when I started Pro Tools next time it was bad again. Worth to mention that this pops are not recorded in session, when i transfers session to my other machine it play just well. Anyway it’s annoying and disturbing.
    Maybe there would be possible to use external audio interface together with usb MiC as a combined aggregate interface using dedicated drivers form AVID or Focusrite like it can be done on Mac ? No idea. Could you advise? I really like to use this usb microphone.
    Buu Microsoft, buuuu!

    1. Hi Roman,
      Sorry, for some reason I missed this comment – duh! I’ve been in a similar place for that last couple of weeks. I want to show some performance testing using various bits of software but I keep getting problems in Pro Tools and Cubase. However, I’ve found ASIO4ALL to work ok with the onboard sound – provided you’ve followed my tweaking guide and you only have one driver active and select the 44.1kHz option (easy isn’t it?). I’m a bit confused as to how you get the Apogee Mic to be seen by ASIO4ALL if it has no windows drivers – but hey anything is possible but that doesn’t sound like a good solution to me. As the on-board audio seems to work without incident I’ve been focusing on USB and USB audio interfaces. My experience in Pro Tools has been occasional pops and drops out even in simple projects – Cubase has been the same. Reaper and Bitwig on the other hand have not shown this problem. I’ve found a half workaround in Pro Tools where if you change the buffer size in the playback engine it then pulls itself together and works without issue – however, you can only change the buffer size on an Avid interface (I use a Fast Track Duo) – on any other interface you have to restart Pro Tools when you change the buffer size and it starts up again with clicks and pops. So you start up PT – crackle – change buffer – fine – restart – crackles again. The actual buffer size makes little difference. I am currently going through it all methodically which is taking a lot of time but i’m hopeful that I can come to some sort of solution/fix/workaround that’ll save the SP4 from being a bit of a disappointment – it could just be about finding the right setting to somehow up the priority of the driver… or something. I hope to take my findings to Microsoft and you never know where that might lead. So let me know how you are getting on – it’s really useful for me to hear from other strugglers because a large part of my brain wants to believe that I have a faulty Surface and that’s sadly unlikely.

      Cheers
      Robin

  2. You make my (half) day!

    Now the sound is very good but the latency still there, but I have the latency with WASAPI too.

    SP4 i5 4gb 128HD midi connection with MOTU’s Fastlane.

    Maybe the latency is a problem of the midi interface?
    I have a MOTU 828mk2 (connected to an old Mac G5), but is only firewire…

    Any ideas?

    1. You can adjust the buffer in ASIO4ALL to bring the latency down to playable levels. Try 128 or 256 samples for the buffer size. There shouldn’t be latency with a MIDI interface, it’s a simple device and you can easily test that by trying tapping the keyboard on the screen. The real answer is to get a proper audio interface 🙂

      1. Yes Robin, it’s what I think but for the moment I do not have an usb audio interface… I have spent all my money to buy the surface 🙂

        I have tried all combinations of buffer size, but nothing change (or very little difference but not whant I need).

        I think it’s a problem between the Fastlane and the Surface.

        My configuration:

        -Midi keyboard > to Fastlane midi in > usb to Surface

        -Fastlane midi out > midi in to Motu 828mk2 > Firewire to Mac G5

        Now, the Fstlane has a “throught” button that bypasses the usb so the midi signal can go directly to 828mk2 and to G5.
        Surprising (because the long way) no latency at all on the G5.

        1. Electrical signals don’t really care about distance when you’re talking about a few feet. So…. try the screen, how does that compare? You have all this expensive gear and your end point, the thing that generates the sound is a five dollar mini jack headphone output. If you followed my instructions on the video and ignore the Fastlane and use the screen then that’s the best response you’re going to get out of ASIO4ALL. If it’s any different with the Fastlane then yep there may be a problem there – you just have to be methodical about it 🙂

  3. Sorry Robert, but what do you mean with “tapping the keyboard on the screen” ?

    Do you mean tap a virtual midi keyboard like the Kontakt one?

    If yes, with the finger or pen don’t work well, because the response it’s “random”… I have tried with a mouse usb connected and seems better for the test, but for me the result it’s not clear if I don’t play on a midi keyboard…

    Anyway, reduce the buffer size seems reduce a little the latency, but I am not sure…

    I am looking if there is an external firewire-usb converter, maybe I can connect the Surface to the Motu interface without buy a usb audio-midi interface.

    Thanks for the help and congratulations for your beautiful blog!

    1. Yes and no – get some touch compatible software like StageLight or the demo of Bitwig – something that has a virtual keyboard that responds well to touch and works with ASIO – like in the video you are commenting on. There’s no such thing as a Firewire to USB converter i’m afraid. Honestly – get Stagelight, follow my setup videos, see if the on screen keyboard is playable or not.

  4. Ok I have try StageLight and seem no latency at all. So I suppose it’s a problem with the fastlane. or usb connection of fastlane or the windows driver for motu interfaces with windows (10?).

    Motu was a only Mac company, so maybe the midi drivers for windows (10?) are not god at the moment…

    Anyway, thanks a lot for your time and I think it’s time to buy a good but small midi-audio interface usb for the Surface, for no latency, good sound and portability too.

  5. Just for let you know that I have try the Fastlane plugged directly on the Mac G5 and have no latency at all.

    So… considerig that on the surface the latency are with both asio and windows driver, now I am shure that the problem is not in the Fastlane itself but in the transission betweein the Fastlane and the Surface.

    Usb drivers? … Windows? …

    If somebody have idea how to understand what happen… tell me! 🙂

    1. I don’t think the problem was ever that the Fastlane was faulty, just that the driver or the USB connection to the Surface was not working right. I’m working on a theory at the moment that the USB port is actually not performing as it should but I’ve still got a lot of testing to do – but i’m getting some unexpected results at the moment. Let me know if you discover anything else and of course if I get anywhere i’ll be doing videos all about it.

  6. Dude, you’re my hero! I was pulling my hair out trying to get ASIO4all working right on my surface pro 4. I’m curious if you’ve ever tried Bitwig? It has a fantastic tablet screen template that I’m enjoying a lot.

    1. Bitwig? You mean other than the two video reviews, the video of me doing a Bitwig improvisation, me using Bitwig live you mean? Yes I’ve tried Bitwig 🙂
      Are you planning to use a USB audio interface or USB MIDI keyboard as well? If so please let me know how that goes. Cheers!

  7. Yesterday more test.

    I set Digital performer in the Surface as a master and Digital performer in the Mac G5 as a slave.
    Midi connection through rtpmidi (interface for windows) and midi-audio configuration in os x (via wifi/router for the moment).

    Sync protocol was beat clock.

    I record a C3 each tempo (4/4) in a piano track on the surface and the same but with a G3 on the G5 and play togheter and both exit on my monitors.

    Audio output surface: headphones > cable mini jack stereo/two jack mono > in 1-2 analog Motu 828mk2 > bus to main output (monitors)

    Audio outup G5: firewire > Motu 828mk2 > main out

    They are in sync.

    So…. the latency problem IS NOT in the Surface output and not from headphones out to motu analog 1-2 in and bus to out.

    Considering that the Fastlane work perfect with the G5, the problem must be somewhere between the midi signal out from the Fastlane and the audio generated in the Surface.

    Yesterday I have try again with WASAPI and works a (very) little better than ASIO4ALL. Very little less latency…

    Still serching solution…

  8. Hi Robin,
    First of all thank you for all the good work you’re doing with helping making surface pro wonderful creative tool for digital music.
    Finally I’ve got some time to follow your suggestion regarding ASIO4ALL settings.
    I have started with complete reset of the device (including all user files) and only installed windows updates and Reaper and Bigwig Studio Demo. They both worked as expected with only one output selected. Bigwig occasionally stopped responding when I changed audio output from speakers to headphones – it didn’t react for a that change- sound still played via internal speakers, but stop/start sound engine within application easily solved the problem. I am able to use both of them with buffer set to 128, which makes it for me comfortable with recording via Apogee MiC (yes man, it works great!) – an acceptable lag for me.
    So, then I moved to next step and installed dreadful Pro Tools 12.4… And then miracle happened ! No more cpu spikes and pops. Everything works as it should be. And I don’t need to change sample rate every session like you said. I was able to work with PT yesterday for couple of hours with absolutely no problem wit not session (5 audio tracks, some reverbs, channelstrip, delay, eleven, output to earphones, buffer 128, no VIs). Session seems a little heavier in cpu usage than on desktop pc IMO. Worth noted is – I don’t use AiR instruments- they broke PT native scaling resolution when launched, makes interface too small to be able to work with, hopefully AVID fix that soon.
    So I hope nothing will change today, and all my settings will still works today. Unfortunately Pro Tools is one of 2 DAW I own (other is Logic), so it kind makes me stick with it.
    On the other hand I was surprised how wonderfully Reaper is handling large session, and for 60$ is really good deal, but unfortunately it does not support OAF export ATM, so it would be problematic with interchanging sessions with Logic, which I prefer on Mac side. Lets see the future, hopefully they will add this functionality.
    Today I will continue more tests/fun starting with installing NI Komplete 10, and my little m-audio keystation mini.
    One question: how much would you recommend Avid fasttrack as audio interface for
    SP4, versus, e.g., focusrite? I know it has better integration with Pro Tools, but looks like AVID is at the moment selling only APOGEE stuff – end of production maybe ? And how good it is with Windows 10 on drivers side? I remember my old mbox mini 2 was very problematic.
    BTW, I had no idea how beautiful and creative tool Bigwig is.
    Cheers,
    Roman

    1. Good information – I appreciate it! Yep, particularly XPand kills the scaling on the Surface and causes some nice runtime crashing – Avid do tend to be four years behind the curve and pretend it’s the “pro” thing to do. I’ve had Reaktor working really well so I think Komplete 10 shouldn’t cause you too many problems – although at this point anything is possible. I did have PT12 working fine on ASIO4ALL and now it’s not again. I’ve been documenting the issues and hope to get on using every tweak in the book on it this week.

  9. Quick update:
    It happened again, starts pops and clicks – on both earphones and speakers in Pro Tools, i think I’l l stick with Reaper…

    1. Maybe…. I have a theory that it’s USB related. I get the issue with PT which has an iLok and Cubase which has a dongle, but not with Reaper or Bitwig which don’t. I need to try some others like Ableton Live and StudioOne to see if that still rings true. I did totally lock up Bitwig by turning on an external USB drive while it was playing back. Lots more testing to do 🙂
      Let me know how it all goes because all information on this is useful.
      Thanks
      Robin

  10. Ok, I have intresting news.

    I have installed Cubase 8 elements trial, setup with asio4all and loaded a piano in instrument track (galaxy steynway loaded in Kontakt vst).

    No latency at all (!) Ok, maybe a very small latency but absolutely playable with no problems.

    So… Digital Perfomer has latency, Finale has latency, Cubase runs perfect.

    So… the problems is not the fastlane, but seems is in the way that the programs handle the midi to audio path.

    For Finale I don’t care, because I never write in tempo, but for Digital Performer it’s a shame, because I really love it and Cubase for me it’s totally new (and I must buy if I don’t find another solution)

    Anyway, intrensting stuff 🙂

  11. To me too… but I have make all the setups possible on both programs, and the latency still there…

    Next test is find an external usb audio interface and see what happens.

    I have read here in your blog that Steimberg’s are suitable for the Surface, right?

    But why? M-Audio, Focusrite or an Mbox mini (for exemple) you don’t think works well?

    1. I can only say what I’ve used. I have a Steinberg UR28M and an Avid FastTrack Duo, both of which work fine. I’ve heard from a couple of people who couldn’t get Focusrite Solo’s to work but I have no opinion on any other devices. Buy it online so that you can return anything that doesn’t work within the 14 days.

  12. I have tested Pro Tools with fast track duo with two mics, using it as only audio device for application ( no more ASIO, just dedicated AVID drivers ). And it does not works out of the box, still pops and click. Your trick however with changing buffer size works… kind of. Even with two recordings, and couple of plugins (channel strip, eleven, dverb ) session is EXTREMELY heavy on cpu, around 60% which is unacceptable. For me this is fiasco and total fail from Microsoft . Only REAPER save the day. I really hope MS will fix this broken audio engine within surface. I am starting to regret purchase.
    On the bright side – it makes me purchase two new mics Shure SM57 and SM58, and with this alone I am extremely happy 🙂

    1. Well if I use the Kelly Earth and Stars demo project (you can download this from Avid) it runs at about 20% CPU, but with this constant running up and down to 60-80% and then it pops and glitches and hits 100%. I get the same on a 16 track project with the channel strip loaded on each – runs at 8-10% and then shoots up for no reason I can find. I currently have people at Microsoft analysing the results of running traces through the audio stack – will that help? Who knows. I’ve seen this video online of someone using PT11 on a SP4 without any issue – https://www.youtube.com/watch?v=2tN-uhnpriM – I might try installing that just to see.

  13. I am going to test that as well while waiting for 12.5 appear on my account. If it runs it would be interesting. I am not expecting t get any studio performance on SP4 and I know how picky regarding qualified hardware Pro Tools is, but it runs quite well on almost any pc’s I have seen and it would be nice to have tight reliable mobile rig. And I have checked surface hub as well and trying connecting Fast track interface through one of the usb port o the hub – a lot of clicking and distortion coming occasionally in Pro Tools and REAPER which was even worse.

    1. Unfortunately I can’t get PT11 to install – it hits a problem and rewinds. I’ve just downloaded 12.5 and will give that a go. I’ve tried passive hubs and powered hubs and the dock with no improvement. It should absolutely work – my Surface Pro 3 works beautifully as a mobile music making rig for any piece of audio software, Pro Tools included. So it should be possible – still working on it.

  14. Ok, I have tested with PT11.3.1, and actually I’ve got mixed results – more or less same old scenario as before. Playing nice from the beginning, restart, couple other things on the computer, and after some time coming back to old problem with CPU. Not too much different than with PT12. All this using only ASIO4ALL, i didn’t test it with interface. However by playing many different options I think I’ve found something like semi solution or sweet spot, but still have to verify that if this will works too with recording. Ive only checked so far with native speaker playback and earphone playback using single interface 44-48khz each time.
    Whenever I start session I have buffer set to 128kb in ASIO4ALL interface, and when I see CPU spikes ( you can see it immediately after you load your session to goes all the way to right until red), then I go to audio engine options within Pro Tools and set buffer to something like 256kb, apply and set back to 128kb. Boom, problem disappear. It works for me. I do this now with 12.4 – didn’t want to stay with 11.3.1 for no input monitoring and track freezing there. I still didn’t test it with recording, how it will affect latency and if it will works at all – I will do this over weekend. Using this settings and keeping buffer at 128kb I am able to maintain CPU usage on 11-15% on Kelly Malone track,, but WIHOUT any AiR plugin. I just don’t install anything from AiR because it breaks Pro Tools interface for SP4.
    Let me know what you’ll get.

    1. Well that’s getting somewhere at least – well done. The problem is that with most audio interfaces Pro Tools requires a restart if you change the buffer size. I’m pretty sure this doesn’t solve the problem with Cubase – but I need to look into that deeper again. I am having help from Microsoft but it’s taking time and i’m away for a week myself now but I hope to get somewhere when I get back. I also need to open this up to a larger conversation because people keep asking me how great the Surface is for music and at the moment it has its issues but I don’t want to start doing videos on that until I have a complete picture.

  15. Hi,

    Sorry if this is a stupid question but I am a newbie when it comes to audio drivers. I have recently bought a surface book and am running Cubase Elements with Komplete 10. The issue I have is that I cant get Cubase to play out of the headphones out. I am pretty sure I am routing it okay in Cubase so think it may be an issue with the ASIO driver? For example, if I choose the Wasapi driver in any of the Komplete instruments then the headphone output works fine. If I choose ASIO then it plays out of the speakers. Vey annoying and means that, as it stands, I can’t use it for music production! Any help would be gratefully received!

    1. Hi Chris – I’m assuming you’re using ASIO4ALL yes? In the ASIO4ALL control panel you have to enable the second output (which is headphones) and disable the first output (which is speakers) and then use VST Connections in Cubase to connect to it. The one you want in ASIO4ALL is called “Realtek HD Audio 2nd output with SST” – that’s the headphone output, that’s the one that should be enabled. Stupidly complicated isn’t it? If you want an easier life get yourself a USB audio interface with ASIO drivers like the Steinberg UR22 and you life and your music making will be so much easier.

      1. Robin, you’re a legend. Got it working. Played with the ASIO settings a bit and make sure the headphones were plugged in and suddenly appeared as an option. Works great now, thanks a lot for your help. I’ll give you credit on my first hit album….;)

  16. Thank you so much for all your videos but ESPECIALLY this one! I’ve been fighting with my SP4 and Reason and you solved my problems!

  17. Really strange. I am running pianoteq in minimum configuration and no change on my new surface book i7. Still relatively high latency and crackles. Funny…on my old surface pro 2 absolutely no problems….hmm…I am afraid my surface book will be returned. Too much trouble for the price…

  18. Thank you so much for saving me from disappointment, nice clear instructions with explanation. Time now to get it from my head to peoples ears! Again, maaaany thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *