|
发表于 2006-12-8
|
|阅读模式
这是用于开发音频插件和 GUI 的代码框架,其中包括:
- 独立于平台的 IPlug 类,用于处理与音频主机的所有通信。
- 独立于平台的 IGraphics 类,用于管理 GUI 上的控件。
- 一组独立于平台的 IControl 类,用于处理移动和旋转图像、矢量图形、鼠标输入等。诸如“静态位图”、“开关”、“推子”、“旋转旋钮”等类。这些类可以轻松地延长。
- Windows 和 OSX 图形实现类,处理窗口管理,并使用 LICE(Cockos 图形库)绘制 GUI。
- VST 和 AU 实现类,处理音频主机和插件之间的通信。
这个想法是,您可以从 IPlug 派生一个新的插件类,并且通过少量可读的代码行,您可以组装插件和 GUI,而无需关心操作系统、插件格式或图形实现是什么。
示例插件的框架和代码可以在最新的WDL 包中找到。 此代码应编译为 Windows VST、OSX 音频单元或 OSX VST,无需任何更改。
这是示例插件的构造函数的源代码示例(来自包)。
要编译 VST,您将需要Steinberg 的VST SDK。您只需要 SDK 中的两个文件:aeffect.h 和 aeffectx.h。要编译 AU,您需要Apple 的Core Audio SDK(XCode 附带)。
WDL 中的 IPlug 示例项目静态链接到 Cockos LICE 图形库中,但如果您正在制作一次性插件,您可能会发现将必要的 LICE 源文件添加到插件项目中会更容易。
注意事项。
这是我使用的代码,因此它是为习惯使用 C++ 的用户而设计的。它不提供任何类型的GUI组装图形界面,一切都是在用户代码中完成的。虽然它支持我碰巧使用的所有插件/GUI 功能,但它可能不支持您想要的功能,例如它不支持常见的 Windows 控件,如下拉列表和复选框。但是,扩展框架以添加功能应该很简单。 |
|