freeverb-rs:Freeverb算法的Rust实现

  • Y8_151807
    了解作者
  • 105.4KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-09 04:48
    上传日期
自由动词 Freeverb算法的Rust实现。 关于自由词 Freeverb最初由“ Jezar at Dreampoint”用C ++编写,并于2000年6月发布到公共领域。现在,它已在多种软件的各种版本中广泛使用。 关于freeverb-rs Rust中Freeverb的这种实现几乎是原始来源的直接转换,该原始来源是作为的的演示项目而创建的。 此后代码已更新,因此如果您想跟着演讲进行,请查看adc-2018分支。 与原始实现有一些(有意)差异: 为简单起见,动态分配了延迟线缓冲区。 这可能会影响性能,一旦通用常量可用,我想使缓冲区静态。 内部使用64位处理,而原始为32位。 我可能会在某个时候将样本类型配置为可配置的,但就目前而言,64位处理似乎是明智的默认选择。 回购结构 src/freeverb/ 它包含Freeverb的核心实现,并具有一个简单的界面。 src/aud
freeverb-rs-main.zip
内容介绍
# freeverb-rs A Rust implementation of the Freeverb algorithm. ## About Freeverb Freeverb was originally written in C++ by "Jezar at Dreampoint", and was released into the public domain in June 2000. It is now widely used in various incarnations in multiple software packages. - [Analysis of the Freeverb algorithm](https://ccrma.stanford.edu/~jos/pasp/Freeverb.html) - [More information and a link to original C++ source](http://freeverb3vst.osdn.jp/sites.shtml) ## About freeverb-rs This implementation of Freeverb in Rust is an almost direct conversion of the original source, created as a demonstration project for a [talk I gave about Rust at the Audio Developer Conference 2018](https://www.youtube.com/watch?v=Yom9E-67bdI). The code has been updated since then, so if you want to follow along with the talk then take a look at the `adc-2018` branch. There are a couple of (intentional) differences to the original implementation: - delay line buffers are dynamically allocated for simplicity. This may have a performance impact, and once generic constants are available I would like to make the buffer static. - 64 bit processing is used internally whereas the original is 32 bit. I might make the sample type configurable at some point, but for now 64 bit processing seemed like a sensible default. ## Repo structure `src/freeverb/` This contains the core implementation of Freeverb, with a simple interface. `src/audio_module` This contains a (very) experimental generic module+parameter library, which I really only added as an excuse to explore approaches to polymorphism. The `audio_module` approach is currently only used by `app_gtk`, it might go away in the future, or maybe I'll decide I like it and continue to work on it. At this point I don't know! `src/freeverb_module` The `freeverb` processor wrapped up as an `AudioModule`, currently only used by `app_gtk`. `src/clib` A static library that provides C bindings to the `freeverb::Freeverb` processor, used by app_juce. `examples/app_gtk` A very basic audio+GUI application that runs the `freeverb::Freeverb` processor. You will need `gtk` installed on your system for this to work. `examples/app_juce` A very basic JUCE application that runs the `freeverb::Freeverb` processor via a statically linked library. `examples/wasm` A library that provides a `wasm-bindgen` interface to the `freeverb::Freeverb` processor. Also in the folder is a small web application that runs the `wasm` processor.
评论
    相关推荐
    • rust-soundchange:在 Rust 中实现声音变化算法的工具
      实现声音变化算法的工具。 这是严格按照 Mark Rosenfelder 的建模的,并对 Rust 的宏系统进行了必要的调整。 典型用法及与原SCA规则对比: #[macro_use] extern crate soundchange; #[macro_use] extern crate ...
    • 使用对齐算法比较二进制文件-Rust开发
      为此,它使用了rust-bio库中的生物信息学算法(通常用于DNA序列比对)。 biodiff使用对齐算法比较二进制文件。 这是什么这是用于二进制比较的工具。 该工具能够并排显示两个二进制文件,以便相似的位置在两侧都位于...
    • geo:Rust的地理空间基元和算法
      geo:Rust的地理空间基元和算法
    • spiril:用于遗传算法Rust
      Spiril是遗传算法的一种实现,该遗传算法用于通过突变和自然选择来获得任务的最佳变量(遗传)。 API使您可以指定一组初始单元,这些单元将充当所有后续单元的原始父级。 单位类型实现适应度函数和繁殖函数,以将新...
    • Rust:在Rust中实现的所有算法
      Rust:在Rust中实现的所有算法
    • redcentipede:Rust 中的遗传算法项目
      Rust 中的遗传算法项目 该项目的概念大量借鉴了。 红蜈蚣的一般博弈论 那里存在: 世界 部分代理 一些资源 时间单位 世界- 世界是一个具有 X、Y 坐标的二维网格。 存在的代理和资源都有一个 X 和一个 Y,它们指的是...
    • metaheuristics-rs:Rust中元算法的实现
      元启发式 Rust中元算法的实现。
    • isosurface:等值面提取的Rust算法
      Rust中实现的等值面提取算法。 包括经典的行进立方体和双重轮廓技术,以及主题上的更多现代变化。 为了教育的目的,每种提取算法的文档都链接到相关的学术论文。 范例程序 cargo run --example sampler将执行采样...
    • SIM800C_MQTT.rar
      使用SIM800C模块,使用MQTT协议,连接中国移动onenet平台,能实现数据的订阅、发布、存储等