Writing an audio plug-in or software synthesizer?
The new DXi 2 soft synth development kit is what you've been waiting for! The SDK provides a wizard that allows you to choose one of two development paths: DXi or straight DirectShow filter
New Capabilities in DXi 2
- Multiple audio output streams from a DXi
- MIDI output from an MFX or DXi, to the host
- Raw MIDI event processing (e.g. for MTC)
- Flexible, high-resolution time-conversion
- Per-channel patch, note, RPN and NRPN names
- Efficient processing of silent audio buffers
- Pitch marker access
- Fully editable source code
- Single self-contained DLL (no more proxy DLL)
- Simpler DXi coding model
What about DX8 plug-in automation?
Microsoft has released a set of API's in the DirectX 8 development kit that provide real-time automation of plug-in parameters, known as IMediaParams. These changes can be arbitrary or follow any type of curve. With SONAR, Cakewalk developed additional support for these interfaces which enable the host to timestamp value changes via mouse gestures in the plug-in's UI.
View our plug-in automation tutorial included in the DXi2 / DX Plug-in development kit below to see how easy it is to implement DX8 automation with a UI callback mechanism.
What are DXi and MFX?
DXi is a DirectShow-based software synthesizer plug-in architecture, which combines audio DSP with MIDI event handling. MIDI effects (MFX) is a COM-based plug-in architecture designed for real-time processing of MIDI events in applications like SONAR. MFX was used to help extend DirectShow into what became the DXi architecture. The download below includes a standalone MFX wizard to facilitate the development of MIDI-only plug-ins. Click here to learn more about MFX.
For more information, you may consult the DXi2 SDK errata page, which describes solutions to some known problems.
The DirectShow/DXi SDK and is completely free, so developers can download and freely join the revolution without restrictions.
Step #1 - Download the DXi2 SDK and write the Plug-in.
In addition to the DXi 2 SDK, a good source of information is MSDN online, with information on DirectX at http://msdn.microsoft.com/directx/
Before using the DXi wizard, you'll need to get the complete DirectX 8 SDK.
The complete Microsoft DirectX SDK provides far more than audio, including video, force feedback, and other interactive technologies. For creating DirectX audio effects and DXi, we've made it easy for you... You can download our DX Plug-in Wizard below, which gives developers using Microsoft Visual C++ v6.0 an easy framework for creating DirectX audio plug-ins and DXi.
Now Serving: DXi2 SDK Version 184.108.40.206
Download the new DXi2 and plug-in kits (DXi2SDK.zip, 2506 KB)
Click here to download the DXi 2 documentation and interface definitions
After you download and launch the installer, the following contents will be copied to your hard drive:
- ReadMe.rtf, A very useful reference that provides an overview of kit contents and tips on using the sample code.
- DXiDevKit.chm DirectX/MFX/DXi developer help, in HTML help format.
- PlugInDevelopment.doc DirectX/MFX/DXi developer help, in MS Word format.
- PlugInTutorial.doc Tutorial example, creates an automated audio plug-in.
- What you've all been waiting for: source code for a fully functioning DXi 2 host application.
- Reusable classes to assist in hosting DirectX plug-ins and DXi's. Files and classes are named after the general functional areas they cover, namely, MFX or DirectX.
- DirectShow class libraries, compiled for your convenience.
- Sample DirectX, MFX and DXi plug-in projects.
- Twonar DXi\ DXi software synthesizer with integrated metronome. Does not support DirectX 8 automation.
- Sample MFX\ MIDI delay MFX plug-in, built without the use of MFC.
- MFCSample MFX\ MIDI delay MFX plug-in, built using MFC.
- AutoSynth DXi\ DXi software synthesizer, with integrated sweepable resonant filter. The filter is fully automatable via DirectX 8 automation.
- AutoClip DX\ DirectX audio plug-in that performs digital clipping (distortion). This project is what is ultimately produced by the tutorial document.
- Boilerplate code for audio plug-ins and DXi synths, in MFC and non-MFC flavors. Note that non-MFC template projects also contain makefiles (.MAK) and dependency files (.DEP), to simplify integration with other C++ compilers.
- MFC\AudioPlugIn Audio plug-in template, using MFC for the UI.
- MFC\SynthPlugIn Soft synth plug-in template, using MFC for the UI.
- NonMFC\AudioPlugIn Audio plug-in template, using generic Win32 for the UI.
- NonMFC\SynthPlugIn Soft synth plug-in template, using generic Win32 for the UI.
- Visual Studio 6.0 App Wizards, for creating DirectX/DXi plug-ins, and MFX plug-ins.
- DXPlugInWizard.awx DirectX/DXi app wizard.
- MFXWizard.awx MFX app wizard.
Step #2 - Test the plug-in
You can download a demo version of SONAR here, which will let you try out your DirectX plug-in.
Also note that there is a peer-to-peer forum at Forum.Cakewalk.com devoted to discussions of DShow plug-in and DXi development.