rust-vst2, 在 Rust 中,VST 2.4 API实现 创建插件或者主机

分享于 

3分钟阅读

GitHub

  繁體 雙語
VST 2.4 API implementation in rust. Used for creating plugins.
  • 源代码名称:rust-vst2
  • 源代码网址:http://www.github.com/overdrivenpotato/rust-vst2
  • rust-vst2源代码文档
  • rust-vst2源代码下载
  • Git URL:
    git://www.github.com/overdrivenpotato/rust-vst2.git
    Git Clone代码到本地:
    git clone http://www.github.com/overdrivenpotato/rust-vst2
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/overdrivenpotato/rust-vst2
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    rust-vst2

    Travis BuildAppveyor Buildcrates.io

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

    这里库正在进行中,因此还没有实现所有的操作码。 无需编辑界面即可创建基本VST插件。

    注意:这个api可能会受到快速变化,并且这个库的当前状态并不是最终的。

    库文档

    待办事项

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

    用法

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

    示例插件

    一个没有任何功能的简单插件。 提供的Cargo.toml 有一个crate类型指令,它构建一个动态库,可以由任何VST主机使用。

    src/lib.rs

    #[macro_use]externcrate vst2;use vst2::plugin::{Info, Plugin};
    #[derive(Default)]structBasicPlugin;implPluginforBasicPlugin {
     fnget_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 <author@example.com>"]
    [dependencies]vst2 = "0.0.1"[lib]name = "basicvst"crate-type = ["dylib"]
    在 OS X 上的软件包

    在 OS X VST插件中封装在可以加载的包里面。 要将VST打包为可以加载的包,可以使用这里库提供的osx_vst_bundler.sh 脚本。

    例如:

    
    ./osx_vst_bundler.sh Plugin target/release/plugin.dylib
    
    
    Creates a Plugin.vst bundle
    
    
    
    

    plugin  API  IMP  Implementation  HOST  RUST  
    相关文章