In this article, we present to you some of the basic principles that you should know in order to properly use Ekio with an ASIO audio interface. We show you how to integrate Ekio in your system to perform a variety of configurations. For example, we describe how to ensure that Ekio filters sounds coming from Windows or from external sources.
Windows applications use the Windows audio drivers (WDM, DirectSound, etc.) to play and to record sounds. These drivers are the link by which an application sends audio signals to a sound card, or receives it. This is shown on the following figure:
Ekio holds a special place. Unlike other applications, it does not use the Windows drivers, but dialogs directly with the sound card through the ASIO protocol. It occupies the ASIO host function, as illustrated bellow:
Ekio receives audio signals coming from the audio interface. It applies its filters, and returns the result. The N channels received are converted into M output channels.
The illustration shows clearly that the audio interface is at a central position. It is through this audio interface that all signals pass. There is no "direct" link between Ekio and Windows applications as there is no direct link between a Windows application and an external device. The exchanges are always processed through the audio interface.
Since all audio streams pass through the audio interface, it must be able to route signals between all external entities. For this, it has an internal router that we are going to configure in order to create connections between the external elements, allowing audio streams to connect between the applications, Ekio, and the physical I/Os.
Only very few ASIO drivers support true multiple application access. This effectively means that you cannot use 2 or more applications using the same ASIO device at the same time. When Ekio is running, it occupies the unique place reserved for the ASIO host. Other applications have to use the standard Windows audio drivers.
Now let's have a closer look of the system:
On this illustration, we can see that the audio interface exchanges signals with the outside through three interfaces:
Represented at the centre of the audio interface is the routing function. This is what allow the sounds to be routed between the interfaces. The blue arrows represent an example of established connections.
Routing abilities can be quite different from one sound card to another. Some of them offer a very flexible routing and allow you to configure all the connections you want. On the contrary, some cards do not allow any configuration at all: links are established in hardware and cannot be changed. Other cards offer an intermediate flexibility level. We recommend you to study in detail the user manual of your audio interface to know precisely its abilities.
Now that we have a clearer picture of our system, let's look into the proper way to use our sound card and routing functions in order to achieve some common configurations.
Let's see how we can achieve some common configurations. We will go from the simplest case to the most complex.
Our goal is to receive an audio signal from an external source (e.g., CD player, smartphone), to filter it with Ekio, and to send the result to an external amplifier.
For this, we create the following configuration:
We configure the routing of the sound card to direct the signals received from the external source to Ekio so that it transmits the output to an external device. Here are the details:
The detail of the various steps necessary to achieve the sound card configuration depends on its brand and model. Please refer to the user manual of your device to get the complete instructions.
If you want to play sounds from Windows, you have to direct the signals from Windows applications to the ASIO host. Some cards allow you to make this connection with their internal routing. But some less sophisticated ones do not allow it. In this case, it is possible either to perform an external loop back, or to use a second sound card. Let's have a look at this more closely.
This is the most simple and effective solution. You configure the routing of your sound card to direct the signals received from Windows to the ASIO host (link 2).
This is only possible with cards that offer this routing feature. When they do not, you can use one of the two following solutions.
When a sound card does not allow to perform internal routing of WDM OUT to ASIO IN, we can use an external loop back:
The goal is to re-inject the signal from Windows to the physical inputs of the sound card in order to make them accessible to the ASIO host. For doing this, an external loop back is used. The signals are sent on the physical outputs (link 2) and are looped back into the inputs (link 3). This way, they are accessible to the ASIO host through the link 4.
If the number of available inputs or outputs is insufficient, you can opt for the use of a second sound card.
If the sound card routing capabilities do not allow us to forward WDM OUT signals to ASIO IN, and if the number of I/O is not sufficient to realize an external loop back, you may decide to use a second sound card.
Windows sounds are directed to the new card. Its outputs are connected to the physical inputs of the first card (link 2). The first card is configured to operate with an external source, as already described above.
For the second sound card, a very simple model may suffice (e.g., a USB to SPDIF converter).