Developer Section

Compatible with:




22 April 2003
Sonic Timeworks releases extension to DirectX
We're proud to announce an extension to the DirectX plug-in architechture, which allows for a professional approach to latency compensaion.
This extension benefits both plug-in developers, host manufacturers, and not least the end-user

Several manufacturers has already pledged their support: Sonic Timeworks upcoming linear phase equalizer (Equalizer V1-LP) will support this. Also IK Multimedias T-RackS and iZotope will support it, and on the host side Samplitude and Sequoria supports it since version 7.1.
We expect other major manufacturers to join us shortly, it's free and it's easy.

DirectX is a professional standard for plug-ins, however it does suffer from a couple of flaws. One of the most noticeable is the lack of proper latency compensation.
Latency compensation is used when a plug-in internally delays its sound output. This can happen for 1 or more of several reasons:
1: It is utilizing look-ahead (i.e. dynamics)
2: It is using filters with a long build-up time
3: It is non-causal in nature.

The current compensation technique in DirectX consists of the plug-in actually delaying it's output. However, there's several major problems with this:
1: It will never be able to work real-time (i.e. "on stage").
2: It is a rather complicated interface, hence most manufacturers chose not to implement it
3: It only works for look-ahead processors (i.e. doesn't work with filters)

As an alternative Sonic Timeworks has, together with other members of the audio community, created an extension to DirectX, to solve these problems.
It should be noted that:
1: This extension is 100% binary backward compatible. Your old software will continue to work. You can also combine software, for instance using a plug-in which supports this extension, but a host which doesn't (or the other way around), however in that case you cannot take advantage of it
2: The extension is somewhat backward code compatible for easy "here-and-now" porting, in order to take limited advantage

So, as a developer, how hard is it to add support for this? The answer is "very easy".
All you need to do is for your filter class to support an additional interface, and implement a few very simply calls. In a plug-in it can, literally, be done in a matter of minutes. No advanced buffer schemes. No messing with manual delaying of output, simply fill in your latency and you're set.
For host manufacturers the complexity depends on whether you already support latency compensation for other architechtures (i.e. VST) and how deep a level of support you wish.
If you already support latency compensatin in your host software, and does not with to support dynamically changing latency, it is equally simple, and can be done with a few lines of code.

Enough talk, we encourage developers to download the SDK and take a look.

Naturally Sonic Timeworks offers support for this interface. Should you have any questions and/or comments, please mail Michael Olsen.

If you wish to be added to the compability list (great way of advertising for free), also send a mail to Michael Olsen.