#vst #host #plugin #create #info #editor #opcode

vst2

VST 2.4 API的Rust实现。创建插件或宿主程序。

1个不稳定版本

使用旧的Rust 2015

0.0.1 2016年9月7日

10 in #vst

MIT 许可证

125KB
2K SLoC

rust-vst2 Travis构建 Appveyor构建

一个帮助在Rust中创建VST插件的库。

这个库还在开发中,因此尚未实现所有操作码。它可以创建没有编辑器界面的基本VST插件。

请注意:此API可能会迅速变化,并且此库的状态不是最终的。

库文档

待办事项

  • 实现所有操作码
  • 适当的编辑器支持(可能是 conrod + sdl2)?
  • 编写更多测试
  • 提供更好的示例

用法

要创建一个插件,只需创建一个实现了 plugin::Pluginstd::default::Default 的类型的实例。然后调用宏 plugin_main!,它将导出必要的函数并处理API的其余部分。

示例插件

一个没有任何功能的简单插件。提供的Cargo.toml有一个crate-type指令,它会构建一个动态库,可以被任何VST宿主程序使用。

src/lib.rs

#[macro_use]
extern crate vst2;

use vst2::plugin::{Info, Plugin};

#[derive(Default)]
struct BasicPlugin;

impl Plugin for BasicPlugin {
    fn get_info(&self) -> Info {
        Info {
            name: "Basic Plugin".to_string(),
            unique_id: 1357, // Used by hosts to differentiate between plugins.

            ..Default::default()
        }
    }
}

plugin_main!(BasicPlugin); // Important!

Cargo.toml

[package]
name = "basic_vst"
version = "0.0.1"
authors = ["Author <[email protected]>"]

[dependencies]
vst2 = "0.0.1"

[lib]
name = "basicvst"
crate-type = ["dylib"]

依赖关系

~0.6–1MB
~17K SLoC