A few things

twitter: @JosephErnest
email: here

Articles about:

Don't read #tech articles except you really want to.

Some of my projects:
Jeux d'orgues

Low latency audio on a Windows PC with the built-in soundcard (bonus: it's multi-client!)

So you want to use your music production software, with low latency on your PC/Windows laptop?

You have basically two options:

ASIO4ALL is incredibly useful for the PC music community since more than 10 years, because it turns your cheap computer's built-in soundcard into a low-latency one! With ASIO4ALL, you can plug a MIDI keyboard and play piano or synth with no "delay". Without it, the delay of more than 50 ms between the keypress and the sound makes it nearly impossible to play.

But ASIO4ALL has one major drawback: it's not multi-client. This means that if your DAW is open with ASIO4ALL as sound driver, then, if you open:

... then it won't work: the audio is not available for them: your DAW and ASIO4ALL have locked your soundcard.

This is really annoying and I can't count how many hours of my life I wasted since 10 years to find a solution for this (every few months/years I retried and retried and benchmarked every new method). (Ok switching to Mac would have been a faster solution...)

The real difficulty is that we would like to use

Setup (1): A music software in ASIO + a standard application like Firefox using the so-called Windows WDM driver

Here is a list of things I tried, unsuccessfully:

Now, promising solutions:

Here is AsioLinkPro's clever idea: you still use ASIO4ALL as output, but this way:

Setup (2):

Ableton Live (or any other DAW)    --> ASIO: AsioLinkPro                  \
                                                                            --- AsioLinkPro mixer --> ASIO4ALL
Firefox or Chrome or SoundForge    --> WDM: ASIOVADPRO virtual device     /
     or MP3 player                          (AsioLinkPro)

Clever, because even if there are 2 programs producing sound, AsioLinkPro is the only one which speaks directly with ASIO4ALL (which would not support 2 programs).

It must have been tricky to code it because it requires to code a "WDM virtual speaker device" Windows driver + an ASIO driver, phew!

Even if it's discontinued, at least it gives an idea about how to do it. Let's write such a minimalist open-source tool?

Note: not something very big and complex like Jack, but just a small WDM virtual speaker driver and an ASIO driver that both mix their content and send it to the ASIO4ALL output. (No GUI is even required).

How to create symbolic links with Windows with a GUI (no command-line)?

Quick tip: here is how to create symlinks in Windows without using the command line tool mklink.

Create symbolic links with a GUI

1) If you have Python installed, create mklinkgui.py:

import win32clipboard    # pip install pywin32 if you haven't installed it already
import sys, os, subprocess
fname = sys.argv[1]
filenames = win32clipboard.GetClipboardData(win32clipboard.CF_HDROP)
for filename in filenames:
    base = os.path.basename(filename)
    link = os.path.join(fname, base)
    subprocess.Popen('mklink %s "%s" "%s"' % ('/d' if os.path.isdir(filename) else '', link, filename), shell=True)

2) Open regedit and

How to use it?

Older articles